Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 6A578200AE2 for ; Fri, 27 May 2016 09:09:00 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 678D5160A44; Fri, 27 May 2016 07:09:00 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id CA99B160A12 for ; Fri, 27 May 2016 09:08:57 +0200 (CEST) Received: (qmail 88961 invoked by uid 500); 27 May 2016 07:08:57 -0000 Mailing-List: contact commits-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list commits@cordova.apache.org Received: (qmail 87407 invoked by uid 99); 27 May 2016 07:08:55 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 May 2016 07:08:55 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 1DAD0E0BAA; Fri, 27 May 2016 07:08:55 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: an-selm@apache.org To: commits@cordova.apache.org Date: Fri, 27 May 2016 07:09:18 -0000 Message-Id: <96a3e44806d8494c954d14302fae939a@git.apache.org> In-Reply-To: <7349285739624aa18809b419c4105cb5@git.apache.org> References: <7349285739624aa18809b419c4105cb5@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [25/51] [abbrv] [partial] cordova-windows git commit: CB-11117: Bundle updated node modules archived-at: Fri, 27 May 2016 07:09:00 -0000 http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-common/node_modules/unorm/package.json ---------------------------------------------------------------------- diff --git a/node_modules/cordova-common/node_modules/unorm/package.json b/node_modules/cordova-common/node_modules/unorm/package.json deleted file mode 100644 index e3559f6..0000000 --- a/node_modules/cordova-common/node_modules/unorm/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "unorm", - "version": "1.4.1", - "description": "JavaScript Unicode 8.0 Normalization - NFC, NFD, NFKC, NFKD. Read UAX #15 Unicode Normalization Forms.", - "author": { - "name": "Bjarke Walling", - "email": "bwp@bwp.dk" - }, - "license": "MIT or GPL-2.0", - "contributors": [ - { - "name": "Bjarke Walling", - "email": "bwp@bwp.dk" - }, - { - "name": "Oleg Grenrus", - "email": "oleg.grenrus@iki.fi" - }, - { - "name": "Matsuza", - "email": "matsuza@gmail.com" - } - ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/walling/unorm.git" - }, - "main": "./lib/unorm.js", - "engines": { - "node": ">= 0.4.0" - }, - "scripts": { - "test": "grunt test" - }, - "devDependencies": { - "benchmark": "~1.0.0", - "unorm": "1.4.1", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-watch": "~0.5.0", - "grunt-simple-mocha": "~0.4.0", - "grunt": "~0.4.1" - }, - "gitHead": "e802d0d7844cf74b03742bce1147a82ace218396", - "bugs": { - "url": "https://github.com/walling/unorm/issues" - }, - "homepage": "https://github.com/walling/unorm", - "_id": "unorm@1.4.1", - "_shasum": "364200d5f13646ca8bcd44490271335614792300", - "_from": "unorm@>=1.3.3 <2.0.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "walling", - "email": "bwp@bwp.dk" - }, - "maintainers": [ - { - "name": "walling", - "email": "bwp@bwp.dk" - } - ], - "dist": { - "shasum": "364200d5f13646ca8bcd44490271335614792300", - "tarball": "http://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", - "readme": "ERROR: No README data found!" -} http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-common/package.json ---------------------------------------------------------------------- diff --git a/node_modules/cordova-common/package.json b/node_modules/cordova-common/package.json index 9a2eb2b..97f6916 100644 --- a/node_modules/cordova-common/package.json +++ b/node_modules/cordova-common/package.json @@ -1,36 +1,57 @@ { - "author": { - "name": "Apache Software Foundation" + "_args": [ + [ + "cordova-common@^1.3.0", + "D:\\Cordova\\cordova-windows" + ] + ], + "_from": "cordova-common@>=1.3.0 <2.0.0", + "_id": "cordova-common@1.3.0", + "_inCache": true, + "_installable": true, + "_location": "/cordova-common", + "_nodeVersion": "5.4.1", + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/cordova-common-1.3.0.tgz_1464130094288_0.48495062021538615" }, - "name": "cordova-common", - "description": "Apache Cordova tools and platforms shared routines", - "license": "Apache-2.0", - "version": "1.2.0", - "repository": { - "type": "git", - "url": "git://git-wip-us.apache.org/repos/asf/cordova-common.git" + "_npmUser": { + "email": "stevengill97@gmail.com", + "name": "stevegill" }, - "bugs": { - "url": "https://issues.apache.org/jira/browse/CB", - "email": "dev@cordova.apache.org" + "_npmVersion": "3.9.0", + "_phantomChildren": {}, + "_requested": { + "name": "cordova-common", + "raw": "cordova-common@^1.3.0", + "rawSpec": "^1.3.0", + "scope": null, + "spec": ">=1.3.0 <2.0.0", + "type": "range" }, - "main": "cordova-common.js", - "engines": { - "node": ">=0.9.9" + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-1.3.0.tgz", + "_shasum": "f75161f6aa7cef5486fd5d69a3b0a1f628334491", + "_shrinkwrap": null, + "_spec": "cordova-common@^1.3.0", + "_where": "D:\\Cordova\\cordova-windows", + "author": { + "name": "Apache Software Foundation" }, - "scripts": { - "test": "npm run jshint && npm run jasmine", - "jshint": "node node_modules/jshint/bin/jshint src && node node_modules/jshint/bin/jshint spec", - "jasmine": "node node_modules/jasmine-node/bin/jasmine-node --captureExceptions --color spec", - "cover": "node node_modules/istanbul/lib/cli.js cover --root src --print detail node_modules/jasmine-node/bin/jasmine-node -- spec" + "bugs": { + "email": "dev@cordova.apache.org", + "url": "https://issues.apache.org/jira/browse/CB" }, - "engineStrict": true, + "contributors": [], "dependencies": { "ansi": "^0.3.1", "bplist-parser": "^0.1.0", "cordova-registry-mapper": "^1.1.8", "elementtree": "^0.1.6", "glob": "^5.0.13", + "minimatch": "^3.0.0", "osenv": "^0.1.3", "plist": "^1.2.0", "q": "^1.4.1", @@ -39,6 +60,7 @@ "underscore": "^1.8.3", "unorm": "^1.3.3" }, + "description": "Apache Cordova tools and platforms shared routines", "devDependencies": { "istanbul": "^0.3.17", "jasmine-node": "^1.14.5", @@ -46,11 +68,55 @@ "promise-matchers": "^0.9.6", "rewire": "^2.5.1" }, - "contributors": [], - "readme": "\n\n# cordova-common\nExpoeses shared functionality used by [cordova-lib](https://github.com/apache/cordova-lib/) and Cordova platforms.\n## Exposed APIs\n\n### `eve nts`\n \nRepresents special instance of NodeJS EventEmitter which is intended to be used to post events to cordova-lib and cordova-cli\n\nUsage:\n```\nvar events = require('cordova-common').events;\nevents.emit('warn', 'Some warning message')\n```\n\nThere are the following events supported by cordova-cli: `verbose`, `log`, `info`, `warn`, `error`.\n\n### `CordovaError`\n\nAn error class used by Cordova to throw cordova-specific errors. The CordovaError class is inherited from Error, so CordovaError instances is also valid Error instances (`instanceof` check succeeds).\n\nUsage:\n\n```\nvar CordovaError = require('cordova-common').CordovaError;\nthrow new CordovaError('Some error message', SOME_ERR_CODE);\n```\n\nSee [CordovaError](src/CordovaError/CordovaError.js) for supported error codes.\n\n### `ConfigParser`\n\nExposes functionality to deal with cordova project `config.xml` files. For ConfigParser API reference check [ConfigParser Readme](src/ConfigParser/README.md).\n\nUsage: \n```\nvar ConfigParser = require('cordova-common').ConfigParser;\nvar appConfig = new ConfigParser('path/to/cordova-app/config.xml');\nconsole.log(appconfig.name() + ':' + appConfig.version());\n```\n\n### `PluginInfoProvider` and `PluginInfo`\n\n`PluginInfo` is a wrapper for cordova plugins' `plugin.xml` files. This class may be instantiated directly or via `PluginInfoProvider`. The difference is that `PluginInfoProvider` caches `PluginInfo` instances based on plugin source directory.\n\nUsage:\n```\nvar PluginInfo: require('cordova-common').PluginInfo;\nvar PluginInfoProvider: require('cordova-common').PluginInfoProvider;\n\n// The following instances are equal\nvar plugin1 = new PluginInfo('path/to/plugin_directory');\nvar plugin2 = new PluginInfoProvider().get('path/to/plugin_directory');\n\nconsole.log('The plugin ' + plugin1.id + ' has version ' + plugin1.version)\n```\n\n### `ActionStack`\n\nUtility module for dealing with sequential tasks. Provides a set of tasks that are n eeded to be done and reverts all tasks that are already completed if one of those tasks fail to complete. Used internally by cordova-lib and platform's plugin installation routines.\n\nUsage:\n```\nvar ActionStack = require('cordova-common').ActionStack;\nvar stack = new ActionStack()\n\nvar action1 = stack.createAction(task1, [], task1_reverter, []);\nvar action2 = stack.createAction(task2, [], task2_reverter, []);\n\nstack.push(action1);\nstack.push(action2);\n\nstack.process()\n.then(function() {\n // all actions succeded\n})\n.catch(function(error){\n // One of actions failed with error\n})\n```\n\n### `superspawn`\n\nModule for spawning child processes with some advanced logic.\n\nUsage:\n```\nvar superspawn = require('cordova-common').superspawn;\nsuperspawn.spawn('adb', ['devices'])\n.progress(function(data){\n if (data.stderr)\n console.error('\"adb devices\" raised an error: ' + data .stderr);\n})\n.then(function(devices){\n // Do something...\n})\n```\n\n### `xmlHelpers`\n\nA set of utility methods for dealing with xml files.\n\nUsage:\n```\nvar xml = require('cordova-common').xmlHelpers;\n\nvar xmlDoc1 = xml.parseElementtreeSync('some/xml/file');\nvar xmlDoc2 = xml.parseElementtreeSync('another/xml/file');\n\nxml.mergeXml(doc1, doc2); // doc2 now contains all the nodes from doc1\n```\n\n### Other APIs\n\nThe APIs listed below are also exposed but are intended to be only used internally by cordova plugin installation routines.\n\n```\nPlatformJson\nConfigChanges\nConfigKeeper\nConfigFile\nmungeUtil\n```\n\n## Setup\n* Clone this repository onto your local machine\n `git clone https://git-wip-us.apache.org/repos/asf/cordova-lib.git`\n* In terminal, navigate to the inner cordova-common directory\n `cd cordova-lib/cordova-common`\n* Install dependencies and npm-link\n `npm install && npm link`\n* Navigate to cordova-lib directory and link cordova-commo n\n `cd ../cordova-lib && npm link cordova-common && npm install`\n", - "readmeFilename": "README.md", - "_id": "cordova-common@1.2.0", - "_shasum": "474b7f77c6c89d3f995c947d96046edf2e8c404d", - "_resolved": "file:cordova-dist\\tools\\cordova-common-1.2.0.tgz", - "_from": "cordova-common@1.2.0" + "directories": {}, + "dist": { + "shasum": "f75161f6aa7cef5486fd5d69a3b0a1f628334491", + "tarball": "https://registry.npmjs.org/cordova-common/-/cordova-common-1.3.0.tgz" + }, + "engineStrict": true, + "engines": { + "node": ">=0.9.9" + }, + "license": "Apache-2.0", + "main": "cordova-common.js", + "maintainers": [ + { + "email": "bowserj@apache.org", + "name": "bowserj" + }, + { + "email": "kotikov.vladimir@gmail.com", + "name": "kotikov.vladimir" + }, + { + "email": "purplecabbage@gmail.com", + "name": "purplecabbage" + }, + { + "email": "shazron@gmail.com", + "name": "shazron" + }, + { + "email": "stevengill97@gmail.com", + "name": "stevegill" + }, + { + "email": "npmjs@barhams.info", + "name": "timbarham" + } + ], + "name": "cordova-common", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git://git-wip-us.apache.org/repos/asf/cordova-common.git" + }, + "scripts": { + "cover": "node node_modules/istanbul/lib/cli.js cover --root src --print detail node_modules/jasmine-node/bin/jasmine-node -- spec", + "jasmine": "node node_modules/jasmine-node/bin/jasmine-node --captureExceptions --color spec", + "jshint": "node node_modules/jshint/bin/jshint src && node node_modules/jshint/bin/jshint spec", + "test": "npm run jshint && npm run jasmine" + }, + "version": "1.3.0" } http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js ---------------------------------------------------------------------- diff --git a/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js b/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js index dd9ebbc..9c540b9 100644 --- a/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js +++ b/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js @@ -17,13 +17,17 @@ var fs = require('fs'); var path = require('path'); -var bplist = require('bplist-parser'); -var et = require('elementtree'); -var glob = require('glob'); -var plist = require('plist'); - -var plist_helpers = require('../util/plist-helpers'); -var xml_helpers = require('../util/xml-helpers'); +var modules = {}; +var addProperty = require('../util/addProperty'); + +// Use delay loading to ensure plist and other node modules to not get loaded +// on Android, Windows platforms +addProperty(module, 'bplist', 'bplist-parser', modules); +addProperty(module, 'et', 'elementtree', modules); +addProperty(module, 'glob', 'glob', modules); +addProperty(module, 'plist', 'plist', modules); +addProperty(module, 'plist_helpers', '../util/plist-helpers', modules); +addProperty(module, 'xml_helpers', '../util/xml-helpers', modules); /****************************************************************************** * ConfigFile class @@ -67,7 +71,7 @@ function ConfigFile_load() { // the same in a future release if (ext == '.xml' || ext == '.appxmanifest') { self.type = 'xml'; - self.data = xml_helpers.parseElementtreeSync(filepath); + self.data = modules.xml_helpers.parseElementtreeSync(filepath); } else { // plist file self.type = 'plist'; @@ -76,8 +80,8 @@ function ConfigFile_load() { // Do we still need to support binary plist? // If yes, use plist.parseStringSync() and read the file once. self.data = isBinaryPlist(filepath) ? - bplist.parseBuffer(fs.readFileSync(filepath)) : - plist.parse(fs.readFileSync(filepath, 'utf8')); + modules.bplist.parseBuffer(fs.readFileSync(filepath)) : + modules.plist.parse(fs.readFileSync(filepath, 'utf8')); } } @@ -88,7 +92,7 @@ ConfigFile.prototype.save = function ConfigFile_save() { } else { // plist var regExp = new RegExp('[ \t\r\n]+?', 'g'); - fs.writeFileSync(self.filepath, plist.build(self.data).replace(regExp, '')); + fs.writeFileSync(self.filepath, modules.plist.build(self.data).replace(regExp, '')); } self.is_changed = false; }; @@ -98,16 +102,16 @@ ConfigFile.prototype.graft_child = function ConfigFile_graft_child(selector, xml var filepath = self.filepath; var result; if (self.type === 'xml') { - var xml_to_graft = [et.XML(xml_child.xml)]; - result = xml_helpers.graftXML(self.data, xml_to_graft, selector, xml_child.after); + var xml_to_graft = [modules.et.XML(xml_child.xml)]; + result = modules.xml_helpers.graftXML(self.data, xml_to_graft, selector, xml_child.after); if ( !result) { - throw new Error('grafting xml at selector "' + selector + '" from "' + filepath + '" during config install went bad :('); + throw new Error('Unable to graft xml at selector "' + selector + '" from "' + filepath + '" during config install'); } } else { // plist file - result = plist_helpers.graftPLIST(self.data, xml_child.xml, selector); + result = modules.plist_helpers.graftPLIST(self.data, xml_child.xml, selector); if ( !result ) { - throw new Error('grafting to plist "' + filepath + '" during config install went bad :('); + throw new Error('Unable to graft plist "' + filepath + '" during config install'); } } self.is_changed = true; @@ -118,11 +122,11 @@ ConfigFile.prototype.prune_child = function ConfigFile_prune_child(selector, xml var filepath = self.filepath; var result; if (self.type === 'xml') { - var xml_to_graft = [et.XML(xml_child.xml)]; - result = xml_helpers.pruneXML(self.data, xml_to_graft, selector); + var xml_to_graft = [modules.et.XML(xml_child.xml)]; + result = modules.xml_helpers.pruneXML(self.data, xml_to_graft, selector); } else { // plist file - result = plist_helpers.prunePLIST(self.data, xml_child.xml, selector); + result = modules.plist_helpers.prunePLIST(self.data, xml_child.xml, selector); } if (!result) { var err_msg = 'Pruning at selector "' + selector + '" from "' + filepath + '" went bad.'; @@ -140,7 +144,7 @@ function resolveConfigFilePath(project_dir, platform, file) { if (file.indexOf('*') > -1) { // handle wildcards in targets using glob. - matches = glob.sync(path.join(project_dir, '**', file)); + matches = modules.glob.sync(path.join(project_dir, '**', file)); if (matches.length) filepath = matches[0]; // [CB-5989] multiple Info.plist files may exist. default to $PROJECT_NAME-Info.plist @@ -167,7 +171,7 @@ function resolveConfigFilePath(project_dir, platform, file) { } else if (platform == 'android') { filepath = path.join(project_dir, 'res', 'xml', 'config.xml'); } else { - matches = glob.sync(path.join(project_dir, '**', 'config.xml')); + matches = modules.glob.sync(path.join(project_dir, '**', 'config.xml')); if (matches.length) filepath = matches[0]; } return filepath; @@ -180,7 +184,7 @@ function resolveConfigFilePath(project_dir, platform, file) { // Find out the real name of an iOS project // TODO: glob is slow, need a better way or caching, or avoid using more than once. function getIOSProjectname(project_dir) { - var matches = glob.sync(path.join(project_dir, '*.xcodeproj')); + var matches = modules.glob.sync(path.join(project_dir, '*.xcodeproj')); var iospath; if (matches.length === 1) { iospath = path.basename(matches[0],'.xcodeproj'); http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-common/src/CordovaLogger.js ---------------------------------------------------------------------- diff --git a/node_modules/cordova-common/src/CordovaLogger.js b/node_modules/cordova-common/src/CordovaLogger.js index 852d298..71bc7e8 100644 --- a/node_modules/cordova-common/src/CordovaLogger.js +++ b/node_modules/cordova-common/src/CordovaLogger.js @@ -89,7 +89,7 @@ CordovaLogger.prototype.log = function (logLevel, message) { var isVerbose = this.logLevel === 'verbose'; var cursor = this.stdoutCursor; - if(message instanceof Error || logLevel === CordovaLogger.ERROR) { + if (message instanceof Error || logLevel === CordovaLogger.ERROR) { message = formatError(message, isVerbose); cursor = this.stderrCursor; } @@ -196,10 +196,10 @@ CordovaLogger.prototype.subscribe = function (eventEmitter) { function formatError(error, isVerbose) { var message = ''; - if(error instanceof CordovaError) { + if (error instanceof CordovaError) { message = error.toString(isVerbose); - } else if(error instanceof Error) { - if(isVerbose) { + } else if (error instanceof Error) { + if (isVerbose) { message = error.stack; } else { message = error.message; @@ -209,7 +209,7 @@ function formatError(error, isVerbose) { message = error; } - if(message.toUpperCase().indexOf('ERROR:') !== 0) { + if (typeof message === 'string' && message.toUpperCase().indexOf('ERROR:') !== 0) { // Needed for backward compatibility with external tools message = 'Error: ' + message; } http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-common/src/FileUpdater.js ---------------------------------------------------------------------- diff --git a/node_modules/cordova-common/src/FileUpdater.js b/node_modules/cordova-common/src/FileUpdater.js new file mode 100644 index 0000000..a09f39c --- /dev/null +++ b/node_modules/cordova-common/src/FileUpdater.js @@ -0,0 +1,422 @@ +/** + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + +"use strict"; + +var fs = require("fs"); +var path = require("path"); +var shell = require("shelljs"); +var minimatch = require("minimatch"); + +/** + * Logging callback used in the FileUpdater methods. + * @callback loggingCallback + * @param {string} message A message describing a single file update operation. + */ + +/** + * Updates a target file or directory with a source file or directory. (Directory updates are + * not recursive.) Stats for target and source items must be passed in. This is an internal + * helper function used by other methods in this module. + * + * @param {?string} sourcePath Source file or directory to be used to update the + * destination. If the source is null, then the destination is deleted if it exists. + * @param {?fs.Stats} sourceStats An instance of fs.Stats for the source path, or null if + * the source does not exist. + * @param {string} targetPath Required destination file or directory to be updated. If it does + * not exist, it will be created. + * @param {?fs.Stats} targetStats An instance of fs.Stats for the target path, or null if + * the target does not exist. + * @param {Object} [options] Optional additional parameters for the update. + * @param {string} [options.rootDir] Optional root directory (such as a project) to which target + * and source path parameters are relative; may be omitted if the paths are absolute. The + * rootDir is always omitted from any logged paths, to make the logs easier to read. + * @param {boolean} [options.all] If true, all files are copied regardless of last-modified times. + * Otherwise, a file is copied if the source's last-modified time is greather than or + * equal to the target's last-modified time, or if the file sizes are different. + * @param {loggingCallback} [log] Optional logging callback that takes a string message + * describing any file operations that are performed. + * @return {boolean} true if any changes were made, or false if the force flag is not set + * and everything was up to date + */ +function updatePathWithStats(sourcePath, sourceStats, targetPath, targetStats, options, log) { + var updated = false; + + var rootDir = (options && options.rootDir) || ""; + var copyAll = (options && options.all) || false; + + var targetFullPath = path.join(rootDir || "", targetPath); + + if (sourceStats) { + var sourceFullPath = path.join(rootDir || "", sourcePath); + + if (targetStats) { + // The target exists. But if the directory status doesn't match the source, delete it. + if (targetStats.isDirectory() && !sourceStats.isDirectory()) { + log("rmdir " + targetPath + " (source is a file)"); + shell.rm("-rf", targetFullPath); + targetStats = null; + updated = true; + } else if (!targetStats.isDirectory() && sourceStats.isDirectory()) { + log("delete " + targetPath + " (source is a directory)"); + shell.rm("-f", targetFullPath); + targetStats = null; + updated = true; + } + } + + if (!targetStats) { + if (sourceStats.isDirectory()) { + // The target directory does not exist, so it should be created. + log("mkdir " + targetPath); + shell.mkdir("-p", targetFullPath); + updated = true; + } else if (sourceStats.isFile()) { + // The target file does not exist, so it should be copied from the source. + log("copy " + sourcePath + " " + targetPath + (copyAll ? "" : " (new file)")); + shell.cp("-f", sourceFullPath, targetFullPath); + updated = true; + } + } else if (sourceStats.isFile() && targetStats.isFile()) { + // The source and target paths both exist and are files. + if (copyAll) { + // The caller specified all files should be copied. + log("copy " + sourcePath + " " + targetPath); + shell.cp("-f", sourceFullPath, targetFullPath); + updated = true; + } else { + // Copy if the source has been modified since it was copied to the target, or if + // the file sizes are different. (The latter catches most cases in which something + // was done to the file after copying.) Comparison is >= rather than > to allow + // for timestamps lacking sub-second precision in some filesystems. + if (sourceStats.mtime.getTime() >= targetStats.mtime.getTime() || + sourceStats.size !== targetStats.size) { + log("copy " + sourcePath + " " + targetPath + " (updated file)"); + shell.cp("-f", sourceFullPath, targetFullPath); + updated = true; + } + } + } + } else if (targetStats) { + // The target exists but the source is null, so the target should be deleted. + if (targetStats.isDirectory()) { + log("rmdir " + targetPath + (copyAll ? "" : " (no source)")); + shell.rm("-rf", targetFullPath); + } else { + log("delete " + targetPath + (copyAll ? "" : " (no source)")); + shell.rm("-f", targetFullPath); + } + updated = true; + } + + return updated; +} + +/** + * Helper for updatePath and updatePaths functions. Queries stats for source and target + * and ensures target directory exists before copying a file. + */ +function updatePathInternal(sourcePath, targetPath, options, log) { + var rootDir = (options && options.rootDir) || ""; + var targetFullPath = path.join(rootDir, targetPath); + var targetStats = fs.existsSync(targetFullPath) ? fs.statSync(targetFullPath) : null; + var sourceStats = null; + + if (sourcePath) { + // A non-null source path was specified. It should exist. + var sourceFullPath = path.join(rootDir, sourcePath); + if (!fs.existsSync(sourceFullPath)) { + throw new Error("Source path does not exist: " + sourcePath); + } + + sourceStats = fs.statSync(sourceFullPath); + + // Create the target's parent directory if it doesn't exist. + var parentDir = path.dirname(targetFullPath); + if (!fs.existsSync(parentDir)) { + shell.mkdir("-p", parentDir); + } + } + + return updatePathWithStats(sourcePath, sourceStats, targetPath, targetStats, options, log); +} + +/** + * Updates a target file or directory with a source file or directory. (Directory updates are + * not recursive.) + * + * @param {?string} sourcePath Source file or directory to be used to update the + * destination. If the source is null, then the destination is deleted if it exists. + * @param {string} targetPath Required destination file or directory to be updated. If it does + * not exist, it will be created. + * @param {Object} [options] Optional additional parameters for the update. + * @param {string} [options.rootDir] Optional root directory (such as a project) to which target + * and source path parameters are relative; may be omitted if the paths are absolute. The + * rootDir is always omitted from any logged paths, to make the logs easier to read. + * @param {boolean} [options.all] If true, all files are copied regardless of last-modified times. + * Otherwise, a file is copied if the source's last-modified time is greather than or + * equal to the target's last-modified time, or if the file sizes are different. + * @param {loggingCallback} [log] Optional logging callback that takes a string message + * describing any file operations that are performed. + * @return {boolean} true if any changes were made, or false if the force flag is not set + * and everything was up to date + */ +function updatePath(sourcePath, targetPath, options, log) { + if (sourcePath !== null && typeof sourcePath !== "string") { + throw new Error("A source path (or null) is required."); + } + + if (!targetPath || typeof targetPath !== "string") { + throw new Error("A target path is required."); + } + + log = log || function(message) { }; + + return updatePathInternal(sourcePath, targetPath, options, log); +} + +/** + * Updates files and directories based on a mapping from target paths to source paths. Targets + * with null sources in the map are deleted. + * + * @param {Object} pathMap A dictionary mapping from target paths to source paths. + * @param {Object} [options] Optional additional parameters for the update. + * @param {string} [options.rootDir] Optional root directory (such as a project) to which target + * and source path parameters are relative; may be omitted if the paths are absolute. The + * rootDir is always omitted from any logged paths, to make the logs easier to read. + * @param {boolean} [options.all] If true, all files are copied regardless of last-modified times. + * Otherwise, a file is copied if the source's last-modified time is greather than or + * equal to the target's last-modified time, or if the file sizes are different. + * @param {loggingCallback} [log] Optional logging callback that takes a string message + * describing any file operations that are performed. + * @return {boolean} true if any changes were made, or false if the force flag is not set + * and everything was up to date + */ +function updatePaths(pathMap, options, log) { + if (!pathMap || typeof pathMap !== "object" || Array.isArray(pathMap)) { + throw new Error("An object mapping from target paths to source paths is required."); + } + + log = log || function(message) { }; + + var updated = false; + + // Iterate in sorted order to ensure directories are created before files under them. + Object.keys(pathMap).sort().forEach(function (targetPath) { + var sourcePath = pathMap[targetPath]; + updated = updatePathInternal(sourcePath, targetPath, options, log) || updated; + }); + + return updated; +} + +/** + * Updates a target directory with merged files and subdirectories from source directories. + * + * @param {string|string[]} sourceDirs Required source directory or array of source directories + * to be merged into the target. The directories are listed in order of precedence; files in + * directories later in the array supersede files in directories earlier in the array + * (regardless of timestamps). + * @param {string} targetDir Required destination directory to be updated. If it does not exist, + * it will be created. If it exists, newer files from source directories will be copied over, + * and files missing in the source directories will be deleted. + * @param {Object} [options] Optional additional parameters for the update. + * @param {string} [options.rootDir] Optional root directory (such as a project) to which target + * and source path parameters are relative; may be omitted if the paths are absolute. The + * rootDir is always omitted from any logged paths, to make the logs easier to read. + * @param {boolean} [options.all] If true, all files are copied regardless of last-modified times. + * Otherwise, a file is copied if the source's last-modified time is greather than or + * equal to the target's last-modified time, or if the file sizes are different. + * @param {string|string[]} [options.include] Optional glob string or array of glob strings that + * are tested against both target and source relative paths to determine if they are included + * in the merge-and-update. If unspecified, all items are included. + * @param {string|string[]} [options.exclude] Optional glob string or array of glob strings that + * are tested against both target and source relative paths to determine if they are excluded + * from the merge-and-update. Exclusions override inclusions. If unspecified, no items are + * excluded. + * @param {loggingCallback} [log] Optional logging callback that takes a string message + * describing any file operations that are performed. + * @return {boolean} true if any changes were made, or false if the force flag is not set + * and everything was up to date + */ +function mergeAndUpdateDir(sourceDirs, targetDir, options, log) { + if (sourceDirs && typeof sourceDirs === "string") { + sourceDirs = [ sourceDirs ]; + } else if (!Array.isArray(sourceDirs)) { + throw new Error("A source directory path or array of paths is required."); + } + + if (!targetDir || typeof targetDir !== "string") { + throw new Error("A target directory path is required."); + } + + log = log || function(message) { }; + + var rootDir = (options && options.rootDir) || ""; + + var include = (options && options.include) || [ "**" ]; + if (typeof include === "string") { + include = [ include ]; + } else if (!Array.isArray(include)) { + throw new Error("Include parameter must be a glob string or array of glob strings."); + } + + var exclude = (options && options.exclude) || []; + if (typeof exclude === "string") { + exclude = [ exclude ]; + } else if (!Array.isArray(exclude)) { + throw new Error("Exclude parameter must be a glob string or array of glob strings."); + } + + // Scan the files in each of the source directories. + var sourceMaps = []; + for (var i in sourceDirs) { + var sourceFullPath = path.join(rootDir, sourceDirs[i]); + if (!fs.existsSync(sourceFullPath)) { + throw new Error("Source directory does not exist: " + sourceDirs[i]); + } + sourceMaps[i] = mapDirectory(rootDir, sourceDirs[i], include, exclude); + } + + // Scan the files in the target directory, if it exists. + var targetMap = {}; + var targetFullPath = path.join(rootDir, targetDir); + if (fs.existsSync(targetFullPath)) { + targetMap = mapDirectory(rootDir, targetDir, include, exclude); + } + + var pathMap = mergePathMaps(sourceMaps, targetMap, targetDir); + + var updated = false; + + // Iterate in sorted order to ensure directories are created before files under them. + Object.keys(pathMap).sort().forEach(function (subPath) { + var entry = pathMap[subPath]; + updated = updatePathWithStats( + entry.sourcePath, + entry.sourceStats, + entry.targetPath, + entry.targetStats, + options, + log) || updated; + }); + + return updated; +} + +/** + * Creates a dictionary map of all files and directories under a path. + */ +function mapDirectory(rootDir, subDir, include, exclude) { + var dirMap = { "": { subDir: subDir, stats: fs.statSync(path.join(rootDir, subDir)) } }; + mapSubdirectory(rootDir, subDir, "", include, exclude, dirMap); + return dirMap; + + function mapSubdirectory(rootDir, subDir, relativeDir, include, exclude, dirMap) { + var itemMapped = false; + var items = fs.readdirSync(path.join(rootDir, subDir, relativeDir)); + for (var i in items) { + var relativePath = path.join(relativeDir, items[i]); + + // Skip any files or directories (and everything under) that match an exclude glob. + if (matchGlobArray(relativePath, exclude)) { + continue; + } + + // Stats obtained here (required at least to know where to recurse in directories) + // are saved for later, where the modified times may also be used. This minimizes + // the number of file I/O operations performed. + var fullPath = path.join(rootDir, subDir, relativePath); + var stats = fs.statSync(fullPath); + + if (stats.isDirectory()) { + // Directories are included if either something under them is included or they + // match an include glob. + if (mapSubdirectory(rootDir, subDir, relativePath, include, exclude, dirMap) || + matchGlobArray(relativePath, include)) { + dirMap[relativePath] = { subDir: subDir, stats: stats }; + itemMapped = true; + } + } else if (stats.isFile()) { + // Files are included only if they match an include glob. + if (matchGlobArray(relativePath, include)) { + dirMap[relativePath] = { subDir: subDir, stats: stats }; + itemMapped = true; + } + } + } + return itemMapped; + } + + function matchGlobArray(path, globs) { + for (var i in globs) { + if (minimatch(path, globs[i])) { + return true; + } + } + return false; + } +} + +/** + * Merges together multiple source maps and a target map into a single mapping from + * relative paths to objects with target and source paths and stats. + */ +function mergePathMaps(sourceMaps, targetMap, targetDir) { + // Merge multiple source maps together, along with target path info. + // Entries in later source maps override those in earlier source maps. + // Target stats will be filled in below for targets that exist. + var pathMap = {}; + sourceMaps.forEach(function (sourceMap) { + for (var sourceSubPath in sourceMap) { + var sourceEntry = sourceMap[sourceSubPath]; + pathMap[sourceSubPath] = { + targetPath: path.join(targetDir, sourceSubPath), + targetStats: null, + sourcePath: path.join(sourceEntry.subDir, sourceSubPath), + sourceStats: sourceEntry.stats + }; + } + }); + + // Fill in target stats for targets that exist, and create entries + // for targets that don't have any corresponding sources. + for (var subPath in targetMap) { + var entry = pathMap[subPath]; + if (entry) { + entry.targetStats = targetMap[subPath].stats; + } else { + pathMap[subPath] = { + targetPath: path.join(targetDir, subPath), + targetStats: targetMap[subPath].stats, + sourcePath: null, + sourceStats: null + }; + } + } + + return pathMap; +} + +module.exports = { + updatePath: updatePath, + updatePaths: updatePaths, + mergeAndUpdateDir: mergeAndUpdateDir +}; + http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-common/src/PluginInfo/PluginInfo.js ---------------------------------------------------------------------- diff --git a/node_modules/cordova-common/src/PluginInfo/PluginInfo.js b/node_modules/cordova-common/src/PluginInfo/PluginInfo.js index e1a1b31..77199ec 100644 --- a/node_modules/cordova-common/src/PluginInfo/PluginInfo.js +++ b/node_modules/cordova-common/src/PluginInfo/PluginInfo.js @@ -331,7 +331,7 @@ function PluginInfo(dirname) { ///// PluginInfo Constructor logic ///// self.filepath = path.join(dirname, 'plugin.xml'); if (!fs.existsSync(self.filepath)) { - throw new CordovaError('Cannot find plugin.xml for plugin \'' + path.basename(dirname) + '\'. Please try adding it again.'); + throw new CordovaError('Cannot find plugin.xml for plugin "' + path.basename(dirname) + '". Please try adding it again.'); } self.dir = dirname; http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-common/src/events.js ---------------------------------------------------------------------- diff --git a/node_modules/cordova-common/src/events.js b/node_modules/cordova-common/src/events.js index 8751976..e702bd8 100644 --- a/node_modules/cordova-common/src/events.js +++ b/node_modules/cordova-common/src/events.js @@ -40,7 +40,7 @@ module.exports.forwardEventsTo = function (eventEmitter) { } if (!(eventEmitter instanceof EventEmitter)) - throw new Error('Cordova events could be redirected to another EventEmitter instance only'); + throw new Error('Cordova events can be redirected to another EventEmitter instance only'); // CB-10940 Skipping forwarding to self to avoid infinite recursion. // This is the case when the modules are npm-linked. http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-common/src/util/addProperty.js ---------------------------------------------------------------------- diff --git a/node_modules/cordova-common/src/util/addProperty.js b/node_modules/cordova-common/src/util/addProperty.js new file mode 100644 index 0000000..7dc4dc1 --- /dev/null +++ b/node_modules/cordova-common/src/util/addProperty.js @@ -0,0 +1,32 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + +module.exports = function addProperty(module, property, modulePath, obj) { + + obj = obj || module.exports; + // Add properties as getter to delay load the modules on first invocation + Object.defineProperty(obj, property, { + configurable: true, + get: function () { + var delayLoadedModule = module.require(modulePath); + obj[property] = delayLoadedModule; + return delayLoadedModule; + } + }); +}; http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-registry-mapper/.npmignore ---------------------------------------------------------------------- diff --git a/node_modules/cordova-registry-mapper/.npmignore b/node_modules/cordova-registry-mapper/.npmignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/node_modules/cordova-registry-mapper/.npmignore @@ -0,0 +1 @@ +node_modules http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-registry-mapper/.travis.yml ---------------------------------------------------------------------- diff --git a/node_modules/cordova-registry-mapper/.travis.yml b/node_modules/cordova-registry-mapper/.travis.yml new file mode 100644 index 0000000..ae381fc --- /dev/null +++ b/node_modules/cordova-registry-mapper/.travis.yml @@ -0,0 +1,7 @@ +language: node_js +sudo: false +node_js: + - "0.10" +install: npm install +script: + - npm test http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-registry-mapper/README.md ---------------------------------------------------------------------- diff --git a/node_modules/cordova-registry-mapper/README.md b/node_modules/cordova-registry-mapper/README.md new file mode 100644 index 0000000..3b93e5f --- /dev/null +++ b/node_modules/cordova-registry-mapper/README.md @@ -0,0 +1,14 @@ +[![Build Status](https://travis-ci.org/stevengill/cordova-registry-mapper.svg?branch=master)](https://travis-ci.org/stevengill/cordova-registry-mapper) + +#Cordova Registry Mapper + +This module is used to map Cordova plugin ids to package names and vice versa. + +When Cordova users add plugins to their projects using ids +(e.g. `cordova plugin add org.apache.cordova.device`), +this module will map that id to the corresponding package name so `cordova-lib` knows what to fetch from **npm**. + +This module was created so the Apache Cordova project could migrate its plugins from +the [Cordova Registry](http://registry.cordova.io/) +to [npm](https://registry.npmjs.com/) +instead of having to maintain a registry. http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-registry-mapper/index.js ---------------------------------------------------------------------- diff --git a/node_modules/cordova-registry-mapper/index.js b/node_modules/cordova-registry-mapper/index.js new file mode 100644 index 0000000..4550774 --- /dev/null +++ b/node_modules/cordova-registry-mapper/index.js @@ -0,0 +1,204 @@ +var map = { + 'org.apache.cordova.battery-status':'cordova-plugin-battery-status', + 'org.apache.cordova.camera':'cordova-plugin-camera', + 'org.apache.cordova.console':'cordova-plugin-console', + 'org.apache.cordova.contacts':'cordova-plugin-contacts', + 'org.apache.cordova.device':'cordova-plugin-device', + 'org.apache.cordova.device-motion':'cordova-plugin-device-motion', + 'org.apache.cordova.device-orientation':'cordova-plugin-device-orientation', + 'org.apache.cordova.dialogs':'cordova-plugin-dialogs', + 'org.apache.cordova.file':'cordova-plugin-file', + 'org.apache.cordova.file-transfer':'cordova-plugin-file-transfer', + 'org.apache.cordova.geolocation':'cordova-plugin-geolocation', + 'org.apache.cordova.globalization':'cordova-plugin-globalization', + 'org.apache.cordova.inappbrowser':'cordova-plugin-inappbrowser', + 'org.apache.cordova.media':'cordova-plugin-media', + 'org.apache.cordova.media-capture':'cordova-plugin-media-capture', + 'org.apache.cordova.network-information':'cordova-plugin-network-information', + 'org.apache.cordova.splashscreen':'cordova-plugin-splashscreen', + 'org.apache.cordova.statusbar':'cordova-plugin-statusbar', + 'org.apache.cordova.vibration':'cordova-plugin-vibration', + 'org.apache.cordova.test-framework':'cordova-plugin-test-framework', + 'com.msopentech.websql' : 'cordova-plugin-websql', + 'com.msopentech.indexeddb' : 'cordova-plugin-indexeddb', + 'com.microsoft.aad.adal' : 'cordova-plugin-ms-adal', + 'com.microsoft.capptain' : 'capptain-cordova', + 'com.microsoft.services.aadgraph' : 'cordova-plugin-ms-aad-graph', + 'com.microsoft.services.files' : 'cordova-plugin-ms-files', + 'om.microsoft.services.outlook' : 'cordova-plugin-ms-outlook', + 'com.pbakondy.sim' : 'cordova-plugin-sim', + 'android.support.v4' : 'cordova-plugin-android-support-v4', + 'android.support.v7-appcompat' : 'cordova-plugin-android-support-v7-appcompat', + 'com.google.playservices' : 'cordova-plugin-googleplayservices', + 'com.google.cordova.admob' : 'cordova-plugin-admobpro', + 'com.rjfun.cordova.extension' : 'cordova-plugin-extension', + 'com.rjfun.cordova.plugin.admob' : 'cordova-plugin-admob', + 'com.rjfun.cordova.flurryads' : 'cordova-plugin-flurry', + 'com.rjfun.cordova.facebookads' : 'cordova-plugin-facebookads', + 'com.rjfun.cordova.httpd' : 'cordova-plugin-httpd', + 'com.rjfun.cordova.iad' : 'cordova-plugin-iad', + 'com.rjfun.cordova.iflyspeech' : 'cordova-plugin-iflyspeech', + 'com.rjfun.cordova.lianlianpay' : 'cordova-plugin-lianlianpay', + 'com.rjfun.cordova.mobfox' : 'cordova-plugin-mobfox', + 'com.rjfun.cordova.mopub' : 'cordova-plugin-mopub', + 'com.rjfun.cordova.mmedia' : 'cordova-plugin-mmedia', + 'com.rjfun.cordova.nativeaudio' : 'cordova-plugin-nativeaudio', + 'com.rjfun.cordova.plugin.paypalmpl' : 'cordova-plugin-paypalmpl', + 'com.rjfun.cordova.smartadserver' : 'cordova-plugin-smartadserver', + 'com.rjfun.cordova.sms' : 'cordova-plugin-sms', + 'com.rjfun.cordova.wifi' : 'cordova-plugin-wifi', + 'com.ohh2ahh.plugins.appavailability' : 'cordova-plugin-appavailability', + 'org.adapt-it.cordova.fonts' : 'cordova-plugin-fonts', + 'de.martinreinhardt.cordova.plugins.barcodeScanner' : 'cordova-plugin-barcodescanner', + 'de.martinreinhardt.cordova.plugins.urlhandler' : 'cordova-plugin-urlhandler', + 'de.martinreinhardt.cordova.plugins.email' : 'cordova-plugin-email', + 'de.martinreinhardt.cordova.plugins.certificates' : 'cordova-plugin-certificates', + 'de.martinreinhardt.cordova.plugins.sqlite' : 'cordova-plugin-sqlite', + 'fr.smile.cordova.fileopener' : 'cordova-plugin-fileopener', + 'org.smile.websqldatabase.initializer' : 'cordova-plugin-websqldatabase-initializer', + 'org.smile.websqldatabase.wpdb' : 'cordova-plugin-websqldatabase', + 'org.jboss.aerogear.cordova.push' : 'aerogear-cordova-push', + 'org.jboss.aerogear.cordova.oauth2' : 'aerogear-cordova-oauth2', + 'org.jboss.aerogear.cordova.geo' : 'aerogear-cordova-geo', + 'org.jboss.aerogear.cordova.crypto' : 'aerogear-cordova-crypto', + 'org.jboss.aerogaer.cordova.otp' : 'aerogear-cordova-otp', + 'uk.co.ilee.applewatch' : 'cordova-plugin-apple-watch', + 'uk.co.ilee.directions' : 'cordova-plugin-directions', + 'uk.co.ilee.gamecenter' : 'cordova-plugin-game-center', + 'uk.co.ilee.jailbreakdetection' : 'cordova-plugin-jailbreak-detection', + 'uk.co.ilee.nativetransitions' : 'cordova-plugin-native-transitions', + 'uk.co.ilee.pedometer' : 'cordova-plugin-pedometer', + 'uk.co.ilee.shake' : 'cordova-plugin-shake', + 'uk.co.ilee.touchid' : 'cordova-plugin-touchid', + 'com.knowledgecode.cordova.websocket' : 'cordova-plugin-websocket', + 'com.elixel.plugins.settings' : 'cordova-plugin-settings', + 'com.cowbell.cordova.geofence' : 'cordova-plugin-geofence', + 'com.blackberry.community.preventsleep' : 'cordova-plugin-preventsleep', + 'com.blackberry.community.gamepad' : 'cordova-plugin-gamepad', + 'com.blackberry.community.led' : 'cordova-plugin-led', + 'com.blackberry.community.thumbnail' : 'cordova-plugin-thumbnail', + 'com.blackberry.community.mediakeys' : 'cordova-plugin-mediakeys', + 'com.blackberry.community.simplebtlehrplugin' : 'cordova-plugin-bluetoothheartmonitor', + 'com.blackberry.community.simplebeaconplugin' : 'cordova-plugin-bluetoothibeacon', + 'com.blackberry.community.simplebtsppplugin' : 'cordova-plugin-bluetoothspp', + 'com.blackberry.community.clipboard' : 'cordova-plugin-clipboard', + 'com.blackberry.community.curl' : 'cordova-plugin-curl', + 'com.blackberry.community.qt' : 'cordova-plugin-qtbridge', + 'com.blackberry.community.upnp' : 'cordova-plugin-upnp', + 'com.blackberry.community.PasswordCrypto' : 'cordova-plugin-password-crypto', + 'com.blackberry.community.deviceinfoplugin' : 'cordova-plugin-deviceinfo', + 'com.blackberry.community.gsecrypto' : 'cordova-plugin-bb-crypto', + 'com.blackberry.community.mongoose' : 'cordova-plugin-mongoose', + 'com.blackberry.community.sysdialog' : 'cordova-plugin-bb-sysdialog', + 'com.blackberry.community.screendisplay' : 'cordova-plugin-screendisplay', + 'com.blackberry.community.messageplugin' : 'cordova-plugin-bb-messageretrieve', + 'com.blackberry.community.emailsenderplugin' : 'cordova-plugin-emailsender', + 'com.blackberry.community.audiometadata' : 'cordova-plugin-audiometadata', + 'com.blackberry.community.deviceemails' : 'cordova-plugin-deviceemails', + 'com.blackberry.community.audiorecorder' : 'cordova-plugin-audiorecorder', + 'com.blackberry.community.vibration' : 'cordova-plugin-vibrate-intense', + 'com.blackberry.community.SMSPlugin' : 'cordova-plugin-bb-sms', + 'com.blackberry.community.extractZipFile' : 'cordova-plugin-bb-zip', + 'com.blackberry.community.lowlatencyaudio' : 'cordova-plugin-bb-nativeaudio', + 'com.blackberry.community.barcodescanner' : 'phonegap-plugin-barcodescanner', + 'com.blackberry.app' : 'cordova-plugin-bb-app', + 'com.blackberry.bbm.platform' : 'cordova-plugin-bbm', + 'com.blackberry.connection' : 'cordova-plugin-bb-connection', + 'com.blackberry.identity' : 'cordova-plugin-bb-identity', + 'com.blackberry.invoke.card' : 'cordova-plugin-bb-card', + 'com.blackberry.invoke' : 'cordova-plugin-bb-invoke', + 'com.blackberry.invoked' : 'cordova-plugin-bb-invoked', + 'com.blackberry.io.filetransfer' : 'cordova-plugin-bb-filetransfer', + 'com.blackberry.io' : 'cordova-plugin-bb-io', + 'com.blackberry.notification' : 'cordova-plugin-bb-notification', + 'com.blackberry.payment' : 'cordova-plugin-bb-payment', + 'com.blackberry.pim.calendar' : 'cordova-plugin-bb-calendar', + 'com.blackberry.pim.contacts' : 'cordova-plugin-bb-contacts', + 'com.blackberry.pim.lib' : 'cordova-plugin-bb-pimlib', + 'com.blackberry.push' : 'cordova-plugin-bb-push', + 'com.blackberry.screenshot' : 'cordova-plugin-screenshot', + 'com.blackberry.sensors' : 'cordova-plugin-bb-sensors', + 'com.blackberry.system' : 'cordova-plugin-bb-system', + 'com.blackberry.ui.contextmenu' : 'cordova-plugin-bb-ctxmenu', + 'com.blackberry.ui.cover' : 'cordova-plugin-bb-cover', + 'com.blackberry.ui.dialog' : 'cordova-plugin-bb-dialog', + 'com.blackberry.ui.input' : 'cordova-plugin-touch-keyboard', + 'com.blackberry.ui.toast' : 'cordova-plugin-toast', + 'com.blackberry.user.identity' : 'cordova-plugin-bb-idservice', + 'com.blackberry.utils' : 'cordova-plugin-bb-utils', + 'net.yoik.cordova.plugins.screenorientation' : 'cordova-plugin-screen-orientation', + 'com.phonegap.plugins.barcodescanner' : 'phonegap-plugin-barcodescanner', + 'com.manifoldjs.hostedwebapp' : 'cordova-plugin-hostedwebapp', + 'com.initialxy.cordova.themeablebrowser' : 'cordova-plugin-themeablebrowser', + 'gr.denton.photosphere' : 'cordova-plugin-panoramaviewer', + 'nl.x-services.plugins.actionsheet' : 'cordova-plugin-actionsheet', + 'nl.x-services.plugins.socialsharing' : 'cordova-plugin-x-socialsharing', + 'nl.x-services.plugins.googleplus' : 'cordova-plugin-googleplus', + 'nl.x-services.plugins.insomnia' : 'cordova-plugin-insomnia', + 'nl.x-services.plugins.toast' : 'cordova-plugin-x-toast', + 'nl.x-services.plugins.calendar' : 'cordova-plugin-calendar', + 'nl.x-services.plugins.launchmyapp' : 'cordova-plugin-customurlscheme', + 'nl.x-services.plugins.flashlight' : 'cordova-plugin-flashlight', + 'nl.x-services.plugins.sslcertificatechecker' : 'cordova-plugin-sslcertificatechecker', + 'com.bridge.open' : 'cordova-open', + 'com.bridge.safe' : 'cordova-safe', + 'com.disusered.open' : 'cordova-open', + 'com.disusered.safe' : 'cordova-safe', + 'me.apla.cordova.app-preferences' : 'cordova-plugin-app-preferences', + 'com.konotor.cordova' : 'cordova-plugin-konotor', + 'io.intercom.cordova' : 'cordova-plugin-intercom', + 'com.onesignal.plugins.onesignal' : 'onesignal-cordova-plugin', + 'com.danjarvis.document-contract': 'cordova-plugin-document-contract', + 'com.eface2face.iosrtc' : 'cordova-plugin-iosrtc', + 'com.mobileapptracking.matplugin' : 'cordova-plugin-tune', + 'com.marianhello.cordova.background-geolocation' : 'cordova-plugin-mauron85-background-geolocation', + 'fr.louisbl.cordova.locationservices' : 'cordova-plugin-locationservices', + 'fr.louisbl.cordova.gpslocation' : 'cordova-plugin-gpslocation', + 'com.hiliaox.weibo' : 'cordova-plugin-weibo', + 'com.uxcam.cordova.plugin' : 'cordova-uxcam', + 'de.fastr.phonegap.plugins.downloader' : 'cordova-plugin-fastrde-downloader', + 'de.fastr.phonegap.plugins.injectView' : 'cordova-plugin-fastrde-injectview', + 'de.fastr.phonegap.plugins.CheckGPS' : 'cordova-plugin-fastrde-checkgps', + 'de.fastr.phonegap.plugins.md5chksum' : 'cordova-plugin-fastrde-md5', + 'io.repro.cordova' : 'cordova-plugin-repro', + 're.notifica.cordova': 'cordova-plugin-notificare-push', + 'com.megster.cordova.ble': 'cordova-plugin-ble-central', + 'com.megster.cordova.bluetoothserial': 'cordova-plugin-bluetooth-serial', + 'com.megster.cordova.rfduino': 'cordova-plugin-rfduino', + 'cz.velda.cordova.plugin.devicefeedback': 'cordova-plugin-velda-devicefeedback', + 'cz.Velda.cordova.plugin.devicefeedback': 'cordova-plugin-velda-devicefeedback', + 'org.scriptotek.appinfo': 'cordova-plugin-appinfo', + 'com.yezhiming.cordova.appinfo': 'cordova-plugin-appinfo', + 'pl.makingwaves.estimotebeacons': 'cordova-plugin-estimote', + 'com.evothings.ble': 'cordova-plugin-ble', + 'com.appsee.plugin' : 'cordova-plugin-appsee', + 'am.armsoft.plugins.listpicker': 'cordova-plugin-listpicker', + 'com.pushbots.push': 'pushbots-cordova-plugin', + 'com.admob.google': 'cordova-admob', + 'admob.ads.google': 'cordova-admob-ads', + 'admob.google.plugin': 'admob-google', + 'com.admob.admobads': 'admob-ads', + 'com.connectivity.monitor': 'cordova-connectivity-monitor', + 'com.ios.libgoogleadmobads': 'cordova-libgoogleadmobads', + 'com.google.play.services': 'cordova-google-play-services', + 'android.support.v13': 'cordova-android-support-v13', + 'android.support.v4': 'cordova-android-support-v4', // Duplicated key ;) + 'com.analytics.google': 'cordova-plugin-analytics', + 'com.analytics.adid.google': 'cordova-plugin-analytics-adid', + 'com.chariotsolutions.nfc.plugin': 'phonegap-nfc', + 'com.samz.mixpanel': 'cordova-plugin-mixpanel', + 'de.appplant.cordova.common.RegisterUserNotificationSettings': 'cordova-plugin-registerusernotificationsettings', + 'plugin.google.maps': 'cordova-plugin-googlemaps', + 'xu.li.cordova.wechat': 'cordova-plugin-wechat', + 'es.keensoft.fullscreenimage': 'cordova-plugin-fullscreenimage', + 'com.arcoirislabs.plugin.mqtt' : 'cordova-plugin-mqtt' +}; + +module.exports.oldToNew = map; + +var reverseMap = {}; +Object.keys(map).forEach(function(elem){ + reverseMap[map[elem]] = elem; +}); + +module.exports.newToOld = reverseMap; http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-registry-mapper/package.json ---------------------------------------------------------------------- diff --git a/node_modules/cordova-registry-mapper/package.json b/node_modules/cordova-registry-mapper/package.json new file mode 100644 index 0000000..592e202 --- /dev/null +++ b/node_modules/cordova-registry-mapper/package.json @@ -0,0 +1,77 @@ +{ + "_args": [ + [ + "cordova-registry-mapper@^1.1.8", + "D:\\Cordova\\cordova-windows\\node_modules\\cordova-common" + ] + ], + "_from": "cordova-registry-mapper@>=1.1.8 <2.0.0", + "_id": "cordova-registry-mapper@1.1.15", + "_inCache": true, + "_installable": true, + "_location": "/cordova-registry-mapper", + "_nodeVersion": "5.4.1", + "_npmUser": { + "email": "stevengill97@gmail.com", + "name": "stevegill" + }, + "_npmVersion": "3.5.3", + "_phantomChildren": {}, + "_requested": { + "name": "cordova-registry-mapper", + "raw": "cordova-registry-mapper@^1.1.8", + "rawSpec": "^1.1.8", + "scope": null, + "spec": ">=1.1.8 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/cordova-common" + ], + "_resolved": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz", + "_shasum": "e244b9185b8175473bff6079324905115f83dc7c", + "_shrinkwrap": null, + "_spec": "cordova-registry-mapper@^1.1.8", + "_where": "D:\\Cordova\\cordova-windows\\node_modules\\cordova-common", + "author": { + "name": "Steve Gill" + }, + "bugs": { + "url": "https://github.com/stevengill/cordova-registry-mapper/issues" + }, + "dependencies": {}, + "description": "Maps old plugin ids to new plugin names for fetching from npm", + "devDependencies": { + "tape": "^3.5.0" + }, + "directories": {}, + "dist": { + "shasum": "e244b9185b8175473bff6079324905115f83dc7c", + "tarball": "http://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz" + }, + "gitHead": "00af0f028ec94154a364eeabe38b8e22320647bd", + "homepage": "https://github.com/stevengill/cordova-registry-mapper#readme", + "keywords": [ + "cordova", + "plugins" + ], + "license": "Apache version 2.0", + "main": "index.js", + "maintainers": [ + { + "email": "stevengill97@gmail.com", + "name": "stevegill" + } + ], + "name": "cordova-registry-mapper", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+https://github.com/stevengill/cordova-registry-mapper.git" + }, + "scripts": { + "test": "node tests/test.js" + }, + "version": "1.1.15" +} http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/cordova-registry-mapper/tests/test.js ---------------------------------------------------------------------- diff --git a/node_modules/cordova-registry-mapper/tests/test.js b/node_modules/cordova-registry-mapper/tests/test.js new file mode 100644 index 0000000..35343be --- /dev/null +++ b/node_modules/cordova-registry-mapper/tests/test.js @@ -0,0 +1,11 @@ +var test = require('tape'); +var oldToNew = require('../index').oldToNew; +var newToOld = require('../index').newToOld; + +test('plugin mappings exist', function(t) { + t.plan(2); + + t.equal('cordova-plugin-device', oldToNew['org.apache.cordova.device']); + + t.equal('org.apache.cordova.device', newToOld['cordova-plugin-device']); +}) http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/elementtree/node_modules/sax/AUTHORS ---------------------------------------------------------------------- diff --git a/node_modules/elementtree/node_modules/sax/AUTHORS b/node_modules/elementtree/node_modules/sax/AUTHORS deleted file mode 100644 index 26d8659..0000000 --- a/node_modules/elementtree/node_modules/sax/AUTHORS +++ /dev/null @@ -1,9 +0,0 @@ -# contributors sorted by whether or not they're me. -Isaac Z. Schlueter -Stein Martin Hustad -Mikeal Rogers -Laurie Harper -Jann Horn -Elijah Insua -Henry Rawas -Justin Makeig http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/elementtree/node_modules/sax/LICENSE ---------------------------------------------------------------------- diff --git a/node_modules/elementtree/node_modules/sax/LICENSE b/node_modules/elementtree/node_modules/sax/LICENSE deleted file mode 100644 index 05a4010..0000000 --- a/node_modules/elementtree/node_modules/sax/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2009, 2010, 2011 Isaac Z. Schlueter. -All rights reserved. - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/5a6cb728/node_modules/elementtree/node_modules/sax/README.md ---------------------------------------------------------------------- diff --git a/node_modules/elementtree/node_modules/sax/README.md b/node_modules/elementtree/node_modules/sax/README.md deleted file mode 100644 index 9c63dc4..0000000 --- a/node_modules/elementtree/node_modules/sax/README.md +++ /dev/null @@ -1,213 +0,0 @@ -# sax js - -A sax-style parser for XML and HTML. - -Designed with [node](http://nodejs.org/) in mind, but should work fine in -the browser or other CommonJS implementations. - -## What This Is - -* A very simple tool to parse through an XML string. -* A stepping stone to a streaming HTML parser. -* A handy way to deal with RSS and other mostly-ok-but-kinda-broken XML - docs. - -## What This Is (probably) Not - -* An HTML Parser - That's a fine goal, but this isn't it. It's just - XML. -* A DOM Builder - You can use it to build an object model out of XML, - but it doesn't do that out of the box. -* XSLT - No DOM = no querying. -* 100% Compliant with (some other SAX implementation) - Most SAX - implementations are in Java and do a lot more than this does. -* An XML Validator - It does a little validation when in strict mode, but - not much. -* A Schema-Aware XSD Thing - Schemas are an exercise in fetishistic - masochism. -* A DTD-aware Thing - Fetching DTDs is a much bigger job. - -## Regarding `Hello, world!').close(); - - // stream usage - // takes the same options as the parser - var saxStream = require("sax").createStream(strict, options) - saxStream.on("error", function (e) { - // unhandled errors will throw, since this is a proper node - // event emitter. - console.error("error!", e) - // clear the error - this._parser.error = null - this._parser.resume() - }) - saxStream.on("opentag", function (node) { - // same object as above - }) - // pipe is supported, and it's readable/writable - // same chunks coming in also go out. - fs.createReadStream("file.xml") - .pipe(saxStream) - .pipe(fs.createReadStream("file-copy.xml")) - - - -## Arguments - -Pass the following arguments to the parser function. All are optional. - -`strict` - Boolean. Whether or not to be a jerk. Default: `false`. - -`opt` - Object bag of settings regarding string formatting. All default to `false`. - -Settings supported: - -* `trim` - Boolean. Whether or not to trim text and comment nodes. -* `normalize` - Boolean. If true, then turn any whitespace into a single - space. -* `lowercasetags` - Boolean. If true, then lowercase tags in loose mode, - rather than uppercasing them. -* `xmlns` - Boolean. If true, then namespaces are supported. - -## Methods - -`write` - Write bytes onto the stream. You don't have to do this all at -once. You can keep writing as much as you want. - -`close` - Close the stream. Once closed, no more data may be written until -it is done processing the buffer, which is signaled by the `end` event. - -`resume` - To gracefully handle errors, assign a listener to the `error` -event. Then, when the error is taken care of, you can call `resume` to -continue parsing. Otherwise, the parser will not continue while in an error -state. - -## Members - -At all times, the parser object will have the following members: - -`line`, `column`, `position` - Indications of the position in the XML -document where the parser currently is looking. - -`startTagPosition` - Indicates the position where the current tag starts. - -`closed` - Boolean indicating whether or not the parser can be written to. -If it's `true`, then wait for the `ready` event to write again. - -`strict` - Boolean indicating whether or not the parser is a jerk. - -`opt` - Any options passed into the constructor. - -`tag` - The current tag being dealt with. - -And a bunch of other stuff that you probably shouldn't touch. - -## Events - -All events emit with a single argument. To listen to an event, assign a -function to `on`. Functions get executed in the this-context of -the parser object. The list of supported events are also in the exported -`EVENTS` array. - -When using the stream interface, assign handlers using the EventEmitter -`on` function in the normal fashion. - -`error` - Indication that something bad happened. The error will be hanging -out on `parser.error`, and must be deleted before parsing can continue. By -listening to this event, you can keep an eye on that kind of stuff. Note: -this happens *much* more in strict mode. Argument: instance of `Error`. - -`text` - Text node. Argument: string of text. - -`doctype` - The ``. Argument: -object with `name` and `body` members. Attributes are not parsed, as -processing instructions have implementation dependent semantics. - -`sgmldeclaration` - Random SGML declarations. Stuff like `` -would trigger this kind of event. This is a weird thing to support, so it -might go away at some point. SAX isn't intended to be used to parse SGML, -after all. - -`opentag` - An opening tag. Argument: object with `name` and `attributes`. -In non-strict mode, tag names are uppercased, unless the `lowercasetags` -option is set. If the `xmlns` option is set, then it will contain -namespace binding information on the `ns` member, and will have a -`local`, `prefix`, and `uri` member. - -`closetag` - A closing tag. In loose mode, tags are auto-closed if their -parent closes. In strict mode, well-formedness is enforced. Note that -self-closing tags will have `closeTag` emitted immediately after `openTag`. -Argument: tag name. - -`attribute` - An attribute node. Argument: object with `name` and `value`, -and also namespace information if the `xmlns` option flag is set. - -`comment` - A comment node. Argument: the string of the comment. - -`opencdata` - The opening tag of a ``) of a `` tags trigger a `"script"` -event, and their contents are not checked for special xml characters. -If you pass `noscript: true`, then this behavior is suppressed. - -## Reporting Problems - -It's best to write a failing test if you find an issue. I will always -accept pull requests with failing tests if they demonstrate intended -behavior, but it is very hard to figure out what issue you're describing -without a test. Writing a test is also the best way for you yourself -to figure out if you really understand the issue you think you have with -sax-js. --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org For additional commands, e-mail: commits-help@cordova.apache.org