diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt index 85487756fe..cb76f8f928 100644 --- a/LICENSES/MIT.txt +++ b/LICENSES/MIT.txt @@ -841,6 +841,13 @@ xmlbuilder: http://github.com/oozcitak/xmlbuilder-js Copyright (c) 2013 Ozgur Ozcitak +---------- +xmlbuilder2: http://github.com/oozcitak/xmlbuilder2 +---------- + +Copyright (c) 2013 Ozgur Ozcitak + + ---------- xmldom: https://github.com/jindw/xmldom ---------- diff --git a/meteor b/meteor index c1280507c7..276716845a 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=12.16.1.3 +BUNDLE_VERSION=12.16.1.5 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. diff --git a/packages/xmlbuilder/.gitignore b/packages/non-core/xmlbuilder/.gitignore similarity index 100% rename from packages/xmlbuilder/.gitignore rename to packages/non-core/xmlbuilder/.gitignore diff --git a/packages/xmlbuilder/.npm/package/.gitignore b/packages/non-core/xmlbuilder/.npm/package/.gitignore similarity index 100% rename from packages/xmlbuilder/.npm/package/.gitignore rename to packages/non-core/xmlbuilder/.npm/package/.gitignore diff --git a/packages/xmlbuilder/.npm/package/README b/packages/non-core/xmlbuilder/.npm/package/README similarity index 100% rename from packages/xmlbuilder/.npm/package/README rename to packages/non-core/xmlbuilder/.npm/package/README diff --git a/packages/xmlbuilder/.npm/package/npm-shrinkwrap.json b/packages/non-core/xmlbuilder/.npm/package/npm-shrinkwrap.json similarity index 100% rename from packages/xmlbuilder/.npm/package/npm-shrinkwrap.json rename to packages/non-core/xmlbuilder/.npm/package/npm-shrinkwrap.json diff --git a/packages/xmlbuilder/README.md b/packages/non-core/xmlbuilder/README.md similarity index 100% rename from packages/xmlbuilder/README.md rename to packages/non-core/xmlbuilder/README.md diff --git a/packages/xmlbuilder/package.js b/packages/non-core/xmlbuilder/package.js similarity index 100% rename from packages/xmlbuilder/package.js rename to packages/non-core/xmlbuilder/package.js diff --git a/packages/xmlbuilder/xmlbuilder.js b/packages/non-core/xmlbuilder/xmlbuilder.js similarity index 100% rename from packages/xmlbuilder/xmlbuilder.js rename to packages/non-core/xmlbuilder/xmlbuilder.js diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 720f52d593..0da0319c36 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -62,7 +62,8 @@ var packageJson = { optimism: "0.11.3", "@wry/context": "0.4.4", 'lru-cache': '4.1.3', - "anser": "1.4.8" + "anser": "1.4.8", + 'xmlbuilder2': '1.3.0' } }; diff --git a/tools/cordova/builder.js b/tools/cordova/builder.js index e32bb3e36b..56d64590af 100644 --- a/tools/cordova/builder.js +++ b/tools/cordova/builder.js @@ -10,6 +10,7 @@ import archinfo from '../utils/archinfo'; import release from '../packaging/release.js'; import { loadIsopackage } from '../tool-env/isopackets.js'; import utils from '../utils/utils.js'; +import XmlBuilder from 'xmlbuilder2'; import { CORDOVA_ARCH } from './index.js'; @@ -123,8 +124,8 @@ export class CordovaBuilder { 'DisallowOverscroll': true }, platform: { - ios: {}, - android: {} + ios: {}, + android: {} } }; @@ -246,9 +247,7 @@ export class CordovaBuilder { } writeConfigXmlAndCopyResources(shouldCopyResources = true) { - const { XmlBuilder } = loadIsopackage('xmlbuilder'); - - let config = XmlBuilder.create('widget'); + let config = XmlBuilder.create({ version: '1.0' }).ele('widget'); // Set the root attributes _.each({ @@ -265,16 +264,16 @@ export class CordovaBuilder { }); // Set the metadata - config.element('name').txt(this.metadata.name); - config.element('description').txt(this.metadata.description); - config.element('author', { + config.ele('name').txt(this.metadata.name); + config.ele('description').txt(this.metadata.description); + config.ele('author', { href: this.metadata.website, email: this.metadata.email }).txt(this.metadata.author); // Set the additional global configuration preferences _.each(this.additionalConfiguration.global, (value, key) => { - config.element('preference', { + config.ele('preference', { name: key, value: value.toString() }); @@ -282,10 +281,10 @@ export class CordovaBuilder { // Set custom tags into widget element _.each(this.custom, elementSet => { - const tag = config.raw(elementSet); + const tag = config.ele(elementSet); }); - config.element('content', { src: this.metadata.contentUrl }); + config.ele('content', { src: this.metadata.contentUrl }); // Copy all the access rules _.each(this.accessRules, (options, pattern) => { @@ -293,23 +292,23 @@ export class CordovaBuilder { options = _.omit(options, 'type'); if (type === 'intent') { - config.element('allow-intent', { href: pattern }); + config.ele('allow-intent', { href: pattern }); } else if (type === 'navigation') { - config.element('allow-navigation', _.extend({ href: pattern }, options)); + config.ele('allow-navigation', _.extend({ href: pattern }, options)); } else { - config.element('access', _.extend({ origin: pattern }, options)); + config.ele('access', _.extend({ origin: pattern }, options)); } }); const platformElement = { - ios: config.element('platform', {name: 'ios'}), - android: config.element('platform', {name: 'android'}) + ios: config.ele('platform', { name: 'ios' }), + android: config.ele('platform', { name: 'android' }) } // Set the additional platform-specific configuration preferences _.each(this.additionalConfiguration.platform, (prefs, platform) => { _.each(prefs, (value, key) => { - platformElement[platform].element('preference', { + platformElement[platform].ele('preference', { name: key, value: value.toString() }); @@ -338,7 +337,7 @@ export class CordovaBuilder { Console.debug('Writing new config.xml'); const configXmlPath = files.pathJoin(this.projectRoot, 'config.xml'); - const formattedXmlConfig = config.end({ pretty: true }); + const formattedXmlConfig = config.end({ prettyPrint: true }); files.writeFile(configXmlPath, formattedXmlConfig, 'utf8'); } @@ -386,7 +385,7 @@ export class CordovaBuilder { files.pathJoin(this.resourcesPath, filename)); // Set it to the xml tree - xmlElement.element(tag, imageAttributes(name, width, height, src)); + xmlElement.ele(tag, imageAttributes(name, width, height, src)); }); } @@ -399,15 +398,15 @@ export class CordovaBuilder { files.pathJoin(this.projectRoot, filename)); // And entry in config.xml if (!resourceFile.platform || - (resourceFile.platform && resourceFile.platform === "android")) { - androidElement.element('resource-file', { + (resourceFile.platform && resourceFile.platform === "android")) { + androidElement.ele('resource-file', { src: resourceFile.src, target: resourceFile.target }); } if (!resourceFile.platform || - (resourceFile.platform && resourceFile.platform === "ios")) { - iosElement.element('resource-file', { + (resourceFile.platform && resourceFile.platform === "ios")) { + iosElement.ele('resource-file', { src: resourceFile.src, target: resourceFile.target }); @@ -545,7 +544,7 @@ function createAppConfiguration(builder) { let settings = null; if (settingsFile) { settings = optimisticReadJsonOrNull(settingsFile); - if (! settings) { + if (!settings) { throw new Error("Unreadable --settings file: " + settingsFile); } } diff --git a/tools/tool-env/isopackets.js b/tools/tool-env/isopackets.js index e88ab878ac..f4df5c2882 100644 --- a/tools/tool-env/isopackets.js +++ b/tools/tool-env/isopackets.js @@ -66,7 +66,6 @@ export const ISOPACKETS = { // cordova-support 'boilerplate-generator', 'webapp-hashing', - 'xmlbuilder', // cordova-support, logging 'logging', // support for childProcess.sendMessage(topic, payload) @@ -116,13 +115,13 @@ export function loadIsopackage(packageName, isopacketName = "combined") { if (_.has(ISOPACKETS, isopacketName)) { throw Error("Can't load isopacket before it has been verified: " - + isopacketName); + + isopacketName); } throw Error("Unknown isopacket: " + isopacketName); }(); - if (! _.has(isopacket, packageName)) { + if (!_.has(isopacket, packageName)) { throw new Error("Unknown isopacket dependency: " + packageName); } @@ -144,7 +143,7 @@ export function ensureIsopacketsLoadable() { // If we're not running from checkout, then there's nothing to build and we // can declare that all isopackets are loadable. - if (! files.inCheckout()) { + if (!files.inCheckout()) { _.each(ISOPACKETS, function (packages, name) { loadedIsopackets[name] = null; }); @@ -167,17 +166,17 @@ export function ensureIsopacketsLoadable() { var isopacketRoot = isopacketPath(isopacketName); var existingBuildinfo = files.readJSONOrNull( files.pathJoin(isopacketRoot, 'isopacket-buildinfo.json')); - var needRebuild = ! existingBuildinfo; - if (! needRebuild && existingBuildinfo.builtBy !== compiler.BUILT_BY) { + var needRebuild = !existingBuildinfo; + if (!needRebuild && existingBuildinfo.builtBy !== compiler.BUILT_BY) { needRebuild = true; } - if (! needRebuild) { + if (!needRebuild) { var watchSet = watch.WatchSet.fromJSON(existingBuildinfo.watchSet); - if (! watch.isUpToDate(watchSet)) { + if (!watch.isUpToDate(watchSet)) { needRebuild = true; } } - if (! needRebuild) { + if (!needRebuild) { // Great, it's loadable without a rebuild. loadedIsopackets[isopacketName] = null; return; @@ -185,7 +184,7 @@ export function ensureIsopacketsLoadable() { // We're going to need to build! Make a catalog and loader if we haven't // yet. - if (! isopacketBuildContext) { + if (!isopacketBuildContext) { isopacketBuildContext = makeIsopacketBuildContext(); } @@ -209,7 +208,7 @@ export function ensureIsopacketsLoadable() { return; } - var builder = new Builder({outputPath: isopacketRoot}); + var builder = new Builder({ outputPath: isopacketRoot }); builder.writeJson('isopacket-buildinfo.json', { builtBy: compiler.BUILT_BY, watchSet: built.watchSet.toJSON() @@ -234,7 +233,7 @@ export function ensureIsopacketsLoadable() { // Returns a new all-local-packages catalog to be used for building isopackets. var newIsopacketBuildingCatalog = function () { - if (! files.inCheckout()) { + if (!files.inCheckout()) { throw Error("No need to build isopackets unless in checkout!"); }