diff --git a/docs/Clients/WebSocket.md b/docs/Clients/WebSocket.md
index fa131d85f..d64748824 100644
--- a/docs/Clients/WebSocket.md
+++ b/docs/Clients/WebSocket.md
@@ -100,11 +100,18 @@ the WebSocket client disconnects.
### Web Browser Call Example
-> Note: The following example requires msgpack. Either download it or reference it via the CDN:
+> ## `msgpack` required
+>
+> The following example requires msgpack. Either download it via `npm install msgpack-lite` or
+> reference it via the CDN:
>
> ``
+>
+> For development, you may reference it directly from GitHub:
+>
+> ``
-```javascript
+```js
const ws = new WebSocket('ws://127.0.0.1:1732');
ws.binaryType = 'arraybuffer';
@@ -125,7 +132,7 @@ ws.onmessage = evt => {
This example uses the [ws](https://www.npmjs.com/package/ws) and
[msgpack-lite](https://www.npmjs.com/package/msgpack-lite) packages.
-```javascript
+```js
const msgpack = require('msgpack-lite');
const util = require('util');
const WebSocket = require('ws');
@@ -145,7 +152,7 @@ const ws = new WebSocket('ws://127.0.0.1:1732', {
### Node.js Subscribe Example
-```javascript
+```js
const msgpack = require('msgpack-lite');
const util = require('util');
const WebSocket = require('ws');
diff --git a/docs/Components/Configuration-System.md b/docs/Components/Configuration-System.md
index bc637c312..e829656b2 100644
--- a/docs/Components/Configuration-System.md
+++ b/docs/Components/Configuration-System.md
@@ -2,6 +2,92 @@
## Configuration System
+The Appc Daemon contains a default configuration file located inside the `appcd-core` package.
+User-defined config settings are stored in `~/.appcelerator/appcd/config.json`.
+
+## Usage
+
+The daemon configuration can be accessed via the CLI, WebSocket (external), appcd client
+(external), or programmatically (internal).
+
+### Actions
+
+ * `ls`, `list` - Display all config settings.
+ * `get` - Display a specific setting.
+ * `set` - Sets a config setting and saves it in the user-defined config file.
+ * `rm`, `delete` - Remove a config setting.
+ * `push` - Add a value to the end of a list.
+ * `pop` - Remove the last value in a list.
+
+### `appcd config` CLI command
+
+```sh
+# show the help screen
+$ appcd config
+$ appcd config -h
+$ appcd config --help
+
+$ appcd config [options] [] []
+```
+
+Refer to the [config command](Commands/config.md) page for more information.
+
+### Config Service via `appcd` CLI
+
+```sh
+$ appcd exec /appcd/config
+
+$ appcd exec /appcd/config/{action}
+```
+
+### `appcd-client` for Node.js
+
+```js
+import Client from 'appcd-client';
+
+new Client()
+ .request({
+ path: '/appcd/config'
+ })
+ .on('response', (message, response) => {
+ console.log(message);
+ process.exit(0);
+ })
+ .once('close', () => process.exit(0))
+ .once('error', err => {
+ console.error(err.message);
+ process.exit(1);
+ });
+```
+
+### WebSocket Client
+
+HTML:
+
+```html
+
+```
+
+JavaScript:
+
+```js
+const ws = new WebSocket('ws://127.0.0.1:1732');
+ws.binaryType = 'arraybuffer';
+
+ws.onopen = () => ws.send(JSON.stringify({
+ version: '1.0',
+ path: '/appcd/config',
+ id: Date.now()
+}));
+
+ws.onmessage = evt => {
+ const status = msgpack.decode(new Uint8Array(evt.data)).message;
+ console.info(status);
+};
+```
+
+## Implementation
+
The Appc Daemon config system is implemented in the `appcd-config` package. It supports both `.js`
`.json` config files.
diff --git a/docs/Configuration-Settings.md b/docs/Configuration-Settings.md
new file mode 100644
index 000000000..92e12dc53
--- /dev/null
+++ b/docs/Configuration-Settings.md
@@ -0,0 +1,72 @@
+#  Daemon Project
+
+## Configuration Settings
+
+> For information about the implementation details of the config system, please refer to the
+> [configuration system](Components/Configuration-System.md) page.
+
+### Appc Daemon Settings
+
+| Name | Type | Default | Scope | Requires Restart | Description |
+| ---------------------------------- | -------------- | ------------------------------------ | ------------------------------------------ | ---------------- | ----------- |
+| `core.enforceNodeVersion` | Boolean | `true` | appcd-nodejs (via appcd) | Yes | When `true`, enforces the Node.js version required by the core. If the required Node.js version is not installed, then the required version is downloaded. When `false`, it will use the current Node.js version which may be incompatible with the core. |
+| `core.v8.memory` | String, Number | `"auto"` | appcd-nodejs (via appcd) | Yes | The maximum amount of memory the spawned appcd core process should allocate. The value must either be the number of megabytes or the string `"auto"`, which will automatically select a sensible size based on the system architecture and installed memory. |
+| `environment.name` | String | `"prod"` | appcd-core | Yes | Shorthand environment name used for loading the environment-specific config file. This value is sent in the `ti.start` telemetry data payload. This value is not the same as the `telemetry.environment`. |
+| `environment.title` | String | `"production"` | appcd-core | Yes | Title for the environment used in debug logging when the daemon starts. |
+| `home` | String | `"~/.appcelerator/appcd"` | appcd, appcd-core, appcd-config-service, appcd-subprocess | | Yes | The path to the `appcd` home directory containing user-defined config files and plugins. |
+| `network.agentOptions` | Object | `null` | appcd-request | No | Additional agent options to pass directly into `request`. |
+| `network.caFile` | String | `null` | appcd-request | No | Path to a pem file containing one or more certificate authorities. Note that the `APPCD_NETWORK_CA_FILE` environment variable overrides this value. |
+| `network.certFile` | String | `null` | appcd-request | No | Path to a cert file. |
+| `network.httpProxy` | String | `null` | appcd-request | No | The proxy URL to use for outgoing HTTP network requests. Note that the `APPCD_NETWORK_PROXY` environment variable overrides this value. |
+| `network.httpsProxy` | String | `null` | appcd-request | No | The secure proxy URL to use for outgoing HTTPS network requests. Note that the `APPCD_NETWORK_PROXY` environment variable overrides this value. |
+| `network.keyFile` | String | `null` | appcd-request | No | Path to a private key file. |
+| `network.passphrase` | String | `null` | appcd-request | No | The private key's passphrase. |
+| `network.strictSSL` | Boolean | `true` | appcd-request | No | Enforces SSL certificates to be valid. Note that the `APPCD_NETWORK_STRICT_SSL` environment variable overrides this value. |
+| `plugins.autoReload` | Boolean | `true` | appcd-plugin | No | Stops `external` plugins when one of its files is changed. |
+| `plugins.defaultInactivityTimeout` | Number | `60 * 60 * 1000` (1 hour) | appcd-plugin | No | The default number of milliseconds of inactivity before an `external` plugin is deactivated. |
+| `server.agentPollInterval` | Number | `1000` | appcd-agent (via appcd-core, appcd-plugin) | No | The number of milliseconds to have the agents poll for system health. |
+| `server.daemonize` | Boolean | `true` | appcd | Yes | Launches the server as a background process. |
+| `server.group` | String, Number | `null` | appcd-core | Yes | The group to switch to when the daemon is started as root on a POSIX system. |
+| `server.hostname` | String | `"127.0.0.1"` | appcd-core | Yes | The hostname or IP address to listen on. |
+| `server.nodejsMaxUnusedAge` | Number | `90 * 24 * 60 * 60 * 1000` (90 days) | appcd-core | Yes | The max age in milliseconds an unused Node.js executable should be kept before it's purged. |
+| `server.pidFile` | String | `"~/.appcelerator/appcd/appcd.pid"` | appcd-core | Yes | Path to the daemon's pid (process id) file. |
+| `server.port` | Number | `1732` | appcd-core | Yes | The port to listen for incoming requests. |
+| `server.user` | String | `null` | appcd-core | Yes | The user to switch to when the daemon is started as root on a POSIX system. |
+| `telemetry.app` | String | `""` | appcd-telemetry | No | The Appc Daemon app GUID to send with each event. |
+| `telemetry.enabled` | Boolean | `true` | appcd-telemetry | No | Turns on telemetry recording and submitting. |
+| `telemetry.environment` | String | `"production"` | appcd-telemetry | No | Deploy type for the analytics events. |
+| `telemetry.eventsDir` | String | `"~/.appcelerator/appcd/telemetry"` | appcd-telemetry | No | The path store unsent telemetry events. |
+| `telemetry.sendBatchSize` | Number | `10` | appcd-telemetry | No | The maximum number of events to send at a time. |
+| `telemetry.sendInterval` | Number | `60000` | appcd-telemetry | No | The number of milliseconds to wait before checking if there are enough telemetry events to batch send. |
+| `telemetry.sendTimeout` | Number | `60000` | appcd-telemetry | No | The number of milliseconds to wait before timing out sending telementry events. |
+| `telemetry.url` | String | `""` | appcd-telemetry | No | The URL to send the telemetry events to. |
+
+### Titanium Settings
+
+| Name | Type | Default | Scope | Requires Restart | Description |
+| ---------------------------------- | ------------- | ------------------------------------------------ | -------------------------------------- | ---------------- | ----------- |
+| `android.adb.install.timeout` | Number | `null` | androidlib (via @appcd/plugin-android) | No | The number of milliseconds to wait before installing an app times out. |
+| `android.adb.port` | Number | `null` | androidlib (via @appcd/plugin-android) | No | The port to connect to ADB. |
+| `android.adb.start.retryInterval` | Number | `null` | androidlib (via @appcd/plugin-android) | No | The number of milliseconds to wait before retrying to start ADB. |
+| `android.adb.start.timeout` | Number | `null` | androidlib (via @appcd/plugin-android) | No | The number of milliseconds to wait before starting ADB times out. |
+| `android.avd.path` | String | `null` | androidlib (via @appcd/plugin-android) | No | The path to where AVDs are stored. |
+| `android.emulator.start.timeout` | Number | `null` | androidlib (via @appcd/plugin-android) | No | The number of milliseconds to wait before starting the Android emulator times out. |
+| `android.env.path` | String | `null` | androidlib (via @appcd/plugin-android) | No | An override for the `PATH` environment variable for androidlib's ADB detection. |
+| `android.executables.adb` | String | `null` | androidlib (via @appcd/plugin-android) | No | The path to the ADB executable. |
+| `android.genymotion.searchPaths` | Array[String] | `null` | androidlib (via @appcd/plugin-android) | No | A list of paths to search for Genymotion. |
+| `android.ndk.searchPaths` | Array[String] | `null` | @appcd/plugin-android, androidlib | No | A list of paths to search for Android NDKs. |
+| `android.sdk.searchPaths` | Array[String] | `null` | @appcd/plugin-android, androidlib | No | A list of paths to search for Android SDKs. |
+| `android.virtualbox.configFile` | String | `null` | @appcd/plugin-android, androidlib | No | The path to VirtualBox's XML config file. |
+| `android.virtualbox.searchPaths` | Array[String] | `null` | @appcd/plugin-android, androidlib | No | A list of paths to search for VirtualBox. |
+| `ios.env.path` | String | `null` | ioslib (via @appcd/plugin-ios) | No | An override for the `PATH` environment variable for ioslib's `xcode-select` detection. |
+| `ios.executables.security` | String | `null` | ioslib (via @appcd/plugin-ios) | No | Path to the `security` executable. |
+| `ios.executables.xcodeSelect` | String | `null` | ioslib (via @appcd/plugin-ios) | No | Path to the `xcode-select` executable. |
+| `ios.provisioning.path` | String | `"~/Library/MobileDevice/Provisioning Profiles"` | ioslib (via @appcd/plugin-ios) | No | The path to the provisioning profiles directory. |
+| `ios.simulator.devicesDir` | String | `"~/Library/Developer/CoreSimulator/Devices"` | ioslib (via @appcd/plugin-ios) | No | The path to the directory containing the simulator device directories. |
+| `ios.xcode.searchPaths` | String | `null` | ioslib (via @appcd/plugin-ios) | No | A list of paths to search for Xcode installations. |
+| `java.searchPaths` | Array[String] | `null` | @appcd/plugin-jdk | No | A list of paths to search for JDKs. |
+| `titanium.configImported` | Boolean | `undefined` | appcd | Yes | Indicates the legacy Titanium CLI config file has been imported. This includes Android, Genymotion, iOS, and Java settings. |
+| `titanium.searchPaths` | Array[String] | `null` | @appcd/plugin-titanium | No | A list of paths to search for Titanium SDKs. |
+| `windows.sdk.searchPaths` | Array[String] | `null` | @appcd/plugin-windows | No | A list of paths to search for Windows SDKs. |
+| `windows.visualstudio.searchPaths` | Array[String] | `null` | @appcd/plugin-windows | No | A list of paths to search for Visual Studio installations. |
+| `windows.vswhere.searchPaths` | Array[String] | `null` | @appcd/plugin-windows | No | A list of paths to search for the `vswhere.exe` utility. |
diff --git a/docs/Configuration.md b/docs/Configuration.md
deleted file mode 100644
index b36457c23..000000000
--- a/docs/Configuration.md
+++ /dev/null
@@ -1,5 +0,0 @@
-#  Daemon Project
-
-## Configuration
-
-> :warning: Under construction.
diff --git a/docs/README.md b/docs/README.md
index c4c47ad89..c739697ef 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,7 +1,7 @@
#  Daemon Project
-appcd is the name of the npm package that contains the Appc Daemon bootstrap, command line interface
-(CLI), core, and supporting packages.
+_appcd_ is the name of the npm package that contains the Appc Daemon bootstrap, command line
+interface (CLI), core, and supporting packages.
## Table of Contents
@@ -22,7 +22,7 @@ appcd is the name of the npm package that contains the Appc Daemon bootstrap, co
8. [Subprocess Manager](Components/Subprocess-Manager.md)
9. [Telemetry](Components/Telemetry.md)
10. [Web Server](Components/Web-Server.md)
-8. [Configuration](Configuration.md)
+8. [Configuration Settings](Configuration-Settings.md)
9. [Commands](Commands/README.md)
1. [config](Commands/config.md)
2. [dump](Commands/dump.md)
diff --git a/gulpfile.js b/gulpfile.js
index 93d3d9018..a7f964523 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -199,9 +199,7 @@ exports.ls = exports.list = async function listPackages() {
*/
exports.lint = series(cyclic, function lint() {
return gulp
- .src([
- path.join(__dirname, 'packages/*/gulpfile.js')
- ])
+ .src(path.join(__dirname, 'packages/*/gulpfile.js'))
.pipe(debug({ title: 'Linting project:' }))
.pipe(plumber())
.pipe(chug({ tasks: [ 'lint' ] }));
diff --git a/package.json b/package.json
index 6916f0f1c..2d5c30145 100644
--- a/package.json
+++ b/package.json
@@ -3,9 +3,9 @@
"version": "0.0.0",
"private": true,
"dependencies": {
- "ansi-colors": "^4.0.1",
+ "ansi-colors": "^4.1.1",
"cli-table2": "^0.2.0",
- "fs-extra": "^8.0.1",
+ "fs-extra": "^8.1.0",
"globule": "^1.2.1",
"gulp": "^4.0.2",
"gulp-chug": "^0.5.1",
@@ -15,13 +15,14 @@
"istanbul-lib-coverage": "^2.0.5",
"istanbul-lib-report": "^2.0.8",
"istanbul-reports": "^2.2.6",
- "lerna": "^3.15.0",
- "libnpm": "^2.0.1",
+ "lerna": "^3.16.4",
+ "libnpm": "^3.0.1",
+ "node-gyp": "^5.0.3",
"pretty-log": "^0.1.0",
"progress": "^2.0.3",
"promise-limit": "^2.7.0",
- "retire": "^2.0.2",
- "semver": "^6.1.2",
+ "retire": "^2.0.3",
+ "semver": "^6.3.0",
"sloc": "^0.2.1",
"toposort": "^2.0.2",
"tree-printer": "^1.1.1"
diff --git a/packages/appcd-agent/CHANGELOG.md b/packages/appcd-agent/CHANGELOG.md
index f33afb303..7b23855da 100644
--- a/packages/appcd-agent/CHANGELOG.md
+++ b/packages/appcd-agent/CHANGELOG.md
@@ -1,3 +1,8 @@
+# v1.1.7
+
+ * chore: Fixed eslint `hasOwnProperty` warnings.
+ * chore: Updated dependencies.
+
# v1.1.6 (Jun 4, 2019)
* chore: Updated dependencies.
diff --git a/packages/appcd-agent/package.json b/packages/appcd-agent/package.json
index e69d60048..4c5aee25d 100644
--- a/packages/appcd-agent/package.json
+++ b/packages/appcd-agent/package.json
@@ -16,8 +16,8 @@
"test": "gulp test"
},
"dependencies": {
- "nanobuffer": "^1.1.4",
- "source-map-support": "^0.5.12"
+ "nanobuffer": "^1.1.5",
+ "source-map-support": "^0.5.13"
},
"devDependencies": {
"appcd-gulp": "^2.1.1"
diff --git a/packages/appcd-agent/src/agent.js b/packages/appcd-agent/src/agent.js
index 67a5c6c14..3e174b2b4 100644
--- a/packages/appcd-agent/src/agent.js
+++ b/packages/appcd-agent/src/agent.js
@@ -165,7 +165,7 @@ export default class Agent extends EventEmitter {
// add the values for each stat to its bucket, or set zero if we don't have a value
// for this poll
for (const name of Object.keys(this.buckets)) {
- if (stats.hasOwnProperty(name)) {
+ if (Object.prototype.hasOwnProperty.call(stats, name)) {
const value = stats[name];
const bucket = this.buckets[name];
let last = bucket.last || 0;
diff --git a/packages/appcd-client/package.json b/packages/appcd-client/package.json
index b7c060a9e..18b02a191 100644
--- a/packages/appcd-client/package.json
+++ b/packages/appcd-client/package.json
@@ -25,12 +25,12 @@
"appcd-logger": "^2.0.2",
"appcd-response": "^2.0.0",
"appcd-util": "^1.1.7",
- "fs-extra": "^8.0.1",
+ "fs-extra": "^8.1.0",
"msgpack-lite": "^0.1.26",
- "source-map-support": "^0.5.12",
+ "source-map-support": "^0.5.13",
"uuid": "^3.3.2",
"which": "^1.3.1",
- "ws": "^7.0.1"
+ "ws": "^7.1.1"
},
"devDependencies": {
"appcd-gulp": "^2.1.1"
diff --git a/packages/appcd-config-service/package.json b/packages/appcd-config-service/package.json
index 10be425d2..5459fd4d4 100644
--- a/packages/appcd-config-service/package.json
+++ b/packages/appcd-config-service/package.json
@@ -21,7 +21,7 @@
"appcd-logger": "^2.0.2",
"appcd-path": "^1.1.6",
"appcd-response": "^2.0.0",
- "source-map-support": "^0.5.12"
+ "source-map-support": "^0.5.13"
},
"devDependencies": {
"appcd-gulp": "^2.1.1"
diff --git a/packages/appcd-config/CHANGELOG.md b/packages/appcd-config/CHANGELOG.md
index a28093969..bc79f040d 100644
--- a/packages/appcd-config/CHANGELOG.md
+++ b/packages/appcd-config/CHANGELOG.md
@@ -1,3 +1,9 @@
+# v1.3.1
+
+ * fix: Fixed bug when pushing a config value to an existing key with null value.
+ * chore: Fixed eslint `hasOwnProperty` warnings.
+ * chore: Updated dependencies.
+
# v1.3.0 (Jun 4, 2019)
* refactor: Complete refactor to support config namespaces.
diff --git a/packages/appcd-config/package.json b/packages/appcd-config/package.json
index 3b2341f64..ea201cc64 100644
--- a/packages/appcd-config/package.json
+++ b/packages/appcd-config/package.json
@@ -16,16 +16,16 @@
"test": "gulp test"
},
"dependencies": {
- "@babel/parser": "^7.4.5",
- "@babel/traverse": "^7.4.5",
- "@babel/types": "^7.4.4",
+ "@babel/parser": "^7.5.5",
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5",
"appcd-fs": "^1.1.7",
"appcd-logger": "^2.0.2",
"appcd-path": "^1.1.6",
"doctrine": "^3.0.0",
- "fs-extra": "^8.0.1",
- "gawk": "^4.6.3",
- "source-map-support": "^0.5.12"
+ "fs-extra": "^8.1.0",
+ "gawk": "^4.6.4",
+ "source-map-support": "^0.5.13"
},
"devDependencies": {
"appcd-gulp": "^2.1.1",
diff --git a/packages/appcd-config/src/config.js b/packages/appcd-config/src/config.js
index 7661cddc5..7c565bf9b 100644
--- a/packages/appcd-config/src/config.js
+++ b/packages/appcd-config/src/config.js
@@ -134,7 +134,7 @@ export default class Config {
for (let i = 0, len = parts.length; i < len; i++) {
const prop = parts[i];
- if (!obj.hasOwnProperty(prop)) {
+ if (!Object.prototype.hasOwnProperty.call(obj, prop)) {
break;
}
@@ -381,7 +381,7 @@ export default class Config {
this._merge(values, obj, opts);
} else {
this.namespaceOrder.splice(1, 0, ns);
- this.namespaces[ns] = typeof ns === 'string' && !values.hasOwnProperty(ns) ? { [ns]: values } : values;
+ this.namespaces[ns] = typeof ns === 'string' && !Object.prototype.hasOwnProperty.call(values, ns) ? { [ns]: values } : values;
}
return this;
@@ -556,7 +556,11 @@ export default class Config {
return this;
}
- value = Array.isArray(obj) ? [ ...obj, ...value ] : [ obj, ...value ];
+ if (Array.isArray(obj)) {
+ value = [ ...obj, ...value ];
+ } else {
+ value = obj ? [ obj, ...value ] : value;
+ }
}
return this._set(key, value);
diff --git a/packages/appcd-config/test/test-config.js b/packages/appcd-config/test/test-config.js
index 29f847249..b0b5be907 100644
--- a/packages/appcd-config/test/test-config.js
+++ b/packages/appcd-config/test/test-config.js
@@ -273,6 +273,12 @@ describe('Config', () => {
expect(config.get('foo.bar')).to.deep.equal([ 'baz', 'wiz' ]);
});
+ it('should push overwrite an existing falsey value', () => {
+ const config = new Config({ config: { foo: { bar: null } } });
+ config.push('foo.bar', 'baz');
+ expect(config.get('foo.bar')).to.deep.equal([ 'baz' ]);
+ });
+
it('should combine multiple types ', () => {
const config = new Config({ config: { foo: { bar: [ 'baz' ] } } });
config.push('foo', 'wiz');
diff --git a/packages/appcd-core/CHANGELOG.md b/packages/appcd-core/CHANGELOG.md
index 728475c83..087b837e4 100644
--- a/packages/appcd-core/CHANGELOG.md
+++ b/packages/appcd-core/CHANGELOG.md
@@ -1,14 +1,18 @@
-# v2.8.1
+# v2.9.0
+ * fix: Added `sid` to WebSocketSession context so remote clients will know the subscription id.
+ * fix: Fixed bug where `server.hostname` was not being correctly referenced.
+ * chore: Bumped Node.js version from 10.15.3 to 10.16.2.
+ * chore: Updated to `appcd-default-plugins@4.0.0`.
* chore: Updated dependencies
# v2.8.0 (Jun 25, 2019)
- * chore: Updated to `appcd-default-plugins@3.0.0`,
+ * chore: Updated to `appcd-default-plugins@3.0.0`.
# v2.7.0 (Jun 24, 2019)
- * chore: Updated to `appcd-config-service@2.0.0`,
+ * chore: Updated to `appcd-config-service@2.0.0`.
# v2.6.0 (Jun 13, 2019)
diff --git a/packages/appcd-core/conf/default.js b/packages/appcd-core/conf/default.js
index 59c5fde61..c315937f4 100644
--- a/packages/appcd-core/conf/default.js
+++ b/packages/appcd-core/conf/default.js
@@ -11,10 +11,10 @@ module.exports = {
v8: {
/**
- * The maximum amount of memory the spawned appcd-core process
- * should allocate. The value must either be the number of megabytes
- * or the string `auto`, which will automatically select a sensible
- * size based on the system architecture and installed memory.
+ * The maximum amount of memory the spawned appcd core process should allocate. The
+ * value must either be the number of megabytes or the string `"auto"`, which will
+ * automatically select a sensible size based on the system architecture and installed
+ * memory.
* @type {Number|String}
* @readonly
*/
@@ -24,22 +24,25 @@ module.exports = {
environment: {
/**
- * Shorthand name for the environment.
+ * Shorthand environment name used for loading the environment-specific config file. This
+ * value is sent in the `ti.start` telemetry data payload. This value is not the same as
+ * the `telemetry.environment`.
* @type {String}
+ * @readonly
*/
name: 'prod',
/**
- * Title for the environment
+ * Title for the environment used in debug logging when the daemon starts.
* @type {String}
*/
title: 'Production'
},
/**
- * The path to the appcd home directory
- * @type {String}
+ * The path to the `appcd` home directory containing user-defined config files and plugins.
* @readonly
+ * @type {String}
*/
home: '~/.appcelerator/appcd',
@@ -51,7 +54,8 @@ module.exports = {
agentOptions: null,
/**
- * Path to a pem file containing one or more certificate authorities.
+ * Path to a pem file containing one or more certificate authorities. Note that the
+ * `APPCD_NETWORK_CA_FILE` environment variable overrides this value.
* @type {?String}
*/
caFile: null,
@@ -63,19 +67,21 @@ module.exports = {
certFile: null,
/**
- * The proxy URL to use for all outgoing HTTP network requests.
+ * The proxy URL to use for outgoing HTTP network requests. Note that the
+ * `APPCD_NETWORK_PROXY` environment variable overrides this value.
* @type {?String}
*/
httpProxy: null,
/**
- * The secure proxy URL to use for all outgoing HTTPS network requests.
+ * The secure proxy URL to use for outgoing HTTPS network requests. Note that the
+ * `APPCD_NETWORK_PROXY` environment variable overrides this value.
* @type {?String}
*/
httpsProxy: null,
/**
- * Path to a key file.
+ * Path to a private key file.
* @type {?String}
*/
keyFile: null,
@@ -87,7 +93,8 @@ module.exports = {
passphrase: null,
/**
- * Enforces SSL certificates to be valid.
+ * Enforces SSL certificates to be valid. Note that the `APPCD_NETWORK_STRICT_SSL`
+ * environment variable overrides this value.
* @type {Boolean}
*/
strictSSL: true
@@ -95,7 +102,7 @@ module.exports = {
plugins: {
/**
- * Allow `external` plugins to be auto-reloaded when one of its files is changed.
+ * Stops `external` plugins when one of its files is changed.
* @type {Boolean}
*/
autoReload: true,
@@ -116,7 +123,7 @@ module.exports = {
agentPollInterval: 1000,
/**
- * Launches the server as a background process
+ * Launches the server as a background process.
* @type {Boolean}
* @readonly
*/
@@ -140,11 +147,12 @@ module.exports = {
* The max age in milliseconds an unused Node.js executable should be kept before it's
* purged. Defaults to 90 days.
* @type {Number}
+ * @readonly
*/
nodejsMaxUnusedAge: 90 * 24 * 60 * 60 * 1000,
/**
- * Path to the daemon's pid file.
+ * Path to the daemon's pid (process id) file.
* @type {String}
* @readonly
*/
@@ -167,10 +175,10 @@ module.exports = {
telemetry: {
/**
- * Deploy type for the analytics events.
+ * The Appc Daemon app GUID to send with each event.
* @type {String}
*/
- environment: 'production',
+ app: 'ea327577-858f-4d31-905e-fa670f50ef48',
/**
* Turns on telemetry recording and submitting.
@@ -179,16 +187,16 @@ module.exports = {
enabled: true,
/**
- * The path to the telemetry cache directory.
+ * Deploy type for the analytics events.
* @type {String}
*/
- eventsDir: '~/.appcelerator/appcd/telemetry',
+ environment: 'production',
/**
- * GUID to use for telemetry.
+ * The path store unsent telemetry events.
* @type {String}
*/
- app: 'ea327577-858f-4d31-905e-fa670f50ef48',
+ eventsDir: '~/.appcelerator/appcd/telemetry',
/**
* The maximum number of events to send at a time.
@@ -210,7 +218,7 @@ module.exports = {
sendTimeout: 60000,
/**
- * The URL to post the telemetry events to.
+ * The URL to send the telemetry events to.
* @type {String}
*/
url: 'https://api.appcelerator.com/p/v4/app-track'
diff --git a/packages/appcd-core/package.json b/packages/appcd-core/package.json
index 71500a8a2..e4f4b9c31 100644
--- a/packages/appcd-core/package.json
+++ b/packages/appcd-core/package.json
@@ -20,7 +20,7 @@
"appcd-agent": "^1.1.6",
"appcd-config": "^1.3.0",
"appcd-config-service": "^2.0.0",
- "appcd-default-plugins": "^3.0.0",
+ "appcd-default-plugins": "^4.0.0",
"appcd-dispatcher": "^2.0.0",
"appcd-fs": "^1.1.7",
"appcd-fswatch-manager": "^2.0.0",
@@ -34,9 +34,9 @@
"appcd-subprocess": "^2.0.1",
"appcd-telemetry": "^2.0.1",
"appcd-util": "^1.1.7",
- "cli-kit": "^0.11.1",
- "fs-extra": "^8.0.1",
- "gawk": "^4.6.3",
+ "cli-kit": "^0.11.2",
+ "fs-extra": "^8.1.0",
+ "gawk": "^4.6.4",
"global-modules": "^2.0.0",
"humanize": "^0.0.9",
"msgpack-lite": "^0.1.26"
@@ -51,6 +51,6 @@
"node": ">=8.12.0"
},
"appcd": {
- "node": "10.15.3"
+ "node": "10.16.2"
}
}
diff --git a/packages/appcd-core/src/server.js b/packages/appcd-core/src/server.js
index 296f013e3..7c07a53ed 100644
--- a/packages/appcd-core/src/server.js
+++ b/packages/appcd-core/src/server.js
@@ -17,6 +17,7 @@ import WebSocketSession from './websocket-session';
import { arch as getArch, arrayify, get, trackTimers } from 'appcd-util';
import { expandPath } from 'appcd-path';
import { i18n } from 'appcd-response';
+import { installDefaultPlugins } from 'appcd-default-plugins';
import { isDir, isFile } from 'appcd-fs';
import { load as loadConfig } from 'appcd-config';
import { purgeUnusedNodejsExecutables } from 'appcd-nodejs';
@@ -88,21 +89,16 @@ export default class Server {
* @access public
*/
async start() {
- // check if the current user is root
- let uid, gid;
+ const uid = this.config.get('server.user');
+ const gid = this.config.get('server.group');
+
if (process.getuid && process.getuid() === 0) {
// we are on a posix system and we're root, so we need to switch to a non-root user
- uid = this.config.get('server.user');
- gid = this.config.get('server.group');
if (!uid) {
const err = new Error('The daemon cannot be run as root. You must run as a non-root user or set a user in the config.');
err.code = 5;
throw err;
}
- process.setuid(uid);
- if (gid) {
- process.setgid(gid);
- }
}
// check if appcd is already running
@@ -122,6 +118,40 @@ export default class Server {
}
fs.writeFileSync(this.pidFile, process.pid);
+ // rename the process
+ process.title = 'appcd';
+
+ logger.log(`Appcelerator Daemon v${this.version}`);
+ logger.log('Environment: %s', highlight(this.config.get('environment.title')));
+ logger.log(`Node.js ${process.version} (${process.platform}, module v${process.versions.modules})`);
+ logger.log(`PID: ${highlight(process.pid)}`);
+
+ // init the home directory
+ const homeDir = expandPath(this.config.get('home'));
+ if (!isDir(homeDir)) {
+ logger.debug('Creating home directory %s', homeDir);
+ fs.mkdirsSync(homeDir);
+ }
+
+ // install default plugins before we drop permissions
+ try {
+ await installDefaultPlugins(path.join(homeDir, 'plugins'));
+ } catch (err) {
+ if (err.code === 'EACCES') {
+ logger.warn(err);
+ } else {
+ logger.error(err);
+ }
+ }
+
+ // check if the current user is root
+ if (process.getuid && process.getuid() === 0) {
+ process.setuid(uid);
+ if (gid) {
+ process.setgid(gid);
+ }
+ }
+
// watch the pid to make sure it always exists
this.pidWatcher = new FSWatcher(this.pidFile)
.on('change', ({ action }) => {
@@ -131,14 +161,6 @@ export default class Server {
}
});
- // rename the process
- process.title = 'appcd';
-
- logger.log(`Appcelerator Daemon v${this.version}`);
- logger.log('Environment: %s', highlight(this.config.get('environment.title')));
- logger.log(`Node.js ${process.version} (${process.platform}, module v${process.versions.modules})`);
- logger.log(`PID: ${highlight(process.pid)}`);
-
// listen for CTRL-C and SIGTERM
const shutdown = async () => {
try {
@@ -151,13 +173,6 @@ export default class Server {
process.on('SIGINT', shutdown);
process.on('SIGTERM', shutdown);
- // init the home directory
- const homeDir = expandPath(this.config.get('home'));
- if (!isDir(homeDir)) {
- logger.debug('Creating home directory %s', homeDir);
- fs.mkdirsSync(homeDir);
- }
-
// import any Titanium CLI configuration settings
await this.importTiConfig();
@@ -229,7 +244,7 @@ export default class Server {
// init the web server
this.systems.webserver = new WebServer({
- hostname: this.config.get('server.host', '127.0.0.1'),
+ hostname: this.config.get('server.hostname', '127.0.0.1'),
port: this.config.get('server.port'),
webroot: path.resolve(__dirname, '..', 'public')
});
diff --git a/packages/appcd-default-plugins/.npmignore b/packages/appcd-default-plugins/.npmignore
index 74f215cbc..a89d314e6 100644
--- a/packages/appcd-default-plugins/.npmignore
+++ b/packages/appcd-default-plugins/.npmignore
@@ -11,7 +11,6 @@ gulpfile.js
junit.xml
node_modules
npm-debug.log
-/plugins
retire_output.json
yarn-error.log
/src
diff --git a/packages/appcd-default-plugins/CHANGELOG.md b/packages/appcd-default-plugins/CHANGELOG.md
index 6b56f73fe..c48cf45bb 100644
--- a/packages/appcd-default-plugins/CHANGELOG.md
+++ b/packages/appcd-default-plugins/CHANGELOG.md
@@ -1,5 +1,7 @@
-# v3.0.1
+# v4.0.0
+ * BREAKING CHANGE: `appcd-default-plugins` supports both postinstall and runtime installation of
+ default plugins.
* chore: Updated dependencies
# v3.0.0 (Jun 25, 2019)
@@ -9,6 +11,9 @@
* BREAKING CHANGE: Plugins are installed into `"~/.appcelerator/appcd/plugins"` instead of the
`"appcd-default-plugins/plugins"` directory to avoid permission issues when npm installing
`appcd` globally using `sudo` due to npm dropping root before running the post install script.
+ UPDATE: Turns out that this won't work because unless there's an explicit `user` set in the
+ npm config, it defaults to the user `nobody` which does not have write permissions to the
+ user's home directory.
# v2.0.0 (Jun 6, 2019)
diff --git a/packages/appcd-default-plugins/README.md b/packages/appcd-default-plugins/README.md
index c64a3bc09..d522cfce5 100644
--- a/packages/appcd-default-plugins/README.md
+++ b/packages/appcd-default-plugins/README.md
@@ -1,26 +1,55 @@
# appcd-default-plugins
-A psuedo package that installs the latest major versions of all default _appcd_ plugins into the
-user's appcd home directrory (e.g. `"~/.appcelerator/appcd/plugins"`).
+A psuedo package that attempts to install the latest major versions of all default _appcd_ plugins
+into the user's appcd home directrory (e.g. `"~/.appcelerator/appcd/plugins"`) postinstall and
+optionally at runtime.
Visit https://github.com/appcelerator/appc-daemon for more information.
-## Overview
-
-After installing `appcd-default-plugins`, a post-install script will run and download every major
-plugin release and puts it in the `"~/.appcelerator/appcd/plugins"` directory.
-
-If any of the plugins match locally linked packages using _yarn_, then it will use those instead of
-installing from _npm_.
-
-A list of packages to be installed is used to create a monorepo in the `plugins` directory, then
-it runs `lerna` to initialize it.
-
-The post-install script will detect if _yarn_ is installed. If found, it will initialize the
-monorepo using _yarn_'s workspaces, otherwise it fallsback to _npm_ with hoisting.
-
-If at all possible, you should install _yarn_ before installing `appcd-default-plugins`. yarn is
-about 3 times faster and uses about 75% less disk space.
+## Usage
+
+```js
+import { installDefaultPlugins } from 'appcd-default-plugins';
+
+await installDefaultPlugins('/path/to/plugins/dir');
+```
+
+## Details
+
+`appcd-default-plugins` deploys two strategies for installing the default appcd plugins:
+post-install and at runtime.
+
+Post-install is the ideal time to install the default plugins, however if the user installs as root
+(e.g. sudo), then `npm` will drop permissions and the post-install script will be unable to write
+to the plugins directory. In this case, the permission error is suppressed allowing the install to
+complete.
+
+`appcd-default-plugins` leverages _lerna_ and _yarn_ to create a local workspace for the purpose of
+optimizing a hoisted `node_modules` directory.
+
+Since downloading and installing a plugin and its dependencies is an expensive operation, it will
+only install a plugin from _npm_ if there are no installed plugins that satisfy the plugin's specs.
+Likewise, it will only invoke _lerna_ if a plugin was installed or a plugin was removed/invalidated.
+
+The `installDefaultPlugins()` function performs a number of steps to attempt to install the default
+plugins:
+
+1. Determine if the plugins directory is writable.
+2. Locate the _yarn_ and _lerna_ scripts.
+3. Detect existing list of workspaces that were created during `postinstall` or previous _appcd_
+ start.
+4. Detect existing installed plugins.
+ - Invalid plugins are quarantine in a `/path/to/plugins/invalid` directory.
+5. Detect an global yarn links.
+ - Symlink any new yarn links.
+6. Loop over the list of default _appcd_ plugins and figure out what needs to be installed.
+7. Install the missing _appcd_ plugins.
+8. Assuming one or more plugins where installed or the list of workspaces has changed, then:
+ - Rewrite every plugin's package name in their respective `package.json` files to make
+ lerna/yarn happy.
+ - Write the main `package.json` and `lerna.json` files.
+ - Execute _lerna bootstrap_ which in turn executes _yarn_.
+ - Revert the plugin package names.
## Legal
diff --git a/packages/appcd-default-plugins/gulpfile.js b/packages/appcd-default-plugins/gulpfile.js
new file mode 100644
index 000000000..e36fd15b4
--- /dev/null
+++ b/packages/appcd-default-plugins/gulpfile.js
@@ -0,0 +1,8 @@
+'use strict';
+
+require('appcd-gulp')({
+ exports,
+ pkgJson: require('./package.json'),
+ template: 'standard',
+ babel: 'node8'
+});
diff --git a/packages/appcd-default-plugins/package.json b/packages/appcd-default-plugins/package.json
index 5078a9857..06dc6a428 100644
--- a/packages/appcd-default-plugins/package.json
+++ b/packages/appcd-default-plugins/package.json
@@ -1,18 +1,33 @@
{
"name": "appcd-default-plugins",
- "version": "3.0.0",
+ "version": "4.0.0",
"description": "A psuedo package that bundles all default appcd plugins.",
+ "main": "./dist/index",
"author": "Axway, Inc. ",
"maintainers": [
"Chris Barber "
],
"license": "Apache-2.0",
+ "scripts": {
+ "build": "gulp build",
+ "coverage": "gulp coverage",
+ "docs": "gulp docs",
+ "postinstall": "node postinstall.js",
+ "prepare": "gulp build",
+ "test": "gulp test"
+ },
"dependencies": {
- "fs-extra": "^8.0.1",
- "lerna": "^3.15.0",
- "pacote": "^9.5.1",
- "semver": "^6.1.2",
- "which": "^1.3.1"
+ "fs-extra": "^8.1.0",
+ "globule": "^1.2.1",
+ "lerna": "^3.16.4",
+ "pacote": "^9.5.4",
+ "semver": "^6.3.0",
+ "snooplogg": "^2.1.0",
+ "yarn": "^1.17.3"
+ },
+ "devDependencies": {
+ "appcd-gulp": "^2.1.1",
+ "tmp": "^0.1.0"
},
"plugins": {
"@appcd/plugin-android": [
@@ -37,9 +52,6 @@
"^1.4.0"
]
},
- "scripts": {
- "postinstall": "node postinstall.js"
- },
"homepage": "https://github.com/appcelerator/appc-daemon/tree/master/packages/appcd-default-plugins",
"bugs": "https://github.com/appcelerator/appc-daemon/issues",
"repository": "https://github.com/appcelerator/appc-daemon"
diff --git a/packages/appcd-default-plugins/postinstall.js b/packages/appcd-default-plugins/postinstall.js
index 7c057cd96..709fcb56b 100644
--- a/packages/appcd-default-plugins/postinstall.js
+++ b/packages/appcd-default-plugins/postinstall.js
@@ -1,122 +1,26 @@
-const fs = require('fs-extra');
-const os = require('os');
-const path = require('path');
-const pacote = require('pacote');
-const semver = require('semver');
-const which = require('which');
-const { spawnSync } = require('child_process');
-const { plugins } = require('./package.json');
-
-(async () => {
- try {
- const npmClient = which.sync('yarn', { nothrow: true }) ? 'yarn' : 'npm';
- const pluginsDir = path.join(os.homedir(), '.appcelerator/appcd/plugins');
- const packagesDir = path.join(pluginsDir, 'packages');
- const workspaces = [];
-
- console.log(`Using ${npmClient} client`);
-
- fs.mkdirsSync(packagesDir);
-
- // find lerna
- let lerna;
- for (let cur = __dirname, last = null; cur !== last; last = cur, cur = path.dirname(cur)) {
- if (fs.existsSync(lerna = path.join(cur, 'node_modules', '.bin', 'lerna'))) {
- console.log(`Found lerna: ${path.relative(path.dirname(__dirname), lerna)}`);
- break;
+try {
+ const os = require('os');
+ const { createInstanceWithDefaults, StdioStream } = require('snooplogg');
+ const { installDefaultPlugins } = require('./dist/index');
+
+ const logger = createInstanceWithDefaults()
+ .snoop()
+ .config({
+ maxBufferSize: 1000,
+ minBrightness: 80,
+ maxBrightness: 200
+ })
+ .enable('*')
+ .pipe(new StdioStream(), { flush: true })
+ .ns('appcd:default-plugins:postinstall');
+
+ installDefaultPlugins(`${os.homedir()}/.appcelerator/appcd/plugins`)
+ .catch(err => {
+ if (err.code === 'EACCES') {
+ logger.warn(err);
+ } else {
+ logger.error(err);
+ process.exit(1);
}
- }
- if (!lerna) {
- throw new Error('Unable to find lerna, run "npm install"');
- }
-
- // loop over every plugin until we find
- for (const [ name, versions ] of Object.entries(plugins)) {
- for (const spec of versions) {
- try {
- // check for a local yarn link first
- const linkDir = path.join(os.homedir(), '.config', 'yarn', 'link', name);
- const { version } = fs.readJsonSync(path.join(linkDir, 'package.json'));
- const dir = path.join(packagesDir, name, version);
- if (semver.satisfies(version, spec)) {
- if (!fs.existsSync(dir) || fs.realpathSync(linkDir) !== fs.realpathSync(dir)) {
- console.log(`Linking ${linkDir} => ${path.relative(path.dirname(__dirname), dir)}`);
- fs.removeSync(dir);
- fs.mkdirsSync(path.dirname(dir));
- fs.symlinkSync(linkDir, dir, 'dir');
- } else {
- console.log(`Already linked ${linkDir} => ${path.relative(path.dirname(__dirname), dir)}`);
- }
- continue;
- }
- } catch (e) {
- // squelch
- }
-
- let manifest;
-
- try {
- // call out to npm
- manifest = await pacote.manifest(`${name}@${spec}`);
- } catch (e) {
- console.error(`Failed to find required appcd plugin: ${name}@${spec}:`);
- console.error(e);
- process.exit(1);
- }
-
- const dir = path.join(packagesDir, name, manifest.version);
-
- try {
- const realDir = fs.realpathSync(dir);
- const { version } = await fs.readJsonSync(path.join(realDir, 'package.json'));
- if (version === manifest.version) {
- console.log(`${name}@${ver} already installed`);
- continue;
- }
- } catch (e) {
- // directory does not exist or doesn't have a package.json
- }
-
- workspaces.push(`packages/${name}/${manifest.version}`);
-
- console.log(`Downloading ${name}@${manifest.version}`);
- await pacote.extract(`${name}@${manifest.version}`, dir);
- }
- }
-
- const pkgJson = {
- name: 'root',
- private: true,
- version: '0.0.0'
- };
- const lernaJson = {
- npmClient,
- npmClientArgs: [ '--production' ],
- version: 'independent'
- };
- const lernaArgs = [ lerna, 'bootstrap' ];
-
- if (npmClient === 'yarn') {
- pkgJson.workspaces = workspaces;
- lernaJson.npmClientArgs.push('--no-lockfile');
- lernaJson.useWorkspaces = true;
- } else {
- lernaJson.npmClientArgs.push('--no-package-lock');
- lernaJson.packages = workspaces;
- lernaArgs.push('--hoist');
- }
-
- console.log('Writing plugins/package.json');
- fs.writeFileSync(path.join(pluginsDir, 'package.json'), JSON.stringify(pkgJson, null, 2));
-
- console.log('Writing plugins/lerna.json');
- fs.writeFileSync(path.join(pluginsDir, 'lerna.json'), JSON.stringify(lernaJson, null, 2));
-
- console.log('Running lerna bootstrap...');
- spawnSync(process.execPath, lernaArgs, { cwd: pluginsDir, stdio: 'inherit' });
- console.log('appcd-default-plugins install complete');
- } catch (e) {
- console.error(e);
- process.exit(1);
- }
-})();
+ });
+} catch (e) {}
diff --git a/packages/appcd-default-plugins/src/index.js b/packages/appcd-default-plugins/src/index.js
new file mode 100644
index 000000000..0cdf5cb0e
--- /dev/null
+++ b/packages/appcd-default-plugins/src/index.js
@@ -0,0 +1,336 @@
+import snooplogg from 'snooplogg';
+import fs from 'fs-extra';
+import globule from 'globule';
+import os from 'os';
+import pacote from 'pacote';
+import path from 'path';
+import semver from 'semver';
+
+import { spawn } from 'child_process';
+
+const logger = snooplogg('appcd:default-plugins');
+const { highlight } = snooplogg.styles;
+
+/**
+ * Ensures the default appcd plugins are installed.
+ *
+ * @param {String} pluginsDir - Path to the plugins directory.
+ * @returns {Promise}
+ */
+export async function installDefaultPlugins(pluginsDir) {
+ const start = new Date();
+
+ if (!pluginsDir || typeof pluginsDir !== 'string') {
+ throw new TypeError('Expected plugins directory to be a non-empty string');
+ }
+
+ const packagesDir = path.join(pluginsDir, 'packages');
+
+ // check that we can write to the plugins dir
+ try {
+ // make sure the plugins/packages directory exists
+ await fs.mkdirs(packagesDir);
+
+ const testFile = path.join(packagesDir, `test_${Date.now()}.txt`);
+ fs.writeFileSync(testFile, 'delete me');
+ await fs.remove(testFile);
+ } catch (e) {
+ const err = new Error(e.code === 'EACCES'
+ ? 'Could not write to plugins directory'
+ : `Error initializing plugins directory: ${e.message}`);
+ err.code = e.code;
+ throw err;
+ }
+
+ // find yarn and lerna
+ const yarn = find('yarn');
+ if (yarn) {
+ logger.log(`Found yarn: ${highlight(yarn)}`);
+ } else {
+ logger.error('Unable to find yarn bin, skipping install default plugins');
+ return;
+ }
+
+ const lerna = find('lerna');
+ if (lerna) {
+ logger.log(`Found lerna: ${highlight(lerna)}`);
+ } else {
+ logger.error('Unable to find lerna bin, skipping install default plugins');
+ return;
+ }
+
+ const linksDir = process.platform === 'win32'
+ ? path.join(os.homedir(), 'AppData', 'Local', 'Yarn', 'Data', 'link')
+ : path.join(os.homedir(), '.config', 'yarn', 'link');
+ const { plugins } = await fs.readJson(path.resolve(__dirname, '..', 'package.json'));
+ const installed = {};
+ const install = [];
+ const newWorkspaces = new Set();
+ let existingWorkspaces = new Set();
+
+ try {
+ existingWorkspaces = new Set((await fs.readJson(path.join(pluginsDir, 'package.json'))).workspaces);
+ } catch (e) {
+ // does not exist or bad
+ }
+
+ const cleanup = (src, invalidDest, msg) => {
+ if (fs.lstatSync(src).isSymbolicLink()) {
+ logger.warn(`${msg}, unlinking...`);
+ fs.unlinkSync(src);
+ } else {
+ logger.warn(`${msg}, invalidating...`);
+ fs.moveSync(src, invalidDest, { overwrite: true });
+ }
+ };
+
+ // determine what packages are already installed
+ for (const rel of globule.find('*/*/package.json', '@*/*/*/package.json', { srcBase: packagesDir })) {
+ const pkgJsonFile = path.join(packagesDir, rel);
+ const src = path.dirname(pkgJsonFile);
+ const invalidDest = path.join(pluginsDir, 'invalid', path.dirname(rel));
+ let name, version;
+
+ try {
+ ({ name, version } = await fs.readJson(pkgJsonFile));
+ } catch (e) {
+ cleanup(src, invalidDest, 'Bad package.json');
+ continue;
+ }
+
+ const nameDir = path.dirname(path.dirname(rel));
+ const versionDir = path.basename(src);
+
+ if (name !== nameDir) {
+ cleanup(src, invalidDest, `Plugin directory name mismatch: ${highlight(`${name}@${version}`)} found in ${highlight(nameDir)}`);
+ } else if (version !== versionDir) {
+ cleanup(src, invalidDest, `Plugin directory version mismatch: ${highlight(`${name}@${version}`)} found in ${highlight(versionDir)}`);
+ } else {
+ logger.log(`Found installed plugin ${highlight(`${name}@${version}`)}`);
+ if (!installed[name]) {
+ installed[name] = {};
+ }
+ installed[name][version] = path.dirname(pkgJsonFile);
+ newWorkspaces.add(`packages/${name}/${version}`);
+ }
+ }
+
+ // detect any existing yarn links
+ for (const rel of globule.find('*/package.json', '@*/*/package.json', { srcBase: linksDir })) {
+ const pkgJsonFile = path.join(linksDir, rel);
+ let appcd, name, version;
+
+ try {
+ ({ appcd, name, version } = await fs.readJson(pkgJsonFile));
+ } catch (e) {
+ logger.warn(`Failed to parse link package.json: ${pkgJsonFile}`);
+ }
+
+ if (appcd && (!appcd.os || appcd.os.includes(process.platform))) {
+ const linkPath = path.dirname(pkgJsonFile);
+
+ if (!installed[name]) {
+ installed[name] = {};
+ }
+ if (!installed[name][version]) {
+ const dest = path.join(packagesDir, name, version);
+ installed[name][version] = dest;
+
+ await fs.mkdirs(path.dirname(dest));
+ logger.log(`Symlinking ${highlight(linkPath)} => ${highlight(path.relative(pluginsDir, dest))}`);
+ fs.symlinkSync(linkPath, dest, 'dir');
+ }
+ newWorkspaces.delete(`packages/${name}/${version}`);
+ }
+ }
+
+ // loop over default plugins and figure out what is missing
+ for (const [ name, specs ] of Object.entries(plugins)) {
+ if (installed[name]) {
+ for (let i = 0; i < specs.length; i++) {
+ for (const ver of Object.keys(installed[name])) {
+ if (semver.satisfies(ver, specs[i])) {
+ // installed version is good
+ specs.splice(i--, 1);
+ break;
+ }
+ }
+ }
+ }
+ for (const spec of specs) {
+ install.push(`${name}@${spec}`);
+ }
+ }
+
+ // install missing plugins
+ await Promise.all(install.map(async pkg => {
+ let manifest;
+
+ // query npm
+ try {
+ manifest = await pacote.manifest(pkg, { 'full-metadata': true });
+ } catch (e) {
+ logger.warn(`Unable to find default plugin on npm: ${highlight(pkg)}`);
+ return;
+ }
+
+ if (!manifest.appcd) {
+ logger.warn(`Package manifest missing "appcd" property: ${highlight(pkg)}`);
+ return;
+ }
+
+ if (manifest.appcd.os && !manifest.appcd.os.includes(process.platform)) {
+ logger.warn(`Skipping incompatible plugin: ${highlight(pkg)}`);
+ return;
+ }
+
+ logger.log(`Downloading ${highlight(`${manifest.name}@${manifest.version}`)}`);
+ await pacote.extract(`${manifest.name}@${manifest.version}`, path.join(packagesDir, manifest.name, manifest.version));
+
+ newWorkspaces.add(`packages/${manifest.name}/${manifest.version}`);
+ }));
+
+ // if anything was installed or workspaces changed, write the package.json and lerna.json
+ // files, then execute lerna
+ if (install.length || !eq(existingWorkspaces, newWorkspaces)) {
+ const workspaces = Array.from(newWorkspaces);
+
+ // the workspaces changed, so we need to run lerna and since lerna (and yarn) do not like
+ // packages with the same name, we need to temporarily change the plugin names
+ const revert = {};
+ await Promise.all(workspaces.map(async ws => {
+ const pkgJsonFile = path.join(pluginsDir, ws, 'package.json');
+ const pkgJson = await fs.readJson(pkgJsonFile);
+ revert[pkgJson.name] = pkgJsonFile;
+ pkgJson.name = `${pkgJson.name}-${pkgJson.version.replace(/[^\w]/g, '_')}`;
+ await fs.writeJson(pkgJsonFile, pkgJson);
+ }));
+
+ try {
+ // write the json files
+ logger.log(`Writing ${highlight('plugins/package.json')}`);
+ await fs.writeJson(path.join(pluginsDir, 'package.json'), {
+ name: 'root',
+ private: true,
+ version: '0.0.0',
+ workspaces
+ }, { spaces: 2 });
+
+ logger.log(`Writing ${highlight('plugins/lerna.json')}`);
+ await fs.writeJson(path.join(pluginsDir, 'lerna.json'), {
+ npmClient: 'yarn',
+ npmClientArgs: [
+ '--emoji=false',
+ '--ignore-engines',
+ '--no-lockfile',
+ '--no-progress',
+ '--production'
+ ],
+ useWorkspaces: true,
+ version: 'independent'
+ }, { spaces: 2 });
+
+ // run lerna and add yarn to the system path
+ const args = [ lerna, 'bootstrap', '--no-progress' ];
+ const cmd = process.platform === 'win32' ? args.shift() : process.execPath;
+ logger.log(`Executing: ${highlight(`${cmd} ${args.join(' ')}`)}`);
+ const child = spawn(cmd, args, {
+ cwd: pluginsDir,
+ env: {
+ ...process.env,
+ FORCE_COLOR: '0',
+ PATH: path.dirname(yarn) + path.delimiter + process.env.PATH
+ },
+ windowsHide: true
+ });
+
+ const newlineRE = /\r\n|\n/;
+ const scrubRE = /^lerna (info|notice) /;
+
+ // helper class that pretty formats lerna/yarn output
+ class Relay {
+ constructor(stream, name, indent) {
+ this.buffer = '';
+ this.indent = indent ? ' '.repeat(indent) : '';
+ this.logger = logger(name);
+
+ stream.on('data', data => {
+ const lines = (this.buffer + data.toString()).split(newlineRE);
+ this.buffer = lines.pop();
+ for (const line of lines) {
+ this.logger.log(this.indent + line.replace(scrubRE, ''));
+ }
+ });
+ }
+
+ flush() {
+ if (this.buffer) {
+ for (const line of this.buffer.split(newlineRE)) {
+ this.logger.log(this.indent + line.replace(scrubRE, ''));
+ }
+ }
+ }
+ }
+
+ // wire up the relays
+ const out = new Relay(child.stdout, 'yarn', 3);
+ const err = new Relay(child.stderr, 'lerna');
+
+ await new Promise(resolve => {
+ child.on('close', code => {
+ out.flush();
+ err.flush();
+
+ if (code) {
+ logger.warn(`lerna exited with code ${highlight(code)}`);
+ }
+ resolve();
+ });
+ });
+ } finally {
+ // restore the plugin names in the package.json files
+ await Promise.all(Object.entries(revert).map(async ([ name, pkgJsonFile ]) => {
+ const pkgJson = await fs.readJson(pkgJsonFile);
+ pkgJson.name = name;
+ await fs.writeJson(pkgJsonFile, pkgJson, { spaces: 2 });
+ }));
+ }
+ }
+
+ logger.log(`Finished in ${highlight(((new Date() - start) / 1000).toFixed(1))} seconds`);
+}
+
+/**
+ * Compares two sets for equality.
+ *
+ * @param {Set} s1 - First set.
+ * @param {Set} s2 - Second set.
+ * @returns {Boolean}
+ */
+function eq(s1, s2) {
+ if (s1.size !== s2.size) {
+ return false;
+ }
+ for (const val of s1) {
+ if (!s2.has(val)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+/**
+ * Scans `node_modules/.bin` directories until it locates the requested binary name or hits the
+ * root.
+ *
+ * @param {String} name - The name of the binary to find.
+ * @returns {?String} The path to the binary or `null` if not found.
+ */
+function find(name) {
+ for (let bin, cur = __dirname, last = null; cur !== last; last = cur, cur = path.dirname(cur)) {
+ if (fs.existsSync(bin = path.join(cur, 'node_modules', '.bin', name + (process.platform === 'win32' ? '.cmd' : '')))) {
+ return bin;
+ }
+ }
+ return null;
+}
diff --git a/packages/appcd-default-plugins/test/test-default-plugins.js b/packages/appcd-default-plugins/test/test-default-plugins.js
new file mode 100644
index 000000000..1c5d20b2e
--- /dev/null
+++ b/packages/appcd-default-plugins/test/test-default-plugins.js
@@ -0,0 +1,51 @@
+import fs from 'fs-extra';
+import path from 'path';
+import tmp from 'tmp';
+import { installDefaultPlugins } from '../dist/index';
+
+const tmpDir = tmp.dirSync({
+ mode: '755',
+ prefix: 'appcd-plugin-test-',
+ unsafeCleanup: true
+}).name;
+
+function makeTempName() {
+ return path.join(tmpDir, Math.random().toString(36).substring(7));
+}
+
+describe('Default Plugins', () => {
+ after(() => {
+ fs.removeSync(tmpDir);
+ });
+
+ it('should error if plugins directory is invalid', async () => {
+ try {
+ await installDefaultPlugins();
+ } catch (e) {
+ expect(e).to.be.instanceof(TypeError);
+ expect(e.message).to.equal('Expected plugins directory to be a non-empty string');
+ return;
+ }
+
+ throw new Error('Expected error');
+ });
+
+ it('should download and install the plugins', async function () {
+ this.timeout(200000);
+ this.slow(190000);
+
+ const dir = makeTempName();
+ await installDefaultPlugins(dir);
+
+ expect(fs.existsSync(path.join(dir, 'node_modules'))).to.be.true;
+ expect(fs.existsSync(path.join(dir, 'lerna.json'))).to.be.true;
+ expect(fs.existsSync(path.join(dir, 'package.json'))).to.be.true;
+ expect(fs.existsSync(path.join(dir, 'packages', '@appcd', 'plugin-android'))).to.be.true;
+ expect(fs.existsSync(path.join(dir, 'packages', '@appcd', 'plugin-genymotion'))).to.be.true;
+ expect(fs.existsSync(path.join(dir, 'packages', '@appcd', 'plugin-ios'))).to.be.true;
+ expect(fs.existsSync(path.join(dir, 'packages', '@appcd', 'plugin-android'))).to.be.true;
+ expect(fs.existsSync(path.join(dir, 'packages', '@appcd', 'plugin-android'))).to.be.true;
+ expect(fs.existsSync(path.join(dir, 'packages', '@appcd', 'plugin-android'))).to.be.true;
+ expect(fs.existsSync(path.join(dir, 'packages', '@appcd', 'plugin-android'))).to.be.true;
+ });
+});
diff --git a/packages/appcd-detect/CHANGELOG.md b/packages/appcd-detect/CHANGELOG.md
index a4cbf6516..804db2552 100644
--- a/packages/appcd-detect/CHANGELOG.md
+++ b/packages/appcd-detect/CHANGELOG.md
@@ -1,3 +1,8 @@
+# v2.2.0
+
+ * feat: Updated `registryKeys` option for more advanced Windows Registry handling.
+ * chore: Updated dependencies.
+
# v2.1.0 (Jun 13, 2019)
* chore: Updated to `appcd-dispatcher@2.0.0`, `appcd-fswatch-manager@2.0.0`, and
diff --git a/packages/appcd-detect/README.md b/packages/appcd-detect/README.md
index 3db52bbfe..01fb369f2 100644
--- a/packages/appcd-detect/README.md
+++ b/packages/appcd-detect/README.md
@@ -39,6 +39,116 @@ const results = await engine.start();
console.log(results);
```
+## Windows Registry
+
+On Windows machines, there may be times where the list of paths to scan is derived based on values
+in the Windows Registry or the search paths should be rescanned when activity occurs in the
+registry. The `DetectEngine` supports this via the `registryCallback` and `registryKeys` options.
+
+### `registryCallback`
+
+A callback that is fired every `refreshPathsInterval` milliseconds when the `watch` option is set
+to `true`. By default, `refreshPathsInterval` is set to `30000` (30 seconds).
+
+`registryCallback` is supplied a reference to the `DetectEngine`.
+
+`registryCallback` must return either a falsey value, an object containing `paths` and
+`defaultPath`, or a `Promise` that resolves the aforementioned object.
+
+`paths` may be a string, an array of strings, or falsey.
+
+`defaultPath` must be a string or falsey. It is assumed the `defaultPath` is already in the list of
+`paths`.
+
+```js
+new DetectEngine({
+ checkDir(dir) {},
+ async registryCallback(engine) {
+ // do something
+ return {
+ paths: [ '/path/to/somewhere' ],
+ defaultPath: '/path/to/somewhere' // or `undefined` to autoselect the first path
+ };
+ },
+ watch: true
+});
+```
+
+If the list of `paths` changes, then it triggers a rescan. If `paths` has not changed since last
+called, but `defaultPath` has changed, then only the cached results are processed again. If neither
+the `paths` or `defaultPath` has changed, then no action is taken.
+
+### `registryKeys`
+
+This option contains an array of registry watch parameters.
+
+```js
+new DetectEngine({
+ checkDir(dir) {},
+ registryKeys: [
+ {
+ key: 'HKLM\\SOFTWARE\\Android Studio',
+ value: 'SdkPath'
+ },
+ {
+ key: 'HKLM\\Software\\Microsoft\\Microsoft SDKs\\Windows'
+ // depth (Number, defaults to 0)
+ // filter (Object w/ `subkeys` and/or `values` filters)
+ // transform() (Function)
+ // value (String)
+ }
+ ],
+ watch: true
+});
+```
+
+The registry watcher will watch the specified keys for changes such as the key itself being
+created, a new subkey, or a new value name. It also supports recursively watching key activity.
+
+A `key` may specify the `hive` separate from the `key`, however the detect engine will just combine
+them.
+
+If a `value` name is present, it will collect each value and add them to the list of search paths.
+
+During the detect engine startup, the registry key watchers are initialized and each key is
+queried and its value added to the list of search paths.
+
+Optionally, each key may contain a `transform()` callback which is invoked on the `value`. If the
+result is `undefined`, then the original value argument is used. `transform()` must return an
+object with a `value` property, but may also have additional properties such as an `isDefault`
+flag.
+
+The `depth` specifies how many subkeys deep it should watch for changes. Defaults to zero.
+
+The `filter` property is an object with `values` and/or `subkeys` containing a string or regex.
+Filtering only applies to the existence of subkeys and value "names", but not actual value
+"values" or the specified value's "value".
+
+#### `registryKeys` Examples
+
+```js
+{
+ key: 'HKLM\\SOFTWARE\\Android Studio',
+ value: 'SdkPath'
+}
+```
+
+```js
+{
+ callback(state, keyWatcher) {
+ // `state.value` contains the registry key value
+
+ // if needed, you can use `keyWatcher.winreglib.get()` to fetch additional info
+
+ // optionally, you can set `state.isDefault` to help the detect engine prioritize results
+
+ return state; // optional
+ },
+ key: 'HKLM\\SOFTWARE\\Android Studio',
+ value: 'SdkPath'
+}
+```
+
## Legal
This project is open source under the [Apache Public License v2][1] and is developed by
diff --git a/packages/appcd-detect/package.json b/packages/appcd-detect/package.json
index c28584144..e667b5245 100644
--- a/packages/appcd-detect/package.json
+++ b/packages/appcd-detect/package.json
@@ -22,16 +22,16 @@
"appcd-path": "^1.1.6",
"appcd-subprocess": "^2.0.1",
"appcd-util": "^1.1.7",
- "gawk": "^4.6.3",
+ "gawk": "^4.6.4",
"pluralize": "^8.0.0",
- "source-map-support": "^0.5.12",
- "winreglib": "^1.0.2"
+ "source-map-support": "^0.5.13",
+ "winreglib": "^1.0.5"
},
"devDependencies": {
"appcd-fswatch-manager": "^2.0.0",
"appcd-fswatcher": "^1.2.2",
"appcd-gulp": "^2.1.1",
- "fs-extra": "^8.0.1"
+ "fs-extra": "^8.1.0"
},
"homepage": "https://github.com/appcelerator/appc-daemon/tree/master/packages/appcd-detect",
"bugs": "https://github.com/appcelerator/appc-daemon/issues",
diff --git a/packages/appcd-detect/src/detect-engine.js b/packages/appcd-detect/src/detect-engine.js
index 7dfa0d01d..a0b22d338 100644
--- a/packages/appcd-detect/src/detect-engine.js
+++ b/packages/appcd-detect/src/detect-engine.js
@@ -7,12 +7,11 @@ import pluralize from 'pluralize';
import { arrayify, debounce, randomBytes, tailgate } from 'appcd-util';
import { EventEmitter } from 'events';
import { real } from 'appcd-path';
+import RegistryWatcher from './registry-watcher';
import { which } from 'appcd-subprocess';
const { highlight } = appcdLogger.styles;
-const winreglib = process.platform === 'win32' ? require('winreglib') : null;
-
/**
* A engine for detecting various things. It walks the search paths and calls a `checkDir()`
* function. The results are accumulated and cached. The engine also supports watching the search
@@ -43,6 +42,12 @@ export default class DetectEngine extends EventEmitter {
*/
refreshPathsTimer = null;
+ /**
+ * A list of active Windows Registry watchers.
+ * @type {Array.}
+ */
+ registryWatchers = [];
+
/**
* A gawked array containing the results from the scan.
* @type {Array.}
@@ -55,6 +60,12 @@ export default class DetectEngine extends EventEmitter {
*/
searchPaths = null;
+ /**
+ * A reference to the `winreglib` module. Only available on Windows machines.
+ * @type {Object}
+ */
+ winreglib = process.platform === 'win32' ? require('winreglib') : null;
+
/**
* Initializes the detect engine instance and validates the options.
*
@@ -83,14 +94,17 @@ export default class DetectEngine extends EventEmitter {
* found path. Requires `opts.recursive` to be `true`.
* @param {Boolean} [opts.redetect=false] - When `true`, re-runs detection when a path changes.
* Requires `watch` to be `true`.
- * @param {Number} [opts.refreshPathsInterval=30000] - The number of milliseconds to check for
- * updated search and default paths, namely from the Windows Registry. Only used when `detect()`
- * is called with `watch=true`.
- * @param {Function} [opts.registryCallback] - A user-defined function that performs its own
- * Windows Registry checks. The callback may return a promise. The result must be a string
- * containing a path, an array of paths, or a falsey value if there are no paths to return.
- * @param {Object|Array|Set} [opts.registryKeys] - One or more objects containing the
- * registry `hive`, `key`, and value `name` to query the Windows Registry.
+ * @param {Number} [opts.refreshPathsInterval=30000] - The number of milliseconds to wait
+ * between calls to `opts.registryCallback`. This option is ignored on non-Windows platforms.
+ * @param {Function} [opts.registryCallback] - A function that will only be invoked when the
+ * current platform is `win32` and `opts.watch` is set to `true`. The intent is this function
+ * performs whatever Windows Registry queries, then returns a promise that resolves an object
+ * containing two properties: `paths` containing an array of paths to add to the list of search
+ * paths and `defaultPath` containing either undefined or a string with a path. This option is
+ * ignored on non-Windows platforms.
+ * @param {Array|Set|Object} [opts.registryKeys] - An array containg one or more
+ * registry watch parameter objects. There are two types of params: `paths` and `rescan`. This
+ * option is ignored on non-Windows platforms.
* @param {Boolean} [opts.watch=false] - When `true`, watches for changes and emits the new
* results when a change occurs.
* @access public
@@ -128,18 +142,20 @@ export default class DetectEngine extends EventEmitter {
// we only set redetect if we're watching
opts.redetect = opts.watch ? opts.redetect : false;
- opts.refreshPathsInterval = Math.max(~~opts.refreshPathsInterval || 30000, 0);
+ super();
- if (opts.registryCallback !== undefined && typeof opts.registryCallback !== 'function') {
- throw new TypeError('Expected "registryCallback" option to be a function');
- }
+ if (this.winreglib) {
+ opts.refreshPathsInterval = Math.max(~~opts.refreshPathsInterval || 30000, 0);
- opts.registryKeys = arrayify(opts.registryKeys, true);
- if (opts.registryKeys.some(r => !r || typeof r !== 'object' || Array.isArray(r) || !r.hive || !r.key || !r.name)) {
- throw new TypeError('Expected "registryKeys" option to be an object or array of objects with a "hive", "key", and "name"');
- }
+ if (opts.registryCallback !== undefined && typeof opts.registryCallback !== 'function') {
+ throw new TypeError('Expected "registryCallback" option to be a function');
+ }
- super();
+ // validate and normalize registry keys
+ for (const params of arrayify(opts.registryKeys, true)) {
+ this.registryWatchers.push(new RegistryWatcher(params));
+ }
+ }
this.opts = opts;
@@ -215,15 +231,7 @@ export default class DetectEngine extends EventEmitter {
}
}
- if (process.platform === 'win32') {
- await Promise.all(this.opts.registryKeys.map(async (obj) => {
- try {
- searchPaths.add(real(winreglib.get(obj.hive ? `${obj.hive}\\${obj.key}` : obj.key, obj.name)));
- } catch (e) {
- this.logger.warn('Failed to get registry key: %s', e.message);
- }
- }));
-
+ if (this.winreglib) {
if (typeof this.opts.registryCallback === 'function') {
try {
const result = await this.opts.registryCallback();
@@ -242,6 +250,16 @@ export default class DetectEngine extends EventEmitter {
this.logger.warn('Registry callback threw error: %s', e.message);
}
}
+
+ for (const watcher of this.registryWatchers) {
+ for (const { isDefault, value } of watcher.values) {
+ searchPaths.add(real(value));
+ if (isDefault && value !== defaultPath) {
+ defaultPath = value;
+ this.logger.log(`Overwriting default path based on registry: ${highlight(defaultPath)}`);
+ }
+ }
+ }
}
return {
@@ -291,22 +309,24 @@ export default class DetectEngine extends EventEmitter {
* @access private
*/
refreshPaths() {
- this.refreshPathsTimer = setTimeout(async () => {
- try {
- const { defaultPath, searchPaths } = await this.getPaths();
+ if (this.opts.registryCallback && this.opts.refreshPathsInterval && this.opts.watch) {
+ this.refreshPathsTimer = setTimeout(async () => {
+ try {
+ const { defaultPath, searchPaths } = await this.getPaths();
- if (searchPaths.size !== this.detectors.size || [ ...searchPaths ].some(dir => !this.detector.has(dir))) {
- await this.scan({ defaultPath, searchPaths });
- } else if (defaultPath !== this.defaultPath) {
- this.defaultPath = defaultPath;
- await this.processResults(this.results);
+ if (searchPaths.size !== this.detectors.size || [ ...searchPaths ].some(dir => !this.detector.has(dir))) {
+ await this.scan({ defaultPath, searchPaths });
+ } else if (defaultPath !== this.defaultPath) {
+ this.defaultPath = defaultPath;
+ await this.processResults(this.results);
+ }
+ } catch (err) {
+ this.emit('error', err);
}
- } catch (err) {
- this.emit('error', err);
- }
- this.refreshPaths();
- }, this.opts.refreshPathsInterval);
+ this.refreshPaths();
+ }, this.opts.refreshPathsInterval);
+ }
}
/**
@@ -397,10 +417,20 @@ export default class DetectEngine extends EventEmitter {
*/
async start() {
try {
- await this.rescan();
if (this.opts.watch) {
+ for (const watcher of this.registryWatchers) {
+ watcher
+ .on('change', () => this.rescan())
+ .start();
+ }
+ }
+
+ await this.rescan();
+
+ if (this.winreglib) {
this.refreshPaths();
}
+
return this.opts.multiple ? this.results : this.results[0];
} catch (err) {
this.emit('error', err);
@@ -422,6 +452,10 @@ export default class DetectEngine extends EventEmitter {
this.refreshPathsTimer = null;
}
+ for (const watcher of this.registryWatchers) {
+ watcher.stop();
+ }
+
this.logger.log(pluralize(` Stopping ${highlight(this.detectors.size)} detector`, this.detectors.size));
for (const detector of this.detectors.values()) {
await detector.stop();
diff --git a/packages/appcd-detect/src/index.js b/packages/appcd-detect/src/index.js
index 4034a243b..ea1510263 100644
--- a/packages/appcd-detect/src/index.js
+++ b/packages/appcd-detect/src/index.js
@@ -5,3 +5,4 @@ if (!Error.prepareStackTrace) {
export { default as default } from './detect-engine';
export { default as Detector } from './detector';
+export { default as RegistryWatcher } from './registry-watcher';
diff --git a/packages/appcd-detect/src/registry-watcher.js b/packages/appcd-detect/src/registry-watcher.js
new file mode 100644
index 000000000..a4d66a990
--- /dev/null
+++ b/packages/appcd-detect/src/registry-watcher.js
@@ -0,0 +1,340 @@
+/* eslint-disable no-confusing-arrow */
+
+import appcdLogger from 'appcd-logger';
+
+import { debounce } from 'appcd-util';
+import { EventEmitter } from 'events';
+
+const { log } = appcdLogger('appcd-detect:registry-watcher');
+const { highlight, note } = appcdLogger.styles;
+
+const winreglib = process.platform === 'win32' ? require('winreglib') : null;
+
+/**
+ * Generates a filter function for the given criteria.
+ *
+ * @param {String|RegExp} cond - The criteria used for filtering.
+ * @returns {Function}
+ */
+function createFilterFn(cond) {
+ return cond instanceof RegExp ? it => cond.test(it) : cond ? it => cond === it : null;
+}
+
+/**
+ * Helper function that quickly checks if two unsorted arrays are shallowly equal.
+ *
+ * @param {?Array} a1 - The first array.
+ * @param {?Array} a2 - The second array.
+ * @returns {Boolean}
+ */
+function equal(a1, a2) {
+ return a1 === a2 || (a1 && a2 && !(a1 < a2) && !(a1 > a2));
+}
+
+/**
+ * A node in the registry tree representing a specific key, its watch instance, and its state.
+ */
+class KeyWatcher extends EventEmitter {
+ /**
+ * A map of all subkeys being watched.
+ * @type {Object}
+ */
+ subkeys = {};
+
+ /**
+ * The state of the key being watched.
+ * @type {Object}
+ */
+ state = {
+ subkeys: null,
+ value: undefined,
+ values: null
+ };
+
+ /**
+ * A reference to the `winreglib` library.
+ * @type {Object}
+ */
+ winreglib = winreglib;
+
+ /**
+ * Initializes the registry key state and wires up the registry key watcher.
+ *
+ * @param {Object} params - An object containing a `key`, `filter`, `hive`, `transform`, and
+ * `value` properties or an array of objects containing the forementioned properties.
+ * @param {Number} [params.depth=0] - The max depth to recursively watch for changes.
+ * @param {Object} [params.filter] - An object containing `subkeys` and/or `values` properties
+ * and used
+ * @param {Object} params.key - The name of the registry key to watch.
+ * @param {Function} [params.transform] - A function that transforms the incoming returns an object containing
+ * `isDefault` and `value` properties.
+ * @param {String} [params.value] - The name of the value to collect.
+ * @access public
+ */
+ constructor(params) {
+ super();
+ Object.assign(this, params);
+
+ this.update();
+
+ log(`Start watching key: ${highlight(params.key)} ${note(`(depth=${params.depth})`)}`);
+
+ // start watching the key
+ this.handle = winreglib.watch(params.key).on('change', async ({ type }) => {
+ log(`${highlight(params.key)} changed (type=${type})`);
+
+ if (this.update()) {
+ this.emit('change');
+ }
+
+ if (type === 'delete') {
+ // deleted, nuke subkeys
+ this.destroy(true);
+
+ } else if (type !== 'delete') {
+ // add or change
+ this.initSubkeys();
+ }
+ });
+
+ this.initSubkeys();
+ }
+
+ /**
+ * Destroys this watch instance.
+ *
+ * @param {Boolean} [subkeysOnly=false] - When `true`, only subkeys are destroyed. When
+ * `false`, this watch instance is completely stopped and cleaned up.
+ * @access public
+ */
+ destroy(subkeysOnly) {
+ if (!subkeysOnly) {
+ this.handle.stop();
+ this.removeAllListeners();
+ }
+ for (const [ key, subkey ] of Object.entries(this.subkeys)) {
+ subkey.destroy();
+ delete this.subkeys[key];
+ }
+ }
+
+ /**
+ * Returns the value when `value` name is defined.
+ *
+ * @returns {*}
+ * @access public
+ */
+ getValue() {
+ return this.state.value;
+ }
+
+ /**
+ * Returns the value when `value` name is defined.
+ *
+ * @access private
+ */
+ initSubkeys() {
+ if (this.depth && this.state.subkeys) {
+ // add or change
+ for (const subkey of this.state.subkeys) {
+ if (!this.subkeys[subkey]) {
+ this.subkeys[subkey] = new KeyWatcher({
+ depth: this.depth - 1,
+ key: `${this.key}\\${subkey}`
+ }).on('change', (...args) => this.emit('change', ...args));
+ }
+ }
+ }
+ }
+
+ /**
+ * Refreshes the key's subkeys and values. It returns `true` if the state changed.
+ *
+ * @returns {Boolean}
+ * @access private
+ */
+ update() {
+ let changed = false;
+ let subkeys = null;
+ let value;
+ let values = null;
+
+ try {
+ const state = winreglib.list(this.key);
+ subkeys = (this.filter && this.filter.subkeys ? state.subkeys.filter(this.filter.subkeys) : state.subkeys).sort();
+ values = (this.filter && this.filter.values ? state.values.filter(this.filter.values) : state.values).sort();
+ } catch (e) {
+ // squelch
+ }
+
+ changed = !equal(this.state.subkeys, subkeys) || !equal(this.state.values, values);
+
+ if (this.value) {
+ try {
+ const obj = { value: winreglib.get(this.key, this.value) };
+ value = this.transform && this.transform(obj, this) || obj;
+ changed = changed || JSON.stringify(value) !== JSON.stringify(this.state.value);
+ } catch (e) {
+ // squelch
+ }
+ }
+
+ this.state = { subkeys, value, values };
+
+ return changed;
+ }
+}
+
+/**
+ * Orchestrates the watching of a registry key.
+ */
+export default class RegistryWatcher extends EventEmitter {
+ /**
+ * A list of keys that are being watched.
+ * @type {Array.}
+ */
+ keys = [];
+
+ /**
+ * A list of objects containing a `value` property as well as any other arbitrary data.
+ * @type {Array.}
+ */
+ values = [];
+
+ /**
+ * A tree of registry key watchers.
+ * @type {Object}
+ */
+ watchers = [];
+
+ /**
+ * Validates and initializes the watcher parameters.
+ *
+ * @param {Object} params - An object containing a `key`, `filter`, `hive`, `transform`, and
+ * `value` properties or an array of objects containing the forementioned properties.
+ * @param {Number} [params.depth=0] - The max depth to recursively watch for changes.
+ * @param {Object} [params.filter] - An object containing `subkeys` and/or `values` properties
+ * and used
+ * @param {String} [params.hive] - The name of the Windows Registry hive. If `key` is set, then
+ * the name of the registry hive is prepended to the `key`. This should only be set when `key`
+ * is set, not `keys`.
+ * @param {Object} params.key - The name of the registry key to watch.
+ * @param {Function} [params.transform] - A function that transforms the incoming returns an object containing
+ * `isDefault` and `value` properties.
+ * @param {String} [params.value] - The name of the value to collect.
+ * @access public
+ */
+ constructor(params) {
+ if (!params || typeof params !== 'object') {
+ throw new TypeError('Expected registry watcher params to be an object');
+ }
+
+ super();
+
+ const { depth, filter, hive, key, transform, value } = params;
+ const data = {
+ depth: 0,
+ filter: {},
+ key,
+ transform,
+ value
+ };
+
+ if (!key || typeof key !== 'string') {
+ throw new TypeError('Expected registry watcher "key" param to be a non-empty string');
+ }
+
+ if (depth !== undefined) {
+ if (typeof depth !== 'number' || depth < 0) {
+ throw new TypeError('Expected registry watcher "depth" param to be a positive integer');
+ }
+ data.depth = depth;
+ }
+
+ if (filter !== undefined) {
+ if (typeof filter !== 'object' || Array.isArray(filter)) {
+ throw new TypeError('Expected registry watcher "filter" param to be an object');
+ }
+
+ if (filter.values !== undefined) {
+ if (!filter.values || (typeof filter.values !== 'string' && !(filter.values instanceof RegExp))) {
+ throw new TypeError('Expected registry watcher "values" filter param to be a non-empty string or regex');
+ }
+ data.filter.values = createFilterFn(filter.values);
+ }
+ if (filter.subkeys !== undefined) {
+ if (!filter.subkeys || (typeof filter.subkeys !== 'string' && !(filter.subkeys instanceof RegExp))) {
+ throw new TypeError('Expected registry watcher "subkeys" filter param to be a non-empty string or regex');
+ }
+ data.filter.subkeys = createFilterFn(filter.subkeys);
+ }
+ }
+
+ if (hive !== undefined) {
+ if (!hive || typeof hive !== 'string') {
+ throw new TypeError('Expected registry watcher "hive" param to be a non-empty string');
+ }
+ data.key = `${hive}\\${data.key}`;
+ }
+
+ if (transform !== undefined && typeof transform !== 'function') {
+ throw new TypeError('Expected registry watcher "transform" param to be a function');
+ }
+
+ if (value !== undefined && (!value || typeof value !== 'string')) {
+ throw new TypeError('Expected registry watcher "value" param to be a non-empty string');
+ }
+
+ this.keys.push(data);
+
+ this.notify = debounce(() => {
+ this.refreshValues();
+ this.emit('change');
+ });
+ }
+
+ /**
+ * Aggregates values from all watchers that are watching values.
+ *
+ * @access private
+ */
+ refreshValues() {
+ const values = [];
+ for (const w of this.watchers) {
+ let value = w.getValue();
+ if (value) {
+ values.push(value);
+ }
+ }
+ this.values = values;
+ }
+
+ /**
+ * Wires up the registry key watchers.
+ *
+ * @returns {RegistryWatcher}
+ * @access public
+ */
+ start() {
+ for (const params of this.keys) {
+ const w = new KeyWatcher(params);
+ w.on('change', () => this.notify());
+ this.watchers.push(w);
+ }
+
+ this.refreshValues();
+ return this;
+ }
+
+ /**
+ * Stops the registry key watchers.
+ *
+ * @access public
+ */
+ stop() {
+ let w;
+ while (w = this.watchers.shift()) {
+ w.destroy();
+ }
+ }
+}
diff --git a/packages/appcd-detect/test/test-detect-engine.js b/packages/appcd-detect/test/test-detect-engine.js
index 6044c45b5..eff72cbcf 100644
--- a/packages/appcd-detect/test/test-detect-engine.js
+++ b/packages/appcd-detect/test/test-detect-engine.js
@@ -1,3 +1,5 @@
+/* eslint-disable no-unused-vars, promise/no-callback-in-promise */
+
import appcdLogger from 'appcd-logger';
import DetectEngine from '../dist/index';
import Dispatcher from 'appcd-dispatcher';
@@ -11,11 +13,19 @@ import { exe } from 'appcd-subprocess';
import { isFile } from 'appcd-fs';
import { real } from 'appcd-path';
import { sleep } from 'appcd-util';
+import { spawnSync } from 'child_process';
import { status } from 'appcd-fswatcher';
const { log } = appcdLogger('test:appcd:detect');
const { highlight } = appcdLogger.styles;
+const reg = (...args) => {
+ log(`Executing: ${highlight(`reg ${args.join(' ')}`)}`);
+ spawnSync('reg', args, { stdio: 'ignore' });
+};
+
+const isWindows = process.platform === 'win32';
+
const _tmpDir = tmp.dirSync({
mode: '755',
prefix: 'appcd-detect-test-',
@@ -134,87 +144,6 @@ describe('Detect', () => {
expect(engine.opts.recursiveWatchDepth).to.equal(0);
});
- it('should reject if registryCallback() is not a function', () => {
- expect(() => {
- new DetectEngine({
- checkDir() {},
- registryCallback: 123
- });
- }).to.throw(TypeError, 'Expected "registryCallback" option to be a function');
- });
-
- it('should reject if registryKeys is not a function or object', () => {
- expect(() => {
- new DetectEngine({
- checkDir() {},
- registryKeys: 'foo'
- });
- }).to.throw(TypeError, 'Expected "registryKeys" option to be an object or array of objects with a "hive", "key", and "name"');
- });
-
- it('should reject if registryKeys is an array with a non-object', () => {
- expect(() => {
- new DetectEngine({
- checkDir() {},
- registryKeys: [ 'foo' ]
- });
- }).to.throw(TypeError, 'Expected "registryKeys" option to be an object or array of objects with a "hive", "key", and "name"');
- });
-
- it('should reject if registryKeys is an array with object missing a hive', () => {
- expect(() => {
- new DetectEngine({
- checkDir() {},
- registryKeys: [ { foo: 'bar' } ]
- });
- }).to.throw(TypeError, 'Expected "registryKeys" option to be an object or array of objects with a "hive", "key", and "name"');
- });
-
- it('should reject if registryKeys is an array with object missing a key', () => {
- expect(() => {
- new DetectEngine({
- checkDir() {},
- registryKeys: [ { hive: 'HKLM' } ]
- });
- }).to.throw(TypeError, 'Expected "registryKeys" option to be an object or array of objects with a "hive", "key", and "name"');
- });
-
- it('should reject if registryKeys is an array with object missing a name', () => {
- expect(() => {
- new DetectEngine({
- checkDir() {},
- registryKeys: [ { hive: 'HKLM', key: 'foo' } ]
- });
- }).to.throw(TypeError, 'Expected "registryKeys" option to be an object or array of objects with a "hive", "key", and "name"');
- });
-
- it('should reject if registryKeys is an object missing a hive', () => {
- expect(() => {
- new DetectEngine({
- checkDir() {},
- registryKeys: { foo: 'bar' }
- });
- }).to.throw(TypeError, 'Expected "registryKeys" option to be an object or array of objects with a "hive", "key", and "name"');
- });
-
- it('should reject if registryKeys is an object missing a key', () => {
- expect(() => {
- new DetectEngine({
- checkDir() {},
- registryKeys: { hive: 'HKLM' }
- });
- }).to.throw(TypeError, 'Expected "registryKeys" option to be an object or array of objects with a "hive", "key", and "name"');
- });
-
- it('should reject if registryKeys is an object missing a name', () => {
- expect(() => {
- new DetectEngine({
- checkDir() {},
- registryKeys: { hive: 'HKLM', key: 'foo' }
- });
- }).to.throw(TypeError, 'Expected "registryKeys" option to be an object or array of objects with a "hive", "key", and "name"');
- });
-
it('should disable redetect if not watching', () => {
const engine = new DetectEngine({
checkDir() {},
@@ -751,4 +680,766 @@ describe('Detect', () => {
expect(results).to.deep.equal([ { foo: 'bar' } ]);
});
});
+
+ (isWindows ? describe : describe.skip)('Windows Registry', () => {
+ describe('Validation', () => {
+ it('should error if registryCallback() is not a function', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryCallback: 123
+ });
+ }).to.throw(TypeError, 'Expected "registryCallback" option to be a function');
+ });
+
+ it('should error if registryKeys is not a function or object', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: 'foo'
+ });
+ }).to.throw(TypeError, 'Expected registry watcher params to be an object');
+ });
+
+ it('should error if registryKeys is an array with a non-object', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ 'foo' ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher params to be an object');
+ });
+
+ it('should error if registryKeys has invalid key', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: null } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "key" param to be a non-empty string');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: '' } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "key" param to be a non-empty string');
+ });
+
+ it('should error if registryKeys has invalid depth', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', depth: null } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "depth" param to be a positive integer');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', depth: 'bar' } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "depth" param to be a positive integer');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', depth: -123 } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "depth" param to be a positive integer');
+ });
+
+ it('should error if registryKeys has invalid value', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', value: null } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "value" param to be a non-empty string');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', value: '' } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "value" param to be a non-empty string');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', value: 123 } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "value" param to be a non-empty string');
+ });
+
+ it('should error if registryKeys has invalid hive', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', value: 'bar', hive: null } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "hive" param to be a non-empty string');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', value: 'bar', hive: '' } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "hive" param to be a non-empty string');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', value: 'bar', hive: true } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "hive" param to be a non-empty string');
+ });
+
+ it('should error if registryKeys has invalid filter', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', filter: 'baz' } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "filter" param to be an object');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', filter: [] } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "filter" param to be an object');
+ });
+
+ it('should error if registryKeys has invalid filter values', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', filter: { values: null } } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "values" filter param to be a non-empty string or regex');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', filter: { values: 123 } } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "values" filter param to be a non-empty string or regex');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', filter: { values: '' } } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "values" filter param to be a non-empty string or regex');
+ });
+
+ it('should error if registryKeys has invalid filter subkeys', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', filter: { subkeys: null } } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "subkeys" filter param to be a non-empty string or regex');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', filter: { subkeys: 123 } } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "subkeys" filter param to be a non-empty string or regex');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', filter: { subkeys: '' } } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "subkeys" filter param to be a non-empty string or regex');
+ });
+
+ it('should error if registryKeys has key and invalid transform callback', () => {
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', value: 'bar', transform: null } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "transform" param to be a function');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', value: 'bar', transform: 'baz' } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "transform" param to be a function');
+
+ expect(() => {
+ new DetectEngine({
+ checkDir() {},
+ registryKeys: [ { key: 'foo', value: 'bar', transform: 123 } ]
+ });
+ }).to.throw(TypeError, 'Expected registry watcher "transform" param to be a function');
+ });
+ });
+
+ describe('Changes', () => {
+ afterEach(async function () {
+ if (this.engine) {
+ await this.engine.stop();
+ this.engine = null;
+ }
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ });
+
+ it('should watch existing key for changes (new subkey)', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir = makeTempDir();
+ let counter = 0;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test\\foo');
+
+ this.engine = new DetectEngine({
+ checkDir: async dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ switch (++counter) {
+ case 2:
+ done();
+ break;
+ }
+ },
+ paths: [ dir ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test\\foo'
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start()
+ .then(() => sleep(100))
+ .then(() => reg('add', 'HKCU\\Software\\appcd-detect-test\\foo\\bar'))
+ .catch(done);
+ });
+
+ it('should watch existing key that is deleted', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir = makeTempDir();
+ let counter = 0;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test\\foo');
+
+ this.engine = new DetectEngine({
+ checkDir: async dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ switch (++counter) {
+ case 2:
+ done();
+ break;
+ }
+ },
+ paths: [ dir ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test\\foo'
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start()
+ .then(() => sleep(100))
+ .then(() => reg('delete', 'HKCU\\Software\\appcd-detect-test\\foo', '/f'))
+ .catch(done);
+ });
+
+ it('should watch a non-existent key to be created', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir = makeTempDir();
+ let counter = 0;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test');
+
+ this.engine = new DetectEngine({
+ checkDir: async dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ switch (++counter) {
+ case 2:
+ done();
+ break;
+ }
+ },
+ paths: [ dir ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test\\foo'
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start()
+ .then(() => sleep(100))
+ .then(() => reg('add', 'HKCU\\Software\\appcd-detect-test\\foo'))
+ .catch(done);
+ });
+
+ it('should watch a subkey for changes', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir = makeTempDir();
+ let counter = 0;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test\\foo\\bar');
+
+ this.engine = new DetectEngine({
+ checkDir: async dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ switch (++counter) {
+ case 2:
+ done();
+ break;
+ }
+ },
+ paths: [ dir ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test\\foo',
+ depth: 1
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start()
+ .then(() => sleep(100))
+ .then(() => reg('add', 'HKCU\\Software\\appcd-detect-test\\foo\\bar\\baz'))
+ .catch(done);
+ });
+ });
+
+ describe('Values', () => {
+ afterEach(async function () {
+ if (this.engine) {
+ await this.engine.stop();
+ this.engine = null;
+ }
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ });
+
+ it('should get existing value', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir1 = makeTempDir();
+ const dir2 = makeTempDir();
+ const dir3 = makeTempDir();
+ let counter = 0;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test');
+ reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo', '/t', 'REG_SZ', '/d', dir2);
+
+ this.engine = new DetectEngine({
+ checkDir: async dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ try {
+ switch (++counter) {
+ case 2:
+ expect(this.engine.paths).to.deep.equal([ dir1, dir2 ]);
+ await sleep(250);
+ reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo', '/t', 'REG_SZ', '/d', dir3, '/f');
+ break;
+
+ case 4:
+ expect(this.engine.paths).to.deep.equal([ dir1, dir3 ]);
+ done();
+ break;
+ }
+ } catch (err) {
+ done(err);
+ }
+ },
+ paths: [ dir1 ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test',
+ value: 'foo'
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start();
+ });
+
+ it('should get value once created', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir1 = makeTempDir();
+ const dir2 = makeTempDir();
+ const dir3 = makeTempDir();
+ let counter = 0;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test');
+
+ this.engine = new DetectEngine({
+ checkDir: async dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ try {
+ switch (++counter) {
+ case 1:
+ expect(this.engine.paths).to.deep.equal([ dir1 ]);
+ await sleep(250);
+ reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo', '/t', 'REG_SZ', '/d', dir2);
+ break;
+
+ case 3:
+ expect(this.engine.paths).to.deep.equal([ dir1, dir2 ]);
+ await sleep(250);
+ reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo', '/t', 'REG_SZ', '/d', dir3, '/f');
+ break;
+
+ case 5:
+ expect(this.engine.paths).to.deep.equal([ dir1, dir3 ]);
+ done();
+ break;
+ }
+ } catch (err) {
+ done(err);
+ }
+ },
+ paths: [ dir1 ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test',
+ value: 'foo'
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start();
+ });
+
+ it('should get and transform existing value', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir1 = makeTempDir();
+ const dir2 = makeTempDir();
+ const dir3 = makeTempDir();
+ let counter = 0;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test');
+ reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo', '/t', 'REG_SZ', '/d', dir2);
+
+ this.engine = new DetectEngine({
+ checkDir: async dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ try {
+ switch (++counter) {
+ case 2:
+ expect(this.engine.paths).to.deep.equal([ dir1, dir3 ]);
+ done();
+ break;
+ }
+ } catch (err) {
+ done(err);
+ }
+ },
+ paths: [ dir1 ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test',
+ transform(obj) {
+ obj.value = dir3;
+ },
+ value: 'foo'
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start();
+ });
+ });
+
+ describe('Filtering', () => {
+ afterEach(async function () {
+ if (this.engine) {
+ await this.engine.stop();
+ this.engine = null;
+ }
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ });
+
+ it('should filter out subkeys by string', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir = makeTempDir();
+ let counter = 0;
+ let nogo = false;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test');
+
+ this.engine = new DetectEngine({
+ checkDir: dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ if (nogo) {
+ done(new Error('Did not expect any events!'));
+ return;
+ }
+
+ switch (++counter) {
+ case 2:
+ nogo = true;
+ reg('add', 'HKCU\\Software\\appcd-detect-test\\bar');
+ setTimeout(() => {
+ nogo = false;
+ reg('delete', 'HKCU\\Software\\appcd-detect-test\\foo', '/f');
+ }, 1000);
+ break;
+
+ case 3:
+ reg('add', 'HKCU\\Software\\appcd-detect-test\\foo');
+ break;
+
+ case 4:
+ done();
+ break;
+ }
+ },
+ paths: [ dir ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test',
+ filter: {
+ subkeys: 'foo'
+ }
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start()
+ .then(() => sleep(100))
+ .then(() => reg('add', 'HKCU\\Software\\appcd-detect-test\\foo'))
+ .catch(done);
+ });
+
+ it('should filter out subkeys by regex', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir = makeTempDir();
+ let counter = 0;
+ let nogo = false;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test');
+
+ this.engine = new DetectEngine({
+ checkDir: dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ if (nogo) {
+ done(new Error('Did not expect any events!'));
+ return;
+ }
+
+ switch (++counter) {
+ case 2:
+ nogo = true;
+ reg('add', 'HKCU\\Software\\appcd-detect-test\\bar');
+ setTimeout(() => {
+ nogo = false;
+ reg('add', 'HKCU\\Software\\appcd-detect-test\\foo2');
+ }, 1000);
+ break;
+
+ case 3:
+ done();
+ break;
+ }
+ },
+ paths: [ dir ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test',
+ filter: {
+ subkeys: /^foo/
+ }
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start()
+ .then(() => sleep(100))
+ .then(() => reg('add', 'HKCU\\Software\\appcd-detect-test\\foo'))
+ .catch(done);
+ });
+
+ it('should filter out values by string', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir = makeTempDir();
+ let counter = 0;
+ let nogo = false;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test');
+
+ this.engine = new DetectEngine({
+ checkDir: dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ if (nogo) {
+ done(new Error('Did not expect any events!'));
+ return;
+ }
+
+ switch (++counter) {
+ case 2:
+ nogo = true;
+ reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'bar', '/t', 'REG_SZ', '/d', 'test2');
+ setTimeout(() => {
+ nogo = false;
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo', '/f');
+ }, 1000);
+ break;
+
+ case 3:
+ reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo', '/t', 'REG_SZ', '/d', 'test3', '/f');
+ break;
+
+ case 4:
+ done();
+ break;
+ }
+ },
+ paths: [ dir ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test',
+ filter: {
+ values: 'foo'
+ }
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start()
+ .then(() => sleep(100))
+ .then(() => reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo', '/t', 'REG_SZ', '/d', 'test1'))
+ .catch(done);
+ });
+
+ it('should filter out values by regex', function (done) {
+ this.timeout(10000);
+ this.slow(10000);
+
+ const dir = makeTempDir();
+ let counter = 0;
+ let nogo = false;
+
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/f');
+ reg('add', 'HKCU\\Software\\appcd-detect-test');
+
+ this.engine = new DetectEngine({
+ checkDir: dir => {
+ // log(`${counter + 1}: ${dir}`);
+
+ if (nogo) {
+ done(new Error('Did not expect any events!'));
+ return;
+ }
+
+ switch (++counter) {
+ case 2:
+ nogo = true;
+ reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'bar', '/t', 'REG_SZ', '/d', 'test2');
+ setTimeout(() => {
+ nogo = false;
+ reg('delete', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo', '/f');
+ }, 1000);
+ break;
+
+ case 3:
+ reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo2', '/t', 'REG_SZ', '/d', 'test3', '/f');
+ break;
+
+ case 4:
+ done();
+ break;
+ }
+ },
+ paths: [ dir ],
+ registryKeys: [
+ {
+ key: 'HKCU\\Software\\appcd-detect-test',
+ filter: {
+ values: /^foo/
+ }
+ }
+ ],
+ watch: true
+ });
+
+ this.engine.start()
+ .then(() => sleep(100))
+ .then(() => reg('add', 'HKCU\\Software\\appcd-detect-test', '/v', 'foo', '/t', 'REG_SZ', '/d', 'test1'))
+ .catch(done);
+ });
+ });
+ });
});
+
+/*
+
+filtering!!!!
+
+WINDOWS
+
+visual studio:
+
+export const registryKeys = {
+ 'HKCU\\Software\\Microsoft\\VisualStudio': {},
+ 'HKCU\\Software\\Microsoft\\VSCommon': {},
+ 'HKLM\\Software\\RegisteredApplications': { values: /^VisualStudio.+/ },
+ 'HKLM\\Software\\Microsoft\\VisualStudio': {},
+ 'HKLM\\Software\\WOW6432Node\\Microsoft': { subkeys: /^VisualStudio.+/ },
+ 'HKLM\\Software\\WOW6432Node\\Microsoft\\VisualStudio': {}
+};
+
+registryKeys: Object.entries(windowslib.vs.registrykeys).map(([ key, filter ]) => ({ filter, key }))
+*/
diff --git a/packages/appcd-dispatcher/CHANGELOG.md b/packages/appcd-dispatcher/CHANGELOG.md
index 1e33b452c..e4486b0d0 100644
--- a/packages/appcd-dispatcher/CHANGELOG.md
+++ b/packages/appcd-dispatcher/CHANGELOG.md
@@ -1,3 +1,8 @@
+# v2.0.1
+
+ * chore: Fixed eslint `hasOwnProperty` warnings.
+ * chore: Updated dependencies.
+
# v2.0.0 (Jun 13, 2019)
* BREAKING CHANGE: Updated to `appcd-response@2.0.0`.
diff --git a/packages/appcd-dispatcher/package.json b/packages/appcd-dispatcher/package.json
index 4ec101855..b224bcc2e 100644
--- a/packages/appcd-dispatcher/package.json
+++ b/packages/appcd-dispatcher/package.json
@@ -18,10 +18,10 @@
"dependencies": {
"appcd-logger": "^2.0.2",
"appcd-response": "^2.0.0",
- "gawk": "^4.6.3",
+ "gawk": "^4.6.4",
"path-to-regexp": "^3.0.0",
"pluralize": "^8.0.0",
- "source-map-support": "^0.5.12",
+ "source-map-support": "^0.5.13",
"uuid": "^3.3.2"
},
"devDependencies": {
diff --git a/packages/appcd-dispatcher/src/data-service-dispatcher.js b/packages/appcd-dispatcher/src/data-service-dispatcher.js
index 6a55c6e06..2e42009c0 100644
--- a/packages/appcd-dispatcher/src/data-service-dispatcher.js
+++ b/packages/appcd-dispatcher/src/data-service-dispatcher.js
@@ -134,7 +134,7 @@ export default class DataServiceDispatcher extends ServiceDispatcher {
if (filter) {
for (let i = 0, len = filter.length; result && typeof result === 'object' && i < len; i++) {
- if (!result.hasOwnProperty(filter[i])) {
+ if (!Object.prototype.hasOwnProperty.call(result, filter[i])) {
return null;
}
result = result[filter[i]];
diff --git a/packages/appcd-dispatcher/src/dispatcher.js b/packages/appcd-dispatcher/src/dispatcher.js
index da992bf74..28145caaa 100644
--- a/packages/appcd-dispatcher/src/dispatcher.js
+++ b/packages/appcd-dispatcher/src/dispatcher.js
@@ -432,7 +432,7 @@ export default class Dispatcher {
*/
normalize(path, handler) {
// check if the `path` is a ServiceDispatcher or any object with a path and handler callback
- if (path && typeof path === 'object' && path.hasOwnProperty('path') && typeof path.handler === 'function') {
+ if (path && typeof path === 'object' && Object.prototype.hasOwnProperty.call(path, 'path') && typeof path.handler === 'function') {
handler = path.handler;
path = path.path;
}
diff --git a/packages/appcd-dispatcher/src/service-dispatcher.js b/packages/appcd-dispatcher/src/service-dispatcher.js
index 5b98193f9..ce573958f 100644
--- a/packages/appcd-dispatcher/src/service-dispatcher.js
+++ b/packages/appcd-dispatcher/src/service-dispatcher.js
@@ -232,7 +232,7 @@ export default class ServiceDispatcher {
return;
}
- if (!this.subscriptions.hasOwnProperty(subscriptionId)) {
+ if (!Object.prototype.hasOwnProperty.call(this.subscriptions, subscriptionId)) {
logger.log('%s No such subscription found', note(`[${subscriptionId}]`));
// double check that no topics have this subscription id
diff --git a/packages/appcd-fs/package.json b/packages/appcd-fs/package.json
index 3101f7b83..727578a07 100644
--- a/packages/appcd-fs/package.json
+++ b/packages/appcd-fs/package.json
@@ -16,7 +16,7 @@
"test": "gulp test"
},
"dependencies": {
- "source-map-support": "^0.5.12"
+ "source-map-support": "^0.5.13"
},
"devDependencies": {
"appcd-gulp": "^2.1.1"
diff --git a/packages/appcd-fswatch-manager/CHANGELOG.md b/packages/appcd-fswatch-manager/CHANGELOG.md
index 925c1fa69..2dbe6da7f 100644
--- a/packages/appcd-fswatch-manager/CHANGELOG.md
+++ b/packages/appcd-fswatch-manager/CHANGELOG.md
@@ -1,3 +1,8 @@
+# v2.0.1
+
+ * chore: Updated dependencies.
+ * chore: Commented out debug log output of FS watcher tree state because it was too noisy.
+
# v2.0.0 (Jun 13, 2019)
* BREAKING CHANGE: Updated to `appcd-dispatche@2.0.0` and `appcd-response@2.0.0`.
diff --git a/packages/appcd-fswatch-manager/package.json b/packages/appcd-fswatch-manager/package.json
index 0e8475cc6..1ca70e888 100644
--- a/packages/appcd-fswatch-manager/package.json
+++ b/packages/appcd-fswatch-manager/package.json
@@ -20,13 +20,13 @@
"appcd-fswatcher": "^1.2.2",
"appcd-logger": "^2.0.2",
"appcd-response": "^2.0.0",
- "source-map-support": "^0.5.12"
+ "source-map-support": "^0.5.13"
},
"devDependencies": {
"appcd-gulp": "^2.1.1",
"appcd-path": "^1.1.6",
"appcd-util": "^1.1.7",
- "fs-extra": "^8.0.1",
+ "fs-extra": "^8.1.0",
"tmp": "^0.1.0"
},
"homepage": "https://github.com/appcelerator/appc-daemon/tree/master/packages/appcd-fswatch-manager",
diff --git a/packages/appcd-fswatch-manager/src/fswatch-manager.js b/packages/appcd-fswatch-manager/src/fswatch-manager.js
index c88e30035..dd08a2370 100644
--- a/packages/appcd-fswatch-manager/src/fswatch-manager.js
+++ b/packages/appcd-fswatch-manager/src/fswatch-manager.js
@@ -9,7 +9,7 @@ import Dispatcher, { DispatcherError, ServiceDispatcher } from 'appcd-dispatcher
import { codes } from 'appcd-response';
import { EventEmitter } from 'events';
import { expandPath } from 'appcd-path';
-import { FSWatcher, renderTree, rootEmitter, status as fsStatus, tree as fsTree } from 'appcd-fswatcher';
+import { FSWatcher, /* renderTree, */ rootEmitter, status as fsStatus, tree as fsTree } from 'appcd-fswatcher';
const logger = appcdLogger('appcd:fswatcher:manager');
const { highlight } = appcdLogger.styles;
@@ -82,7 +82,7 @@ export default class FSWatchManager extends ServiceDispatcher {
watcher.on('change', publish);
this.watchers[sid] = watcher;
- logger.log(renderTree());
+ // logger.log(renderTree());
}
/**
@@ -101,7 +101,7 @@ export default class FSWatchManager extends ServiceDispatcher {
logger.log('Stopping FSWatcher: %s', highlight(sid));
watcher.close();
delete this.watchers[sid];
- logger.log(renderTree());
+ // logger.log(renderTree());
}
}
diff --git a/packages/appcd-fswatcher/CHANGELOG.md b/packages/appcd-fswatcher/CHANGELOG.md
index c6ecaf693..40b78822f 100644
--- a/packages/appcd-fswatcher/CHANGELOG.md
+++ b/packages/appcd-fswatcher/CHANGELOG.md
@@ -1,3 +1,7 @@
+# v1.2.3
+
+ * chore: Updated dependencies.
+
# v1.2.2 (Jun 4, 2019)
* chore: Updated dependencies.
diff --git a/packages/appcd-fswatcher/package.json b/packages/appcd-fswatcher/package.json
index d5732694b..23ab4a422 100644
--- a/packages/appcd-fswatcher/package.json
+++ b/packages/appcd-fswatcher/package.json
@@ -18,14 +18,14 @@
"dependencies": {
"appcd-logger": "^2.0.2",
"appcd-util": "^1.1.7",
- "gawk": "^4.6.3",
+ "gawk": "^4.6.4",
"pluralize": "^8.0.0",
- "source-map-support": "^0.5.12"
+ "source-map-support": "^0.5.13"
},
"devDependencies": {
"appcd-gulp": "^2.1.1",
"appcd-path": "^1.1.6",
- "fs-extra": "^8.0.1",
+ "fs-extra": "^8.1.0",
"tmp": "^0.1.0"
},
"homepage": "https://github.com/appcelerator/appc-daemon/tree/master/packages/appcd-fswatcher",
diff --git a/packages/appcd-fswatcher/src/fswatcher.js b/packages/appcd-fswatcher/src/fswatcher.js
index 6d9c90a83..25c98d725 100644
--- a/packages/appcd-fswatcher/src/fswatcher.js
+++ b/packages/appcd-fswatcher/src/fswatcher.js
@@ -636,7 +636,7 @@ export class Node {
&& evt.action === 'change'
&& isDir
) {
- log('Dropping Windows event for change to contents of a directory');
+ // log('Dropping Windows event for change to contents of a directory');
return;
}
} catch (e) {
diff --git a/packages/appcd-gulp/CHANGELOG.md b/packages/appcd-gulp/CHANGELOG.md
index 91f1133c5..c35bb85f8 100644
--- a/packages/appcd-gulp/CHANGELOG.md
+++ b/packages/appcd-gulp/CHANGELOG.md
@@ -1,5 +1,10 @@
# v2.2.0
+ * feat: Added Node 12 Babel profile.
+ [(DAEMON-275)](https://jira.appcelerator.org/browse/DAEMON-275)
+ * chore: Updated to `eslint-config-axway@4.3.0` which added eslint 6 support and added Node.js
+ eslint rules.
+ * chore: Disabled `require-atomic-updates` rule.
* chore: Removed deprecated @babel/polyfill
* chore: Updated dependencies
diff --git a/packages/appcd-gulp/package.json b/packages/appcd-gulp/package.json
index 921ac62fc..668c3373c 100644
--- a/packages/appcd-gulp/package.json
+++ b/packages/appcd-gulp/package.json
@@ -9,15 +9,15 @@
],
"license": "Apache-2.0",
"dependencies": {
- "@babel/core": "^7.4.5",
- "@babel/plugin-proposal-class-properties": "^7.4.4",
- "@babel/plugin-proposal-object-rest-spread": "^7.4.4",
- "@babel/plugin-transform-async-to-generator": "^7.4.4",
- "@babel/plugin-transform-destructuring": "^7.4.4",
- "@babel/plugin-transform-modules-commonjs": "^7.4.4",
+ "@babel/core": "^7.5.5",
+ "@babel/plugin-proposal-class-properties": "^7.5.5",
+ "@babel/plugin-proposal-object-rest-spread": "^7.5.5",
+ "@babel/plugin-transform-async-to-generator": "^7.5.0",
+ "@babel/plugin-transform-destructuring": "^7.5.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.5.0",
"@babel/plugin-transform-parameters": "^7.4.4",
- "@babel/register": "^7.4.4",
- "ansi-colors": "^4.0.1",
+ "@babel/register": "^7.5.5",
+ "ansi-colors": "^4.1.1",
"babel-eslint": "^10.0.2",
"babel-loader": "^8.0.6",
"babel-plugin-dynamic-import-node": "^2.3.0",
@@ -27,26 +27,27 @@
"esdoc": "^1.1.0",
"esdoc-ecmascript-proposal-plugin": "^1.0.0",
"esdoc-standard-plugin": "^1.0.0",
- "eslint": "^6.0.1",
- "eslint-config-axway": "^4.2.2",
+ "eslint": "^6.1.0",
+ "eslint-config-axway": "^4.3.0",
"eslint-plugin-chai-friendly": "^0.4.1",
- "eslint-plugin-mocha": "^5.3.0",
+ "eslint-plugin-mocha": "^6.0.0",
+ "eslint-plugin-node": "^9.1.0",
"fancy-log": "^1.3.3",
- "fs-extra": "^8.0.1",
+ "fs-extra": "^8.1.0",
"gulp": "^4.0.2",
"gulp-babel": "^8.0.0",
"gulp-chug": "^0.5.1",
"gulp-debug": "^4.0.0",
- "gulp-eslint": "^5.0.0",
- "gulp-load-plugins": "^1.6.0",
+ "gulp-eslint": "^6.0.0",
+ "gulp-load-plugins": "^2.0.0",
"gulp-plumber": "^1.2.1",
"gulp-sourcemaps": "^2.6.5",
- "mocha": "^6.1.4",
- "mocha-jenkins-reporter": "^0.4.1",
+ "mocha": "^6.2.0",
+ "mocha-jenkins-reporter": "^0.4.2",
"nyc": "^14.1.1",
- "sinon": "^7.3.2",
+ "sinon": "^7.4.1",
"sinon-chai": "^3.3.0",
- "webpack": "^4.35.0"
+ "webpack": "^4.39.1"
},
"homepage": "https://github.com/appcelerator/appc-daemon/tree/master/packages/appcd-gulp",
"bugs": "https://github.com/appcelerator/appc-daemon/issues",
diff --git a/packages/appcd-gulp/src/babel.js b/packages/appcd-gulp/src/babel.js
index 8c4ff80f7..14c7cace5 100644
--- a/packages/appcd-gulp/src/babel.js
+++ b/packages/appcd-gulp/src/babel.js
@@ -50,6 +50,13 @@ const profiles = {
'@babel/plugin-transform-modules-commonjs',
'dynamic-import-node'
]
+ },
+
+ node12: {
+ plugins: [
+ '@babel/plugin-transform-modules-commonjs',
+ 'dynamic-import-node'
+ ]
}
};
diff --git a/packages/appcd-gulp/src/eslint-tests.json b/packages/appcd-gulp/src/eslint-tests.json
index 4c16a19dc..a1096113e 100644
--- a/packages/appcd-gulp/src/eslint-tests.json
+++ b/packages/appcd-gulp/src/eslint-tests.json
@@ -15,6 +15,8 @@
"sinon": false
},
"rules": {
- "promise/always-return": "off"
+ "node/no-unsupported-features/es-syntax": "off",
+ "promise/always-return": "off",
+ "require-atomic-updates": "off"
}
}
diff --git a/packages/appcd-gulp/src/eslint.json b/packages/appcd-gulp/src/eslint.json
index 3608b9c14..e562be219 100644
--- a/packages/appcd-gulp/src/eslint.json
+++ b/packages/appcd-gulp/src/eslint.json
@@ -2,5 +2,9 @@
"extends": [ "axway/env-node", "axway/+babel" ],
"globals": {
"appcd": false
+ },
+ "rules": {
+ "node/no-unsupported-features/es-syntax": "off",
+ "require-atomic-updates": "off"
}
}
diff --git a/packages/appcd-http/package.json b/packages/appcd-http/package.json
index bdb168ff2..13310680d 100644
--- a/packages/appcd-http/package.json
+++ b/packages/appcd-http/package.json
@@ -23,8 +23,8 @@
"koa-helmet": "^4.2.0",
"koa-send": "^5.0.0",
"path-to-regexp": "^3.0.0",
- "source-map-support": "^0.5.12",
- "ws": "^7.0.1"
+ "source-map-support": "^0.5.13",
+ "ws": "^7.1.1"
},
"devDependencies": {
"appcd-gulp": "^2.1.1",
diff --git a/packages/appcd-logger/CHANGELOG.md b/packages/appcd-logger/CHANGELOG.md
index 95cc6b309..cbb6dbc87 100644
--- a/packages/appcd-logger/CHANGELOG.md
+++ b/packages/appcd-logger/CHANGELOG.md
@@ -1,3 +1,7 @@
+# v2.0.3
+
+ * chore: Updated dependencies.
+
# v2.0.2 (Jun 4, 2019)
* chore: Updated dependencies.
diff --git a/packages/appcd-logger/package.json b/packages/appcd-logger/package.json
index 1997a8760..8607be5fd 100644
--- a/packages/appcd-logger/package.json
+++ b/packages/appcd-logger/package.json
@@ -16,8 +16,8 @@
"test": "gulp test"
},
"dependencies": {
- "snooplogg": "^2.0.1",
- "source-map-support": "^0.5.12"
+ "snooplogg": "^2.1.0",
+ "source-map-support": "^0.5.13"
},
"devDependencies": {
"appcd-gulp": "^2.1.1"
diff --git a/packages/appcd-machine-id/CHANGELOG.md b/packages/appcd-machine-id/CHANGELOG.md
index 18497bd8c..c0456d260 100644
--- a/packages/appcd-machine-id/CHANGELOG.md
+++ b/packages/appcd-machine-id/CHANGELOG.md
@@ -1,3 +1,7 @@
+# v2.0.2
+
+ * chore: Updated dependencies.
+
# v2.0.1 (Jun 13, 2019)
* chore: Updated to `appcd-subprocess@2.0.1`.
diff --git a/packages/appcd-machine-id/package.json b/packages/appcd-machine-id/package.json
index b10b5e596..49f5e5d2c 100644
--- a/packages/appcd-machine-id/package.json
+++ b/packages/appcd-machine-id/package.json
@@ -21,11 +21,11 @@
"appcd-path": "^1.1.6",
"appcd-subprocess": "^2.0.1",
"appcd-util": "^1.1.7",
- "fs-extra": "^8.0.1",
+ "fs-extra": "^8.1.0",
"macaddress": "^0.2.9",
"simple-plist": "^1.0.0",
- "source-map-support": "^0.5.12",
- "winreglib": "^1.0.2"
+ "source-map-support": "^0.5.13",
+ "winreglib": "^1.0.5"
},
"devDependencies": {
"appcd-gulp": "^2.1.1",
diff --git a/packages/appcd-nodejs/CHANGELOG.md b/packages/appcd-nodejs/CHANGELOG.md
index fca31a836..0a2e44673 100644
--- a/packages/appcd-nodejs/CHANGELOG.md
+++ b/packages/appcd-nodejs/CHANGELOG.md
@@ -1,3 +1,7 @@
+# v2.0.2
+
+ * chore: Updated dependencies.
+
# v2.0.1 (Jun 13, 2019)
* chore: Updated to `appcd-nodejs@2.0.0`.
diff --git a/packages/appcd-nodejs/package.json b/packages/appcd-nodejs/package.json
index 8d95682ac..4730cd586 100644
--- a/packages/appcd-nodejs/package.json
+++ b/packages/appcd-nodejs/package.json
@@ -20,10 +20,10 @@
"appcd-logger": "^2.0.2",
"appcd-request": "^2.0.0",
"appcd-util": "^1.1.7",
- "fs-extra": "^8.0.1",
+ "fs-extra": "^8.1.0",
"pluralize": "^8.0.0",
"progress": "^2.0.3",
- "source-map-support": "^0.5.12",
+ "source-map-support": "^0.5.13",
"tar-stream": "^2.1.0",
"yauzl": "^2.10.0"
},
diff --git a/packages/appcd-path/package.json b/packages/appcd-path/package.json
index da862d518..561b22ed1 100644
--- a/packages/appcd-path/package.json
+++ b/packages/appcd-path/package.json
@@ -16,7 +16,7 @@
"test": "gulp test"
},
"dependencies": {
- "source-map-support": "^0.5.12"
+ "source-map-support": "^0.5.13"
},
"devDependencies": {
"appcd-gulp": "^2.1.1",
diff --git a/packages/appcd-plugin/CHANGELOG.md b/packages/appcd-plugin/CHANGELOG.md
index 7273928ee..7dc105cc0 100644
--- a/packages/appcd-plugin/CHANGELOG.md
+++ b/packages/appcd-plugin/CHANGELOG.md
@@ -1,6 +1,7 @@
# v2.2.1
- * chore: Updated dependencies
+ * chore: Fixed eslint `hasOwnProperty` warnings.
+ * chore: Updated dependencies.
# v2.2.0 (Jun 25, 2019)
diff --git a/packages/appcd-plugin/package.json b/packages/appcd-plugin/package.json
index 838ca9ef6..309a19c4e 100644
--- a/packages/appcd-plugin/package.json
+++ b/packages/appcd-plugin/package.json
@@ -36,22 +36,22 @@
"appcd-util": "^1.1.7",
"appcd-winreg": "^1.1.6",
"builtin-modules": "^3.1.0",
- "findup-sync": "^3.0.0",
- "gawk": "^4.6.3",
+ "findup-sync": "^4.0.0",
+ "gawk": "^4.6.4",
"globule": "^1.2.1",
- "hook-emitter": "^3.1.2",
+ "hook-emitter": "^4.0.0",
"ignore": "^5.1.2",
"pluralize": "^8.0.0",
"pretty-ms": "^5.0.0",
- "semver": "^6.1.2",
+ "semver": "^6.3.0",
"slugg": "^1.2.1",
- "source-map-support": "^0.5.12",
+ "source-map-support": "^0.5.13",
"uuid": "^3.3.2"
},
"devDependencies": {
"appcd-fswatch-manager": "^2.0.0",
"appcd-gulp": "^2.1.1",
- "fs-extra": "^8.0.1",
+ "fs-extra": "^8.1.0",
"tmp": "^0.1.0"
},
"homepage": "https://github.com/appcelerator/appc-daemon/tree/master/packages/appcd-plugin",
diff --git a/packages/appcd-plugin/src/plugin.js b/packages/appcd-plugin/src/plugin.js
index 48429ae6f..c046f99a0 100644
--- a/packages/appcd-plugin/src/plugin.js
+++ b/packages/appcd-plugin/src/plugin.js
@@ -65,7 +65,7 @@ export default class Plugin extends EventEmitter {
return new Proxy(this, {
get(target, name) {
- if (target.info.hasOwnProperty(name)) {
+ if (Object.prototype.hasOwnProperty.call(target.info, name)) {
return target.info[name];
} else {
return target[name];
@@ -76,7 +76,7 @@ export default class Plugin extends EventEmitter {
if (name === 'info') {
throw new Error('The "info" property is readonly');
}
- if (target.info.hasOwnProperty(name)) {
+ if (Object.prototype.hasOwnProperty.call(target.info, name)) {
target.info[name] = value;
} else {
target[name] = value;
diff --git a/packages/appcd-request/CHANGELOG.md b/packages/appcd-request/CHANGELOG.md
index 208d3b5c4..d5192fac2 100644
--- a/packages/appcd-request/CHANGELOG.md
+++ b/packages/appcd-request/CHANGELOG.md
@@ -1,3 +1,9 @@
+# v2.1.0
+
+ * fix: Fixed request config setting precedence such that environment variables override config
+ settings.
+ * chore: Updated dependencies.
+
# v2.0.0 (Jun 13, 2019)
* BREAKING CHANGE: Updated to `appcd-dispatcher@2.0.0`.
diff --git a/packages/appcd-request/package.json b/packages/appcd-request/package.json
index ff8b206c7..1038dc1f5 100644
--- a/packages/appcd-request/package.json
+++ b/packages/appcd-request/package.json
@@ -21,7 +21,7 @@
"appcd-logger": "^2.0.2",
"humanize": "^0.0.9",
"request": "^2.88.0",
- "source-map-support": "^0.5.12"
+ "source-map-support": "^0.5.13"
},
"devDependencies": {
"appcd-gulp": "^2.1.1"
diff --git a/packages/appcd-request/src/request.js b/packages/appcd-request/src/request.js
index e43d29e75..784e9be82 100644
--- a/packages/appcd-request/src/request.js
+++ b/packages/appcd-request/src/request.js
@@ -69,47 +69,49 @@ export default function request(params, callback) {
conf = Object.assign({ method: 'GET' }, conf, params);
+ // ca file
if (APPCD_NETWORK_CA_FILE && isFile(APPCD_NETWORK_CA_FILE)) {
conf.ca = fs.readFileSync(APPCD_NETWORK_CA_FILE).toString();
- }
-
- if (APPCD_NETWORK_PROXY) {
- conf.proxy = APPCD_NETWORK_PROXY;
- }
-
- if (APPCD_NETWORK_STRICT_SSL !== undefined && APPCD_NETWORK_STRICT_SSL !== 'false') {
- conf.strictSSL = true;
- }
-
- // ca file
- const caFile = conf.caFile && typeof conf.caFile === 'string' && path.resolve(conf.caFile);
- if (isFile(caFile)) {
- conf.ca = fs.readFileSync(caFile);
- delete conf.caFile;
+ } else {
+ const caFile = conf.caFile && typeof conf.caFile === 'string' && path.resolve(conf.caFile);
+ if (isFile(caFile)) {
+ conf.ca = fs.readFileSync(caFile);
+ }
}
// cert file
const certFile = conf.certFile && typeof conf.certFile === 'string' && path.resolve(conf.certFile);
if (isFile(certFile)) {
conf.cert = fs.readFileSync(certFile);
- delete conf.certFile;
}
// key file
const keyFile = conf.keyFile && typeof conf.keyFile === 'string' && path.resolve(conf.keyFile);
if (isFile(keyFile)) {
conf.key = fs.readFileSync(keyFile);
- delete conf.keyFile;
}
// configure proxy
- const proxyType = conf.url && conf.url.indexOf('https') === 0 ? 'httpsProxy' : 'httpProxy';
- if (conf[proxyType]) {
- conf.proxy = conf[proxyType];
+ if (APPCD_NETWORK_PROXY) {
+ conf.proxy = APPCD_NETWORK_PROXY;
+ } else {
+ const proxyType = conf.url && conf.url.indexOf('https') === 0 ? 'httpsProxy' : 'httpProxy';
+ if (conf[proxyType]) {
+ conf.proxy = conf[proxyType];
+ }
}
+
+ // remove unused props
+ delete conf.caFile;
+ delete conf.certFile;
+ delete conf.keyFile;
delete conf.httpProxy;
delete conf.httpsProxy;
+ if (APPCD_NETWORK_STRICT_SSL !== undefined && APPCD_NETWORK_STRICT_SSL !== 'false') {
+ conf.strictSSL = true;
+ }
+
// console.log(conf);
const req = _request(conf, callback)
@@ -120,7 +122,7 @@ export default function request(params, callback) {
note(conf.method),
conf.url,
statusCode < 400 ? ok(statusCode) : alert(statusCode),
- headers.hasOwnProperty('content-length') ? note(`(${humanize.filesize(headers['content-length'])})`) : ''
+ Object.prototype.hasOwnProperty.call(headers, 'content-length') ? note(`(${humanize.filesize(headers['content-length'])})`) : ''
);
})
.on('error', () => {});
diff --git a/packages/appcd-response/CHANGELOG.md b/packages/appcd-response/CHANGELOG.md
index 3f4a20d5d..23261811d 100644
--- a/packages/appcd-response/CHANGELOG.md
+++ b/packages/appcd-response/CHANGELOG.md
@@ -1,3 +1,8 @@
+# v2.0.1
+
+ * chore: Fixed eslint `hasOwnProperty` warnings.
+ * chore: Updated dependencies.
+
# v2.0.0 (Jun 4, 2019)
* BREAKING CHANGE: Bumped minimum required Node.js version to v8.12.0.
diff --git a/packages/appcd-response/package.json b/packages/appcd-response/package.json
index b014a1672..c87a5b763 100644
--- a/packages/appcd-response/package.json
+++ b/packages/appcd-response/package.json
@@ -18,9 +18,9 @@
"dependencies": {
"appcd-fs": "^1.1.7",
"appcd-path": "^1.1.6",
- "source-map-support": "^0.5.12",
+ "source-map-support": "^0.5.13",
"sprintf-js": "^1.1.2",
- "winreglib": "^1.0.2"
+ "winreglib": "^1.0.5"
},
"devDependencies": {
"appcd-gulp": "^2.1.1"
diff --git a/packages/appcd-response/src/appcd-error.js b/packages/appcd-response/src/appcd-error.js
index eedc271aa..506677c06 100644
--- a/packages/appcd-response/src/appcd-error.js
+++ b/packages/appcd-response/src/appcd-error.js
@@ -115,11 +115,11 @@ export function createErrorClass(className, opts = {}) {
throw new TypeError('Expected options to be an object');
}
- if (opts.hasOwnProperty('defaultStatus') && typeof opts.defaultStatus !== 'number') {
+ if (Object.prototype.hasOwnProperty.call(opts, 'defaultStatus') && typeof opts.defaultStatus !== 'number') {
throw new TypeError('Expected default status to be a number');
}
- if (opts.hasOwnProperty('defaultStatusCode') && typeof opts.defaultStatusCode !== 'number' && typeof opts.defaultStatusCode !== 'string') {
+ if (Object.prototype.hasOwnProperty.call(opts, 'defaultStatusCode') && typeof opts.defaultStatusCode !== 'number' && typeof opts.defaultStatusCode !== 'string') {
throw new TypeError('Expected default status code to be a string or number');
}
}
diff --git a/packages/appcd-response/src/message.js b/packages/appcd-response/src/message.js
index 19784e8ee..de97dd40f 100644
--- a/packages/appcd-response/src/message.js
+++ b/packages/appcd-response/src/message.js
@@ -170,7 +170,7 @@ export function i18n(locales) {
*/
function loadCodeFile(locales, cls, code) {
for (let locale of locales) {
- if (codesCache[locale] && codesCache[locale].hasOwnProperty(code)) {
+ if (codesCache[locale] && Object.prototype.hasOwnProperty.call(codesCache[locale], code)) {
return codesCache[locale][code];
}
diff --git a/packages/appcd-subprocess/CHANGELOG.md b/packages/appcd-subprocess/CHANGELOG.md
index f22571912..4e2e20a88 100644
--- a/packages/appcd-subprocess/CHANGELOG.md
+++ b/packages/appcd-subprocess/CHANGELOG.md
@@ -1,3 +1,8 @@
+# v2.0.1
+
+ * chore: Fixed eslint `hasOwnProperty` warnings.
+ * chore: Updated dependencies.
+
# v2.0.0 (Jun 13, 2019)
* BREAKING CHANGE: Updated to `appcd-response@2.0.0`.
diff --git a/packages/appcd-subprocess/package.json b/packages/appcd-subprocess/package.json
index 491877458..7cfb0e8a9 100644
--- a/packages/appcd-subprocess/package.json
+++ b/packages/appcd-subprocess/package.json
@@ -22,9 +22,9 @@
"appcd-path": "^1.1.6",
"appcd-response": "^2.0.0",
"appcd-util": "^1.1.7",
- "gawk": "^4.6.3",
+ "gawk": "^4.6.4",
"ps-tree": "^1.2.0",
- "source-map-support": "^0.5.12",
+ "source-map-support": "^0.5.13",
"which": "^1.3.1"
},
"devDependencies": {
diff --git a/packages/appcd-subprocess/src/subprocess.js b/packages/appcd-subprocess/src/subprocess.js
index ce9d0465e..ac9e91320 100644
--- a/packages/appcd-subprocess/src/subprocess.js
+++ b/packages/appcd-subprocess/src/subprocess.js
@@ -42,7 +42,7 @@ export function run(cmd, args, opts) {
opts = {};
}
- if (!opts.hasOwnProperty('windowsHide')) {
+ if (!Object.prototype.hasOwnProperty.call(opts, 'windowsHide')) {
opts.windowsHide = true;
}
@@ -87,7 +87,7 @@ export function spawn(params = {}) {
throw new TypeError('Expected params to be an object');
}
- if (!params.hasOwnProperty('command')) {
+ if (!Object.prototype.hasOwnProperty.call(params, 'command')) {
throw new SubprocessError(codes.MISSING_ARGUMENT, 'Missing required argument "%s"', 'command');
}
if (!params.command || typeof params.command !== 'string') {
@@ -95,7 +95,7 @@ export function spawn(params = {}) {
}
let args = [];
- if (params.hasOwnProperty('args')) {
+ if (Object.prototype.hasOwnProperty.call(params, 'args')) {
if (Array.isArray(params.args)) {
args = params.args;
} else if (params.args) {
@@ -110,13 +110,13 @@ export function spawn(params = {}) {
windowsHide: true
};
- if (params.hasOwnProperty('options')) {
+ if (Object.prototype.hasOwnProperty.call(params, 'options')) {
if (!params.options || typeof params.options !== 'object') {
throw new SubprocessError(codes.INVALID_ARGUMENT, 'Spawn "options" must be an object');
}
for (const prop of [ 'cwd', 'env', 'stdio', 'windowsHide' ]) {
- if (params.options.hasOwnProperty(prop)) {
+ if (Object.prototype.hasOwnProperty.call(params.options, prop)) {
options[prop] = params.options[prop];
}
}
diff --git a/packages/appcd-telemetry/CHANGELOG.md b/packages/appcd-telemetry/CHANGELOG.md
index fecc4fa0d..0d13aed8b 100644
--- a/packages/appcd-telemetry/CHANGELOG.md
+++ b/packages/appcd-telemetry/CHANGELOG.md
@@ -1,3 +1,12 @@
+# v2.0.2
+
+ * fix: Fixed bug where events were sent out-of-order if there was a connection error sending a
+ batch of data.
+ * fix: Fixed bug where the next schuduled sending of events was stopped if shutdown prior to
+ scheduling.
+ * fix: Fixed live config changes for environment name.
+ * chore: Updated dependencies.
+
# v2.0.1 (Jun 13, 2019)
* chore: Updated to `appcd-dispatcher@2.0.0`, `appcd-machine-id@2.0.1`, and `appcd-request@2.0.0`.
diff --git a/packages/appcd-telemetry/package.json b/packages/appcd-telemetry/package.json
index e46c698ae..dfb476125 100644
--- a/packages/appcd-telemetry/package.json
+++ b/packages/appcd-telemetry/package.json
@@ -25,8 +25,8 @@
"appcd-request": "^2.0.0",
"appcd-response": "^2.0.0",
"appcd-util": "^1.1.7",
- "fs-extra": "^8.0.1",
- "source-map-support": "^0.5.12",
+ "fs-extra": "^8.1.0",
+ "source-map-support": "^0.5.13",
"uuid": "^3.3.2"
},
"devDependencies": {
diff --git a/packages/appcd-telemetry/src/telemetry.js b/packages/appcd-telemetry/src/telemetry.js
index a249d9ec1..a5dc7d7a2 100644
--- a/packages/appcd-telemetry/src/telemetry.js
+++ b/packages/appcd-telemetry/src/telemetry.js
@@ -30,6 +30,56 @@ const jsonRegExp = /\.json$/;
* Records and sends telemetry data.
*/
export default class Telemetry extends Dispatcher {
+ /**
+ * The daemon config instance.
+ * @type {Config}
+ */
+ config = {
+ enabled: false,
+ eventsDir: null,
+ sendBatchSize: 10,
+ sendInterval: 60000, // 1 minute
+ sendTimeout: 60000, // 1 minute
+ url: null
+ };
+
+ /**
+ * The time, in milliseconds, that the last send was fired.
+ * @type {Number}
+ */
+ lastSend = null;
+
+ /**
+ * The machine id. This value is used to also determine if the telemetry system has been
+ * initialized.
+ * @type {String}
+ */
+ hardwareId = null;
+
+ /**
+ * A promise that is resolved when telemetry data is not being sent to the server.
+ * @type {Promise}
+ */
+ pending = Promise.resolve();
+
+ /**
+ * A flag that indicates if the telemetry system is running.
+ * @type {Boolean}
+ */
+ running = false;
+
+ /**
+ * The timer for sending telemetry data.
+ * @type {Timer}
+ */
+ sendTimer = null;
+
+ /**
+ * The session id.
+ * @type {String}
+ */
+ sessionId = uuid.v4();
+
/**
* Constructs an analytics instance.
*
@@ -56,56 +106,6 @@ export default class Telemetry extends Dispatcher {
*/
this.app = app;
- /**
- * The daemon config instance.
- * @type {Config}
- */
- this.config = {
- enabled: false,
- eventsDir: null,
- sendBatchSize: 10,
- sendInterval: 60000, // 1 minute
- sendTimeout: 60000, // 1 minute
- url: null
- };
-
- /**
- * The deploy type for the events.
- * @type {String}
- */
- this.environment = cfg.get('telemetry.environment') || 'production';
-
- /**
- * The time, in milliseconds, that the last send was fired.
- * @type {Number}
- */
- this.lastSend = null;
-
- /**
- * The machine id. This value is used to also determine if the telemetry system has been
- * initialized.
- * @type {String}
- */
- this.hardwareId = null;
-
- /**
- * A promise that is resolved when telemetry data is not being sent to the server.
- * @type {Promise}
- */
- this.pending = Promise.resolve();
-
- /**
- * The timer for sending telemetry data.
- * @type {Timer}
- */
- this.sendTimer = null;
-
- /**
- * The session id.
- * @type {String}
- */
- this.sessionId = uuid.v4();
-
/**
* The app version.
* @type {String}
@@ -180,7 +180,7 @@ export default class Telemetry extends Dispatcher {
id: this.sessionId
},
distribution: {
- environment: this.environment,
+ environment: this.config.environment,
version: this.version
}
};
@@ -213,7 +213,7 @@ export default class Telemetry extends Dispatcher {
* @access private
*/
addCrash(ctx) {
- if (this.environment !== 'production') {
+ if (this.config.environment !== 'production') {
return;
}
if (!ctx.request.message) {
@@ -233,7 +233,7 @@ export default class Telemetry extends Dispatcher {
* @access public
*/
async init(homeDir) {
- if (this.hardwareId) {
+ if (this.hardwareId || this.running) {
return;
}
@@ -245,6 +245,8 @@ export default class Telemetry extends Dispatcher {
this.hardwareId = await getMachineId(path.join(homeDir, '.mid'));
+ this.running = true;
+
// send any unsent events
this.sendEvents();
@@ -298,7 +300,7 @@ export default class Telemetry extends Dispatcher {
const scheduleSendEvents = () => {
// when flushing, we don't schedule a send
- if (!flush) {
+ if (!flush && this.running) {
this.sendTimer = setTimeout(() => this.sendEvents(), 1000);
}
};
@@ -309,29 +311,32 @@ export default class Telemetry extends Dispatcher {
}
let batch = [];
+ let files = fs.readdirSync(eventsDir).filter(name => jsonRegExp.test(name));
let counter = 0;
- for (const name of fs.readdirSync(eventsDir)) {
- if (jsonRegExp.test(name)) {
- const file = path.join(eventsDir, name);
-
- try {
- batch.push({
- evt: await fs.readJson(file),
- file
- });
- counter++;
- } catch (e) {
- // Rather then squelch the error we'll remove here
- log(`Failed to read ${highlight(file)}, removing`);
- await fs.remove(file);
- }
-
- // send batch if full
- if (batch.length >= sendBatchSize) {
- await this.sendBatch(batch);
- batch = [];
- }
+ for (let i = 0; i < files.length; i++) {
+ const file = path.join(eventsDir, files[i]);
+
+ try {
+ batch.push({
+ evt: await fs.readJson(file),
+ file
+ });
+ counter++;
+ } catch (e) {
+ // Rather then squelch the error we'll remove here
+ log(`Failed to read ${highlight(file)}, removing`);
+ await fs.remove(file);
+ }
+
+ // send batch if full
+ if (batch.length >= sendBatchSize) {
+ await this.sendBatch(batch);
+
+ // reset
+ batch = [];
+ i = -1;
+ files = fs.readdirSync(eventsDir).filter(name => jsonRegExp.test(name));
}
}
@@ -359,6 +364,7 @@ export default class Telemetry extends Dispatcher {
*/
async shutdown() {
clearTimeout(this.sendTimer);
+ this.running = false;
// wait for the pending post to finish
await this.pending;
@@ -382,6 +388,10 @@ export default class Telemetry extends Dispatcher {
// copy over the config
Object.assign(this.config, config);
+ if (!this.config.environment) {
+ this.config.environment = 'production';
+ }
+
// make sure things are sane
if (this.config.sendBatchSize) {
this.config.sendBatchSize = Math.max(this.config.sendBatchSize, 1);
diff --git a/packages/appcd-telemetry/test/test-telemetry.js b/packages/appcd-telemetry/test/test-telemetry.js
index c7754535d..25e675bc7 100644
--- a/packages/appcd-telemetry/test/test-telemetry.js
+++ b/packages/appcd-telemetry/test/test-telemetry.js
@@ -289,6 +289,8 @@ describe('telemetry', () => {
describe('Sending Events', () => {
afterEach(async function () {
+ this.timeout(10000);
+
if (this.telemetry) {
await this.telemetry.shutdown();
this.telemetry = null;
diff --git a/packages/appcd-util/CHANGELOG.md b/packages/appcd-util/CHANGELOG.md
index 6b014ee86..c889b836f 100644
--- a/packages/appcd-util/CHANGELOG.md
+++ b/packages/appcd-util/CHANGELOG.md
@@ -1,5 +1,7 @@
-# v1.1.8
+# v2.0.0
+ * BREAKING CHANGE: Bumped minimum supported Node.js version from `>=8.0.0` to `>=8.1.0` to fix
+ issue where 8.0.x didn't support `async_hooks.createHook()`, yet `appcd-util` was using it.
* chore: Updated dependencies
# v1.1.7 (Jun 4, 2019)
diff --git a/packages/appcd-util/package.json b/packages/appcd-util/package.json
index 9b97a7481..e3d0dda48 100644
--- a/packages/appcd-util/package.json
+++ b/packages/appcd-util/package.json
@@ -18,8 +18,8 @@
"dependencies": {
"appcd-fs": "^1.1.7",
"lodash.get": "^4.4.2",
- "semver": "^6.1.2",
- "source-map-support": "^0.5.12"
+ "semver": "^6.3.0",
+ "source-map-support": "^0.5.13"
},
"devDependencies": {
"appcd-gulp": "^2.1.1"
@@ -28,6 +28,6 @@
"bugs": "https://github.com/appcelerator/appc-daemon/issues",
"repository": "https://github.com/appcelerator/appc-daemon",
"engines": {
- "node": ">=8.0.0"
+ "node": ">=8.1.0"
}
}
diff --git a/packages/appcd-util/src/util.js b/packages/appcd-util/src/util.js
index 8aaaf32b9..e38fca979 100644
--- a/packages/appcd-util/src/util.js
+++ b/packages/appcd-util/src/util.js
@@ -1,3 +1,5 @@
+/* eslint-disable node/no-deprecated-api */
+
/* istanbul ignore if */
if (!Error.prepareStackTrace) {
require('source-map-support/register');
diff --git a/packages/appcd-winreg/package.json b/packages/appcd-winreg/package.json
index a6022d5fd..d474d2eba 100644
--- a/packages/appcd-winreg/package.json
+++ b/packages/appcd-winreg/package.json
@@ -16,7 +16,7 @@
"test": "gulp test"
},
"dependencies": {
- "source-map-support": "^0.5.12",
+ "source-map-support": "^0.5.13",
"winreg": "^1.2.4"
},
"devDependencies": {
diff --git a/packages/appcd/CHANGELOG.md b/packages/appcd/CHANGELOG.md
index 9055a7437..68146751f 100644
--- a/packages/appcd/CHANGELOG.md
+++ b/packages/appcd/CHANGELOG.md
@@ -1,5 +1,6 @@
# v2.7.1
+ * chore: Fixed eslint `hasOwnProperty` warnings.
* chore: Updated dependencies
# v2.7.0 (Jun 24, 2019)
diff --git a/packages/appcd/package.json b/packages/appcd/package.json
index 6a84ae8a0..cdf71d80f 100644
--- a/packages/appcd/package.json
+++ b/packages/appcd/package.json
@@ -37,11 +37,11 @@
"appcd-nodejs": "^2.0.0",
"appcd-path": "^1.1.6",
"appcd-util": "^1.1.7",
- "cli-kit": "^0.11.1",
+ "cli-kit": "^0.11.2",
"cli-table2": "^0.2.0",
"humanize": "^0.0.9",
- "source-map-support": "^0.5.12",
- "v8-compile-cache": "^2.0.3"
+ "source-map-support": "^0.5.13",
+ "v8-compile-cache": "^2.1.0"
},
"devDependencies": {
"appcd-gulp": "^2.1.1"
diff --git a/packages/appcd/src/cli.js b/packages/appcd/src/cli.js
index be98af76b..98f70eee0 100644
--- a/packages/appcd/src/cli.js
+++ b/packages/appcd/src/cli.js
@@ -6,7 +6,7 @@ import { getAppcdVersion } from './common';
const version = getAppcdVersion();
let banner;
-if (!process.env.hasOwnProperty('APPC_NPM_VERSION')) {
+if (!Object.prototype.hasOwnProperty.call(process.env, 'APPC_NPM_VERSION')) {
banner = `${appcdLogger.styles.highlight('Appcelerator Daemon')}, version ${version}\n`
+ 'Copyright (c) 2015-2019, Axway, Inc. All Rights Reserved.';
}
diff --git a/yarn.lock b/yarn.lock
index 3b522d9d5..f1a700297 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,41 +2,41 @@
# yarn lockfile v1
-"@babel/code-frame@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
- integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
+ integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
dependencies:
"@babel/highlight" "^7.0.0"
-"@babel/core@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.5.tgz#081f97e8ffca65a9b4b0fdc7e274e703f000c06a"
- integrity sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==
+"@babel/core@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30"
+ integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==
dependencies:
- "@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.4.4"
- "@babel/helpers" "^7.4.4"
- "@babel/parser" "^7.4.5"
+ "@babel/code-frame" "^7.5.5"
+ "@babel/generator" "^7.5.5"
+ "@babel/helpers" "^7.5.5"
+ "@babel/parser" "^7.5.5"
"@babel/template" "^7.4.4"
- "@babel/traverse" "^7.4.5"
- "@babel/types" "^7.4.4"
+ "@babel/traverse" "^7.5.5"
+ "@babel/types" "^7.5.5"
convert-source-map "^1.1.0"
debug "^4.1.0"
json5 "^2.1.0"
- lodash "^4.17.11"
+ lodash "^4.17.13"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.4.0", "@babel/generator@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041"
- integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==
+"@babel/generator@^7.4.0", "@babel/generator@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf"
+ integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==
dependencies:
- "@babel/types" "^7.4.4"
+ "@babel/types" "^7.5.5"
jsesc "^2.5.1"
- lodash "^4.17.11"
+ lodash "^4.17.13"
source-map "^0.5.0"
trim-right "^1.0.1"
@@ -56,16 +56,16 @@
"@babel/traverse" "^7.4.4"
"@babel/types" "^7.4.4"
-"@babel/helper-create-class-features-plugin@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz#fc3d690af6554cc9efc607364a82d48f58736dba"
- integrity sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA==
+"@babel/helper-create-class-features-plugin@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4"
+ integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg==
dependencies:
"@babel/helper-function-name" "^7.1.0"
- "@babel/helper-member-expression-to-functions" "^7.0.0"
+ "@babel/helper-member-expression-to-functions" "^7.5.5"
"@babel/helper-optimise-call-expression" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.4.4"
+ "@babel/helper-replace-supers" "^7.5.5"
"@babel/helper-split-export-declaration" "^7.4.4"
"@babel/helper-function-name@^7.1.0":
@@ -91,12 +91,12 @@
dependencies:
"@babel/types" "^7.4.4"
-"@babel/helper-member-expression-to-functions@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f"
- integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==
+"@babel/helper-member-expression-to-functions@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590"
+ integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.5.5"
"@babel/helper-module-imports@^7.0.0":
version "7.0.0"
@@ -106,16 +106,16 @@
"@babel/types" "^7.0.0"
"@babel/helper-module-transforms@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8"
- integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a"
+ integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-simple-access" "^7.1.0"
"@babel/helper-split-export-declaration" "^7.4.4"
"@babel/template" "^7.4.4"
- "@babel/types" "^7.4.4"
- lodash "^4.17.11"
+ "@babel/types" "^7.5.5"
+ lodash "^4.17.13"
"@babel/helper-optimise-call-expression@^7.0.0":
version "7.0.0"
@@ -140,15 +140,15 @@
"@babel/traverse" "^7.1.0"
"@babel/types" "^7.0.0"
-"@babel/helper-replace-supers@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27"
- integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==
+"@babel/helper-replace-supers@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2"
+ integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==
dependencies:
- "@babel/helper-member-expression-to-functions" "^7.0.0"
+ "@babel/helper-member-expression-to-functions" "^7.5.5"
"@babel/helper-optimise-call-expression" "^7.0.0"
- "@babel/traverse" "^7.4.4"
- "@babel/types" "^7.4.4"
+ "@babel/traverse" "^7.5.5"
+ "@babel/types" "^7.5.5"
"@babel/helper-simple-access@^7.1.0":
version "7.1.0"
@@ -175,41 +175,41 @@
"@babel/traverse" "^7.1.0"
"@babel/types" "^7.2.0"
-"@babel/helpers@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5"
- integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==
+"@babel/helpers@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e"
+ integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==
dependencies:
"@babel/template" "^7.4.4"
- "@babel/traverse" "^7.4.4"
- "@babel/types" "^7.4.4"
+ "@babel/traverse" "^7.5.5"
+ "@babel/types" "^7.5.5"
"@babel/highlight@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
- integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
+ version "7.5.0"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
+ integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.0.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872"
- integrity sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==
+"@babel/parser@^7.0.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b"
+ integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==
-"@babel/plugin-proposal-class-properties@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz#93a6486eed86d53452ab9bab35e368e9461198ce"
- integrity sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg==
+"@babel/plugin-proposal-class-properties@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4"
+ integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.4.4"
+ "@babel/helper-create-class-features-plugin" "^7.5.5"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-proposal-object-rest-spread@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005"
- integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==
+"@babel/plugin-proposal-object-rest-spread@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58"
+ integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.2.0"
@@ -221,30 +221,31 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-async-to-generator@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894"
- integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==
+"@babel/plugin-transform-async-to-generator@^7.5.0":
+ version "7.5.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e"
+ integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-remap-async-to-generator" "^7.1.0"
-"@babel/plugin-transform-destructuring@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f"
- integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==
+"@babel/plugin-transform-destructuring@^7.5.0":
+ version "7.5.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a"
+ integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-modules-commonjs@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e"
- integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==
+"@babel/plugin-transform-modules-commonjs@^7.5.0":
+ version "7.5.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74"
+ integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==
dependencies:
"@babel/helper-module-transforms" "^7.4.4"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-simple-access" "^7.1.0"
+ babel-plugin-dynamic-import-node "^2.3.0"
"@babel/plugin-transform-parameters@^7.4.4":
version "7.4.4"
@@ -255,14 +256,14 @@
"@babel/helper-get-function-arity" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/register@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.4.4.tgz#370a68ba36f08f015a8b35d4864176c6b65d7a23"
- integrity sha512-sn51H88GRa00+ZoMqCVgOphmswG4b7mhf9VOB0LUBAieykq2GnRFerlN+JQkO/ntT7wz4jaHNSRPg9IdMPEUkA==
+"@babel/register@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.5.5.tgz#40fe0d474c8c8587b28d6ae18a03eddad3dac3c1"
+ integrity sha512-pdd5nNR+g2qDkXZlW1yRCWFlNrAn2PPdnZUB72zjX4l1Vv4fMRRLwyf+n/idFCLI1UgVGboUU8oVziwTBiyNKQ==
dependencies:
core-js "^3.0.0"
find-cache-dir "^2.0.0"
- lodash "^4.17.11"
+ lodash "^4.17.13"
mkdirp "^0.5.1"
pirates "^4.0.0"
source-map-support "^0.5.9"
@@ -276,47 +277,47 @@
"@babel/parser" "^7.4.4"
"@babel/types" "^7.4.4"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216"
- integrity sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb"
+ integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==
dependencies:
- "@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.4.4"
+ "@babel/code-frame" "^7.5.5"
+ "@babel/generator" "^7.5.5"
"@babel/helper-function-name" "^7.1.0"
"@babel/helper-split-export-declaration" "^7.4.4"
- "@babel/parser" "^7.4.5"
- "@babel/types" "^7.4.4"
+ "@babel/parser" "^7.5.5"
+ "@babel/types" "^7.5.5"
debug "^4.1.0"
globals "^11.1.0"
- lodash "^4.17.11"
+ lodash "^4.17.13"
-"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0"
- integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==
+"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a"
+ integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==
dependencies:
esutils "^2.0.2"
- lodash "^4.17.11"
+ lodash "^4.17.13"
to-fast-properties "^2.0.0"
-"@evocateur/libnpmaccess@^3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@evocateur/libnpmaccess/-/libnpmaccess-3.1.0.tgz#e546ee4e4bedca54ed9303948ec54c985cec33e4"
- integrity sha512-bfrqZ0v+Il5TJBsgF2oyepeJg34K2pBItapzP+UT1QMIGpUh/Zc1pQql4jrafamZTqP3ZvdJxaElat8B5K3ICA==
+"@evocateur/libnpmaccess@^3.1.2":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845"
+ integrity sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg==
dependencies:
- "@evocateur/npm-registry-fetch" "^3.9.1"
+ "@evocateur/npm-registry-fetch" "^4.0.0"
aproba "^2.0.0"
figgy-pudding "^3.5.1"
get-stream "^4.0.0"
npm-package-arg "^6.1.0"
-"@evocateur/libnpmpublish@^1.2.0":
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/@evocateur/libnpmpublish/-/libnpmpublish-1.2.0.tgz#3e0d79fdc0a75f212adabb7c7e341b017effeac2"
- integrity sha512-sezhX9FSnPIyrBBvxVocVJVO1uIWPczf6rOmUZSntCWfQMraO8pWTFlDJbroFqPbEqFFHf3eyw8NQ0Eb7OLd1g==
+"@evocateur/libnpmpublish@^1.2.2":
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz#55df09d2dca136afba9c88c759ca272198db9f1a"
+ integrity sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg==
dependencies:
- "@evocateur/npm-registry-fetch" "^3.9.1"
+ "@evocateur/npm-registry-fetch" "^4.0.0"
aproba "^2.0.0"
figgy-pudding "^3.5.1"
get-stream "^4.0.0"
@@ -326,49 +327,49 @@
semver "^5.5.1"
ssri "^6.0.1"
-"@evocateur/npm-registry-fetch@^3.9.1":
- version "3.9.1"
- resolved "https://registry.yarnpkg.com/@evocateur/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz#75b3917320e559f6c91e26af17e62b085ec457a2"
- integrity sha512-6v1bHbcAypQ+te/1RGSNL4JkK6mcMtcZrUusqo5iKRtYSAig9UJXlOaCcBR+eLywt2DQMNpEwAj24jwWDX5G/w==
+"@evocateur/npm-registry-fetch@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#8c4c38766d8d32d3200fcb0a83f064b57365ed66"
+ integrity sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g==
dependencies:
JSONStream "^1.3.4"
bluebird "^3.5.1"
figgy-pudding "^3.4.1"
- lru-cache "^4.1.3"
- make-fetch-happen "^4.0.1"
+ lru-cache "^5.1.1"
+ make-fetch-happen "^5.0.0"
npm-package-arg "^6.1.0"
safe-buffer "^5.1.2"
-"@evocateur/pacote@^9.6.0":
- version "9.6.0"
- resolved "https://registry.yarnpkg.com/@evocateur/pacote/-/pacote-9.6.0.tgz#3f0d08fb81c572289a2dfa981e7f97b6dd83cef2"
- integrity sha512-nKx8EPxXhzqNfePbqC6603z7Kkf6GBS2q+SNGtBS/bCgS5Q+p3OVR6MXKOkpvC3WHse98W2WLu8QaV9axtfxyw==
+"@evocateur/pacote@^9.6.3":
+ version "9.6.3"
+ resolved "https://registry.yarnpkg.com/@evocateur/pacote/-/pacote-9.6.3.tgz#bcd7adbd3c2ef303aa89bd24166f06dd9c080d89"
+ integrity sha512-ExqNqcbdHQprEgKnY/uQz7WRtyHRbQxRl4JnVkSkmtF8qffRrF9K+piZKNLNSkRMOT/3H0e3IP44QVCHaXMWOQ==
dependencies:
- "@evocateur/npm-registry-fetch" "^3.9.1"
+ "@evocateur/npm-registry-fetch" "^4.0.0"
bluebird "^3.5.3"
- cacache "^11.3.2"
+ cacache "^12.0.0"
figgy-pudding "^3.5.1"
get-stream "^4.1.0"
- glob "^7.1.3"
+ glob "^7.1.4"
lru-cache "^5.1.1"
- make-fetch-happen "^4.0.1"
+ make-fetch-happen "^5.0.0"
minimatch "^3.0.4"
minipass "^2.3.5"
mississippi "^3.0.0"
mkdirp "^0.5.1"
- normalize-package-data "^2.4.0"
+ normalize-package-data "^2.5.0"
npm-package-arg "^6.1.0"
- npm-packlist "^1.1.12"
+ npm-packlist "^1.4.4"
npm-pick-manifest "^2.2.3"
osenv "^0.1.5"
promise-inflight "^1.0.1"
promise-retry "^1.1.1"
protoduck "^5.0.1"
- rimraf "^2.6.2"
- safe-buffer "^5.1.2"
- semver "^5.6.0"
+ rimraf "^2.6.3"
+ safe-buffer "^5.2.0"
+ semver "^5.7.0"
ssri "^6.0.1"
- tar "^4.4.8"
+ tar "^4.4.10"
unique-filename "^1.1.1"
which "^1.3.1"
@@ -391,70 +392,70 @@
normalize-path "^2.0.1"
through2 "^2.0.3"
-"@lerna/add@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.15.0.tgz#10be562f43cde59b60f299083d54ac39520ec60a"
- integrity sha512-+KrG4GFy/6FISZ+DwWf5Fj5YB4ESa4VTnSn/ujf3VEda6dxngHPN629j+TcPbsdOxUYVah+HuZbC/B8NnkrKpQ==
- dependencies:
- "@evocateur/pacote" "^9.6.0"
- "@lerna/bootstrap" "3.15.0"
- "@lerna/command" "3.15.0"
- "@lerna/filter-options" "3.14.2"
- "@lerna/npm-conf" "3.13.0"
+"@lerna/add@3.16.2":
+ version "3.16.2"
+ resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.16.2.tgz#90ecc1be7051cfcec75496ce122f656295bd6e94"
+ integrity sha512-RAAaF8aODPogj2Ge9Wj3uxPFIBGpog9M+HwSuq03ZnkkO831AmasCTJDqV+GEpl1U2DvnhZQEwHpWmTT0uUeEw==
+ dependencies:
+ "@evocateur/pacote" "^9.6.3"
+ "@lerna/bootstrap" "3.16.2"
+ "@lerna/command" "3.16.0"
+ "@lerna/filter-options" "3.16.0"
+ "@lerna/npm-conf" "3.16.0"
"@lerna/validation-error" "3.13.0"
dedent "^0.7.0"
npm-package-arg "^6.1.0"
- p-map "^1.2.0"
- semver "^5.5.0"
+ p-map "^2.1.0"
+ semver "^6.2.0"
-"@lerna/batch-packages@3.14.0":
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/@lerna/batch-packages/-/batch-packages-3.14.0.tgz#0208663bab3ddbf57956b370aaec4c9ebee6c800"
- integrity sha512-RlBkQVNTqk1qvn6PFWiWNiskllUHh6tXbTVm43mZRNd+vhAyvrQC8RWJxH0ECVvnFAt9rSNGRIVbEJ31WnNQLg==
+"@lerna/batch-packages@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/batch-packages/-/batch-packages-3.16.0.tgz#1c16cb697e7d718177db744cbcbdac4e30253c8c"
+ integrity sha512-7AdMkANpubY/FKFI01im01tlx6ygOBJ/0JcixMUWoWP/7Ds3SWQF22ID6fbBr38jUWptYLDs2fagtTDL7YUPuA==
dependencies:
- "@lerna/package-graph" "3.14.0"
+ "@lerna/package-graph" "3.16.0"
npmlog "^4.1.2"
-"@lerna/bootstrap@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.15.0.tgz#f53e0bbbbfb8367e609a06378409bfc673ff2930"
- integrity sha512-4AxsPKKbgj2Ju03qDddQTpOHvpqnwd0yaiEU/aCcWv/4tDTe79NqUne2Z3+P2WZY0Zzb8+nUKcskwYBMTeq+Mw==
- dependencies:
- "@lerna/batch-packages" "3.14.0"
- "@lerna/command" "3.15.0"
- "@lerna/filter-options" "3.14.2"
- "@lerna/has-npm-version" "3.14.2"
- "@lerna/npm-install" "3.14.2"
- "@lerna/package-graph" "3.14.0"
+"@lerna/bootstrap@3.16.2":
+ version "3.16.2"
+ resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.16.2.tgz#be268d940221d3c3270656b9b791b492559ad9d8"
+ integrity sha512-I+gs7eh6rv9Vyd+CwqL7sftRfOOsSzCle8cv/CGlMN7/p7EAVhxEdAw8SYoHIKHzipXszuqqy1Y3opyleD0qdA==
+ dependencies:
+ "@lerna/batch-packages" "3.16.0"
+ "@lerna/command" "3.16.0"
+ "@lerna/filter-options" "3.16.0"
+ "@lerna/has-npm-version" "3.16.0"
+ "@lerna/npm-install" "3.16.0"
+ "@lerna/package-graph" "3.16.0"
"@lerna/pulse-till-done" "3.13.0"
"@lerna/rimraf-dir" "3.14.2"
- "@lerna/run-lifecycle" "3.14.0"
- "@lerna/run-parallel-batches" "3.13.0"
- "@lerna/symlink-binary" "3.14.2"
- "@lerna/symlink-dependencies" "3.14.2"
+ "@lerna/run-lifecycle" "3.16.2"
+ "@lerna/run-parallel-batches" "3.16.0"
+ "@lerna/symlink-binary" "3.16.2"
+ "@lerna/symlink-dependencies" "3.16.2"
"@lerna/validation-error" "3.13.0"
dedent "^0.7.0"
- get-port "^3.2.0"
- multimatch "^2.1.0"
+ get-port "^4.2.0"
+ multimatch "^3.0.0"
npm-package-arg "^6.1.0"
npmlog "^4.1.2"
p-finally "^1.0.0"
- p-map "^1.2.0"
+ p-map "^2.1.0"
p-map-series "^1.0.0"
p-waterfall "^1.0.0"
read-package-tree "^5.1.6"
- semver "^5.5.0"
+ semver "^6.2.0"
-"@lerna/changed@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.15.0.tgz#20db9d992d697e4288c260aa38b989dcb93f4b40"
- integrity sha512-Hns1ssI9T9xOTGVc7PT2jUaqzsSkxV3hV/Y7iFO0uKTk+fduyTwGTHU9A/ybQ/xi/9iaJbvaXyjxKiGoEnzmhg==
+"@lerna/changed@3.16.4":
+ version "3.16.4"
+ resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.16.4.tgz#c3e727d01453513140eee32c94b695de577dc955"
+ integrity sha512-NCD7XkK744T23iW0wqKEgF4R9MYmReUbyHCZKopFnsNpQdqumc3SOIvQUAkKCP6hQJmYvxvOieoVgy/CVDpZ5g==
dependencies:
- "@lerna/collect-updates" "3.14.2"
- "@lerna/command" "3.15.0"
- "@lerna/listable" "3.14.0"
+ "@lerna/collect-updates" "3.16.0"
+ "@lerna/command" "3.16.0"
+ "@lerna/listable" "3.16.0"
"@lerna/output" "3.13.0"
- "@lerna/version" "3.15.0"
+ "@lerna/version" "3.16.4"
"@lerna/check-working-tree@3.14.2":
version "3.14.2"
@@ -474,17 +475,17 @@
execa "^1.0.0"
strong-log-transformer "^2.0.0"
-"@lerna/clean@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.15.0.tgz#a94da50908a80ba443a0a682706aca79ac2ecf27"
- integrity sha512-D1BN7BnJk6YjrSR7E7RiCmWiFVWDo3L+OSe6zDq6rNNYexPBtSi2JOCeF/Dibi3jd2luVu0zkVpUtuEEdPiD+A==
+"@lerna/clean@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.16.0.tgz#1c134334cacea1b1dbeacdc580e8b9240db8efa1"
+ integrity sha512-5P9U5Y19WmYZr7UAMGXBpY7xCRdlR7zhHy8MAPDKVx70rFIBS6nWXn5n7Kntv74g7Lm1gJ2rsiH5tj1OPcRJgg==
dependencies:
- "@lerna/command" "3.15.0"
- "@lerna/filter-options" "3.14.2"
+ "@lerna/command" "3.16.0"
+ "@lerna/filter-options" "3.16.0"
"@lerna/prompt" "3.13.0"
"@lerna/pulse-till-done" "3.13.0"
"@lerna/rimraf-dir" "3.14.2"
- p-map "^1.2.0"
+ p-map "^2.1.0"
p-map-series "^1.0.0"
p-waterfall "^1.0.0"
@@ -508,78 +509,79 @@
figgy-pudding "^3.5.1"
npmlog "^4.1.2"
-"@lerna/collect-updates@3.14.2":
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.14.2.tgz#396201f6568ec5916bf2c11e7a29b0931fcd3e5b"
- integrity sha512-+zSQ2ZovH8Uc0do5dR+sk8VvRJc6Xl+ZnJJGESIl17KSpEw/lVjcOyt6f3BP+WHn+iSOjMWcGvUVA601FIEdZw==
+"@lerna/collect-updates@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.16.0.tgz#6db3ce8a740a4e2b972c033a63bdfb77f2553d8c"
+ integrity sha512-HwAIl815X2TNlmcp28zCrSdXfoZWNP7GJPEqNWYk7xDJTYLqQ+SrmKUePjb3AMGBwYAraZSEJLbHdBpJ5+cHmQ==
dependencies:
"@lerna/child-process" "3.14.2"
"@lerna/describe-ref" "3.14.2"
minimatch "^3.0.4"
npmlog "^4.1.2"
- slash "^1.0.0"
+ slash "^2.0.0"
-"@lerna/command@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.15.0.tgz#e1dc1319054f1cf0b135aa0c5730f3335641a0ca"
- integrity sha512-dZqr4rKFN+veuXakIQ1DcGUpzBgcWKaYFNN4O6/skOdVQaEfGefzo1sZET+q7k/BkypxkhXHXpv5UqqSuL/EHQ==
+"@lerna/command@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.16.0.tgz#ba3dba49cb5ce4d11b48269cf95becd86e30773f"
+ integrity sha512-u7tE4GC4/gfbPA9eQg+0ulnoJ+PMoMqomx033r/IxqZrHtmJR9+pF/37S0fsxJ2hX/RMFPC7c9Q/i8NEufSpdQ==
dependencies:
"@lerna/child-process" "3.14.2"
- "@lerna/package-graph" "3.14.0"
- "@lerna/project" "3.15.0"
+ "@lerna/package-graph" "3.16.0"
+ "@lerna/project" "3.16.0"
"@lerna/validation-error" "3.13.0"
"@lerna/write-log-file" "3.13.0"
dedent "^0.7.0"
execa "^1.0.0"
- is-ci "^1.0.10"
- lodash "^4.17.5"
+ is-ci "^2.0.0"
+ lodash "^4.17.14"
npmlog "^4.1.2"
-"@lerna/conventional-commits@3.14.0":
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.14.0.tgz#24f643550dc29d4f1249cc26d0eb453d7a1c513d"
- integrity sha512-hGZ2qQZ9uEGf2eeIiIpEodSs9Qkkf/2uYEtNT7QN1RYISPUh6/lKGBssc5dpbCF64aEuxmemWLdlDf1ogG6++w==
+"@lerna/conventional-commits@3.16.4":
+ version "3.16.4"
+ resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.16.4.tgz#bf464f11b2f6534dad204db00430e1651b346a04"
+ integrity sha512-QSZJ0bC9n6FVaf+7KDIq5zMv8WnHXnwhyL5jG1Nyh3SgOg9q2uflqh7YsYB+G6FwaRfnPaKosh6obijpYg0llA==
dependencies:
"@lerna/validation-error" "3.13.0"
conventional-changelog-angular "^5.0.3"
conventional-changelog-core "^3.1.6"
- conventional-recommended-bump "^4.0.4"
- fs-extra "^7.0.0"
+ conventional-recommended-bump "^5.0.0"
+ fs-extra "^8.1.0"
get-stream "^4.0.0"
+ lodash.template "^4.5.0"
npm-package-arg "^6.1.0"
npmlog "^4.1.2"
- pify "^3.0.0"
- semver "^5.5.0"
+ pify "^4.0.1"
+ semver "^6.2.0"
-"@lerna/create-symlink@3.14.0":
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-3.14.0.tgz#f40ae06e8cebe70c694368ebf9a4af5ab380fbea"
- integrity sha512-Kw51HYOOi6UfCKncqkgEU1k/SYueSBXgkNL91FR8HAZH7EPSRTEtp9mnJo568g0+Hog5C+3cOaWySwhHpRG29A==
+"@lerna/create-symlink@3.16.2":
+ version "3.16.2"
+ resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-3.16.2.tgz#412cb8e59a72f5a7d9463e4e4721ad2070149967"
+ integrity sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw==
dependencies:
- cmd-shim "^2.0.2"
- fs-extra "^7.0.0"
+ "@zkochan/cmd-shim" "^3.1.0"
+ fs-extra "^8.1.0"
npmlog "^4.1.2"
-"@lerna/create@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.15.0.tgz#27bfadcbdf71d34226aa82432293f5290f7ab1aa"
- integrity sha512-doXGt0HTwTQl8GkC2tOrraA/5OWbz35hJqi7Dsl3Fl0bAxiv9XmF3LykHFJ+YTDHfGpdoJ8tKu66f/VKP16G0w==
+"@lerna/create@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.16.0.tgz#4de841ec7d98b29bb19fb7d6ad982e65f7a150e8"
+ integrity sha512-OZApR1Iz7awutbmj4sAArwhqCyKgcrnw9rH0aWAUrkYWrD1w4TwkvAcYAsfx5GpQGbLQwoXhoyyPwPfZRRWz3Q==
dependencies:
- "@evocateur/pacote" "^9.6.0"
+ "@evocateur/pacote" "^9.6.3"
"@lerna/child-process" "3.14.2"
- "@lerna/command" "3.15.0"
- "@lerna/npm-conf" "3.13.0"
+ "@lerna/command" "3.16.0"
+ "@lerna/npm-conf" "3.16.0"
"@lerna/validation-error" "3.13.0"
camelcase "^5.0.0"
dedent "^0.7.0"
- fs-extra "^7.0.0"
- globby "^8.0.1"
+ fs-extra "^8.1.0"
+ globby "^9.2.0"
init-package-json "^1.10.3"
npm-package-arg "^6.1.0"
p-reduce "^1.0.0"
- pify "^3.0.0"
- semver "^5.5.0"
- slash "^1.0.0"
+ pify "^4.0.1"
+ semver "^6.2.0"
+ slash "^2.0.0"
validate-npm-package-license "^3.0.3"
validate-npm-package-name "^3.0.0"
whatwg-url "^7.0.0"
@@ -592,44 +594,44 @@
"@lerna/child-process" "3.14.2"
npmlog "^4.1.2"
-"@lerna/diff@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.15.0.tgz#573d6f58f6809d16752dcfab74c5e286b6678371"
- integrity sha512-N1Pr0M554Bt+DlVoD+DXWGh92gcq6G9icn8sH5GSqfwi0XCpPNJ2i1BNEZpUQ6ulLWOMa1YHR4PypPxecRGBjA==
+"@lerna/diff@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.16.0.tgz#6d09a786f9f5b343a2fdc460eb0be08a05b420aa"
+ integrity sha512-QUpVs5TPl8vBIne10/vyjUxanQBQQp7Lk3iaB8MnCysKr0O+oy7trWeFVDPEkBTCD177By7yPGyW5Yey1nCBbA==
dependencies:
"@lerna/child-process" "3.14.2"
- "@lerna/command" "3.15.0"
+ "@lerna/command" "3.16.0"
"@lerna/validation-error" "3.13.0"
npmlog "^4.1.2"
-"@lerna/exec@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.15.0.tgz#b31510f47255367eb0d3e4a4f7b6ef8f7e41b985"
- integrity sha512-YuXPd64TNG9wbb3lRvyMARQbdlbMZ1bJZ+GCm0enivnIWUyg0qtBDcfPY2dWpIgOif04zx+K/gmOX4lCaGM4UQ==
+"@lerna/exec@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.16.0.tgz#2b6c033cee46181b6eede0eb12aad5c2c0181e89"
+ integrity sha512-mH3O5NXf/O88jBaBBTUf+d56CUkxpg782s3Jxy7HWbVuSUULt3iMRPTh+zEXO5/555etsIVVDDyUR76meklrJA==
dependencies:
"@lerna/child-process" "3.14.2"
- "@lerna/command" "3.15.0"
- "@lerna/filter-options" "3.14.2"
- "@lerna/run-topologically" "3.14.0"
+ "@lerna/command" "3.16.0"
+ "@lerna/filter-options" "3.16.0"
+ "@lerna/run-topologically" "3.16.0"
"@lerna/validation-error" "3.13.0"
- p-map "^1.2.0"
+ p-map "^2.1.0"
-"@lerna/filter-options@3.14.2":
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.14.2.tgz#7ba91cb54ff3fd9f4650ad8d7c40bc1075e44c2d"
- integrity sha512-Ct8oYvRttbYB9JalngHhirb8o9ZVyLm5a9MpXNevXoHiu6j0vNhI19BQCwNnrL6wZvEHJnzPuUl/jO23tWxemg==
+"@lerna/filter-options@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.16.0.tgz#b1660b4480c02a5c6efa4d0cd98b9afde4ed0bba"
+ integrity sha512-InIi1fF8+PxpCwir9bIy+pGxrdE6hvN0enIs1eNGCVS1TTE8osNgiZXa838bMQ1yaEccdcnVX6Z03BNKd56kNg==
dependencies:
- "@lerna/collect-updates" "3.14.2"
- "@lerna/filter-packages" "3.13.0"
+ "@lerna/collect-updates" "3.16.0"
+ "@lerna/filter-packages" "3.16.0"
dedent "^0.7.0"
-"@lerna/filter-packages@3.13.0":
- version "3.13.0"
- resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-3.13.0.tgz#f5371249e7e1a15928e5e88c544a242e0162c21c"
- integrity sha512-RWiZWyGy3Mp7GRVBn//CacSnE3Kw82PxE4+H6bQ3pDUw/9atXn7NRX+gkBVQIYeKamh7HyumJtyOKq3Pp9BADQ==
+"@lerna/filter-packages@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-3.16.0.tgz#7d34dc8530c71016263d6f67dc65308ecf11c9fc"
+ integrity sha512-eGFzQTx0ogkGDCnbTuXqssryR6ilp8+dcXt6B+aq1MaqL/vOJRZyqMm4TY3CUOUnzZCi9S2WWyMw3PnAJOF+kg==
dependencies:
"@lerna/validation-error" "3.13.0"
- multimatch "^2.1.0"
+ multimatch "^3.0.0"
npmlog "^4.1.2"
"@lerna/get-npm-exec-opts@3.13.0":
@@ -639,23 +641,23 @@
dependencies:
npmlog "^4.1.2"
-"@lerna/get-packed@3.13.0":
- version "3.13.0"
- resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-3.13.0.tgz#335e40d77f3c1855aa248587d3e0b2d8f4b06e16"
- integrity sha512-EgSim24sjIjqQDC57bgXD9l22/HCS93uQBbGpkzEOzxAVzEgpZVm7Fm1t8BVlRcT2P2zwGnRadIvxTbpQuDPTg==
+"@lerna/get-packed@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-3.16.0.tgz#1b316b706dcee86c7baa55e50b087959447852ff"
+ integrity sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw==
dependencies:
- fs-extra "^7.0.0"
+ fs-extra "^8.1.0"
ssri "^6.0.1"
tar "^4.4.8"
-"@lerna/github-client@3.14.2":
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.14.2.tgz#a743792b51cd9bdfb785186e429568827a6372eb"
- integrity sha512-+2Xh7t4qVmXiXE2utPnh5T7YwSltG74JP7c+EiooRY5+3zjh9MpPOcTKxVY3xKclzpsyXMohk2KpTF4tzA5rrg==
+"@lerna/github-client@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.16.0.tgz#619874e461641d4f59ab1b3f1a7ba22dba88125d"
+ integrity sha512-IVJjcKjkYaUEPJsDyAblHGEFFNKCRyMagbIDm14L7Ab94ccN6i4TKOqAFEJn2SJHYvKKBdp3Zj2zNlASOMe3DA==
dependencies:
"@lerna/child-process" "3.14.2"
- "@octokit/plugin-enterprise-rest" "^2.1.1"
- "@octokit/rest" "^16.16.0"
+ "@octokit/plugin-enterprise-rest" "^3.6.1"
+ "@octokit/rest" "^16.28.4"
git-url-parse "^11.1.2"
npmlog "^4.1.2"
@@ -673,124 +675,124 @@
resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1"
integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==
-"@lerna/has-npm-version@3.14.2":
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.14.2.tgz#ac17f7c68e92114b8332b95ae6cffec9c0d67a7b"
- integrity sha512-cG+z5bB8JPd5f+nT2eLN2LmKg06O11AxlnUxgw2W7cLyc7cnsmMSp/rxt2JBMwW2r4Yn+CLLJIRwJZ2Es8jFSw==
+"@lerna/has-npm-version@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.16.0.tgz#55764a4ce792f0c8553cf996a17f554b9e843288"
+ integrity sha512-TIY036dA9J8OyTrZq9J+it2DVKifL65k7hK8HhkUPpitJkw6jwbMObA/8D40LOGgWNPweJWqmlrTbRSwsR7DrQ==
dependencies:
"@lerna/child-process" "3.14.2"
- semver "^5.5.0"
+ semver "^6.2.0"
-"@lerna/import@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.15.0.tgz#47f2da52059a96bb08a4c09e18d985258fce9ce1"
- integrity sha512-4GKQgeTXBTwMbZNkYyPdQIVA41HIISD7D6XRNrDaG0falUfvoPsknijQPCBmGqeh66u1Fcn2+4lkL3OCTj2FMg==
+"@lerna/import@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.16.0.tgz#b57cb453f4acfc60f6541fcbba10674055cb179d"
+ integrity sha512-trsOmGHzw0rL/f8BLNvd+9PjoTkXq2Dt4/V2UCha254hMQaYutbxcYu8iKPxz9x86jSPlH7FpbTkkHXDsoY7Yg==
dependencies:
"@lerna/child-process" "3.14.2"
- "@lerna/command" "3.15.0"
+ "@lerna/command" "3.16.0"
"@lerna/prompt" "3.13.0"
"@lerna/pulse-till-done" "3.13.0"
"@lerna/validation-error" "3.13.0"
dedent "^0.7.0"
- fs-extra "^7.0.0"
+ fs-extra "^8.1.0"
p-map-series "^1.0.0"
-"@lerna/init@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.15.0.tgz#bda36de44c365972f87cbd287fe85b6fb7bb1070"
- integrity sha512-VOqH6kFbFtfUbXxhSqXKY6bjnVp9nLuLRI6x9tVHOANX2LmSlXm17OUGBnNt+eM4uJLuiUsAR8nTlpCiz//lPQ==
+"@lerna/init@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.16.0.tgz#31e0d66bbededee603338b487a42674a072b7a7d"
+ integrity sha512-Ybol/x5xMtBgokx4j7/Y3u0ZmNh0NiSWzBFVaOs2NOJKvuqrWimF67DKVz7yYtTYEjtaMdug64ohFF4jcT/iag==
dependencies:
"@lerna/child-process" "3.14.2"
- "@lerna/command" "3.15.0"
- fs-extra "^7.0.0"
- p-map "^1.2.0"
- write-json-file "^2.3.0"
-
-"@lerna/link@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.15.0.tgz#718b4116a8eacb3fc73414ae8d97f8fdaf8125da"
- integrity sha512-yKHuifADINobvDOLljBGkVGpVwy6J3mg5p9lQXBdOLXBoIKC8o/UKBR9JvZMFvT/Iy6zn6FPy1v5lz9iU1Ib0Q==
- dependencies:
- "@lerna/command" "3.15.0"
- "@lerna/package-graph" "3.14.0"
- "@lerna/symlink-dependencies" "3.14.2"
- p-map "^1.2.0"
- slash "^1.0.0"
-
-"@lerna/list@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.15.0.tgz#4e401c1ad990bb12bd38298cb61d21136420ff68"
- integrity sha512-8SvxnlfAnbEzQDf2NL0IxWyUuqWTykF9cHt5/f5TOzgESClpaOkDtqwh/UlE8nVTzWMnxnQUPQi3UTKyJD3i3g==
- dependencies:
- "@lerna/command" "3.15.0"
- "@lerna/filter-options" "3.14.2"
- "@lerna/listable" "3.14.0"
+ "@lerna/command" "3.16.0"
+ fs-extra "^8.1.0"
+ p-map "^2.1.0"
+ write-json-file "^3.2.0"
+
+"@lerna/link@3.16.2":
+ version "3.16.2"
+ resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.16.2.tgz#6c3a5658f6448a64dddca93d9348ac756776f6f6"
+ integrity sha512-eCPg5Lo8HT525fIivNoYF3vWghO3UgEVFdbsiPmhzwI7IQyZro5HWYzLtywSAdEog5XZpd2Bbn0CsoHWBB3gww==
+ dependencies:
+ "@lerna/command" "3.16.0"
+ "@lerna/package-graph" "3.16.0"
+ "@lerna/symlink-dependencies" "3.16.2"
+ p-map "^2.1.0"
+ slash "^2.0.0"
+
+"@lerna/list@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.16.0.tgz#883c00b2baf1e03c93e54391372f67a01b773c2f"
+ integrity sha512-TkvstoPsgKqqQ0KfRumpsdMXfRSEhdXqOLq519XyI5IRWYxhoqXqfi8gG37UoBPhBNoe64japn5OjphF3rOmQA==
+ dependencies:
+ "@lerna/command" "3.16.0"
+ "@lerna/filter-options" "3.16.0"
+ "@lerna/listable" "3.16.0"
"@lerna/output" "3.13.0"
-"@lerna/listable@3.14.0":
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-3.14.0.tgz#08f4c78e0466568e8e8a57d4ad09537f2bb7bbb9"
- integrity sha512-ZK44Mo8xf/N97eQZ236SPSq0ek6+gk4HqHIx05foEMZVV1iIDH4a/nblLsJNjGQVsIdMYFPaqNJ0z+ZQfiJazQ==
+"@lerna/listable@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-3.16.0.tgz#e6dc47a2d5a6295222663486f50e5cffc580f043"
+ integrity sha512-mtdAT2EEECqrJSDm/aXlOUFr1MRE4p6hppzY//Klp05CogQy6uGaKk+iKG5yyCLaOXFFZvG4HfO11CmoGSDWzw==
dependencies:
- "@lerna/query-graph" "3.14.0"
+ "@lerna/query-graph" "3.16.0"
chalk "^2.3.1"
columnify "^1.5.4"
-"@lerna/log-packed@3.13.0":
- version "3.13.0"
- resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-3.13.0.tgz#497b5f692a8d0e3f669125da97b0dadfd9e480f3"
- integrity sha512-Rmjrcz+6aM6AEcEVWmurbo8+AnHOvYtDpoeMMJh9IZ9SmZr2ClXzmD7wSvjTQc8BwOaiWjjC/ukcT0UYA2m7wg==
+"@lerna/log-packed@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-3.16.0.tgz#f83991041ee77b2495634e14470b42259fd2bc16"
+ integrity sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ==
dependencies:
- byte-size "^4.0.3"
+ byte-size "^5.0.1"
columnify "^1.5.4"
has-unicode "^2.0.1"
npmlog "^4.1.2"
-"@lerna/npm-conf@3.13.0":
- version "3.13.0"
- resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-3.13.0.tgz#6b434ed75ff757e8c14381b9bbfe5d5ddec134a7"
- integrity sha512-Jg2kANsGnhg+fbPEzE0X9nX5oviEAvWj0nYyOkcE+cgWuT7W0zpnPXC4hA4C5IPQGhwhhh0IxhWNNHtjTuw53g==
+"@lerna/npm-conf@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-3.16.0.tgz#1c10a89ae2f6c2ee96962557738685300d376827"
+ integrity sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA==
dependencies:
config-chain "^1.1.11"
- pify "^3.0.0"
+ pify "^4.0.1"
-"@lerna/npm-dist-tag@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-3.15.0.tgz#262dd1e67a4cf82ae78fadfe02622ebce4add078"
- integrity sha512-lnbdwc4Ebs7/EI9fTIgbH3dxXnP+SuCcGhG7P5ZjOqo67SY09sRZGcygEzabpvIwXvKpBF8vCd4xxzjnF2u+PA==
+"@lerna/npm-dist-tag@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-3.16.0.tgz#b2184cee5e1f291277396854820e1117a544b7ee"
+ integrity sha512-MQrBkqJJB9+eNphuj9w90QPMOs4NQXMuSRk9NqzeFunOmdDopPCV0Q7IThSxEuWnhJ2n3B7G0vWUP7tNMPdqIQ==
dependencies:
- "@evocateur/npm-registry-fetch" "^3.9.1"
- "@lerna/otplease" "3.14.0"
+ "@evocateur/npm-registry-fetch" "^4.0.0"
+ "@lerna/otplease" "3.16.0"
figgy-pudding "^3.5.1"
npm-package-arg "^6.1.0"
npmlog "^4.1.2"
-"@lerna/npm-install@3.14.2":
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.14.2.tgz#fd22ff432f8b7cbe05bedfd36b0506482f1a4732"
- integrity sha512-JYJJRtLETrGpcQZa8Rj16vbye399RqnaXmJlZuZ2twjJ2DYVYtwkfsGEOdvdaKw5KVOEpWcAxBA9OMmKQtCLQw==
+"@lerna/npm-install@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.16.0.tgz#8ec76a7a13b183bde438fd46296bf7a0d6f86017"
+ integrity sha512-APUOIilZCzDzce92uLEwzt1r7AEMKT/hWA1ThGJL+PO9Rn8A95Km3o2XZAYG4W0hR+P4O2nSVuKbsjQtz8CjFQ==
dependencies:
"@lerna/child-process" "3.14.2"
"@lerna/get-npm-exec-opts" "3.13.0"
- fs-extra "^7.0.0"
+ fs-extra "^8.1.0"
npm-package-arg "^6.1.0"
npmlog "^4.1.2"
signal-exit "^3.0.2"
write-pkg "^3.1.0"
-"@lerna/npm-publish@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.15.0.tgz#89126d74ec97186475767b852954a5f55b732a71"
- integrity sha512-G7rcNcSGjG0La8eHPXDvCvoNXbwNnP6XJ+GPh3CH5xiR/nikfLOa+Bfm4ytdjVWWxnKfCT4qyMTCoV1rROlqQQ==
+"@lerna/npm-publish@3.16.2":
+ version "3.16.2"
+ resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.16.2.tgz#a850b54739446c4aa766a0ceabfa9283bb0be676"
+ integrity sha512-tGMb9vfTxP57vUV5svkBQxd5Tzc+imZbu9ZYf8Mtwe0+HYfDjNiiHLIQw7G95w4YRdc5KsCE8sQ0uSj+f2soIg==
dependencies:
- "@evocateur/libnpmpublish" "^1.2.0"
- "@lerna/otplease" "3.14.0"
- "@lerna/run-lifecycle" "3.14.0"
+ "@evocateur/libnpmpublish" "^1.2.2"
+ "@lerna/otplease" "3.16.0"
+ "@lerna/run-lifecycle" "3.16.2"
figgy-pudding "^3.5.1"
- fs-extra "^7.0.0"
+ fs-extra "^8.1.0"
npm-package-arg "^6.1.0"
npmlog "^4.1.2"
- pify "^3.0.0"
+ pify "^4.0.1"
read-package-json "^2.0.13"
"@lerna/npm-run-script@3.14.2":
@@ -802,10 +804,10 @@
"@lerna/get-npm-exec-opts" "3.13.0"
npmlog "^4.1.2"
-"@lerna/otplease@3.14.0":
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-3.14.0.tgz#b539fd3e7a08452fc0db3b10010ca3cf0e4a73e7"
- integrity sha512-rYAWzaYZ81bwnrmTkYWGgcc13bl/6DlG7pjWQWNGAJNLzO5zzj0xmXN5sMFJnNvDpSiS/ZS1sIuPvb4xnwLUkg==
+"@lerna/otplease@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-3.16.0.tgz#de66aec4f3e835a465d7bea84b58a4ab6590a0fa"
+ integrity sha512-uqZ15wYOHC+/V0WnD2iTLXARjvx3vNrpiIeyIvVlDB7rWse9mL4egex/QSgZ+lDx1OID7l2kgvcUD9cFpbqB7Q==
dependencies:
"@lerna/prompt" "3.13.0"
figgy-pudding "^3.5.1"
@@ -817,64 +819,64 @@
dependencies:
npmlog "^4.1.2"
-"@lerna/pack-directory@3.14.2":
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-3.14.2.tgz#577b8ebf867c9b636a2e4659a27552ee24d83b9d"
- integrity sha512-b3LnJEmIml3sDj94TQT8R+kVyrDlmE7Su0WwcBYZDySXPMSZ38WA2/2Xjy/EWhXlFxp/nUJKyUG78nDrZ/00Uw==
+"@lerna/pack-directory@3.16.4":
+ version "3.16.4"
+ resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-3.16.4.tgz#3eae5f91bdf5acfe0384510ed53faddc4c074693"
+ integrity sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng==
dependencies:
- "@lerna/get-packed" "3.13.0"
- "@lerna/package" "3.14.2"
- "@lerna/run-lifecycle" "3.14.0"
+ "@lerna/get-packed" "3.16.0"
+ "@lerna/package" "3.16.0"
+ "@lerna/run-lifecycle" "3.16.2"
figgy-pudding "^3.5.1"
- npm-packlist "^1.4.1"
+ npm-packlist "^1.4.4"
npmlog "^4.1.2"
- tar "^4.4.8"
+ tar "^4.4.10"
temp-write "^3.4.0"
-"@lerna/package-graph@3.14.0":
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.14.0.tgz#4ccdf446dccedfbbeb4efff3eb720cb6fcb109fc"
- integrity sha512-dNpA/64STD5YXhaSlg4gT6Z474WPJVCHoX1ibsVIFu0fVgH609Y69bsdmbvTRdI7r6Dcu4ZfGxdR636RTrH+Eg==
+"@lerna/package-graph@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.16.0.tgz#909c90fb41e02f2c19387342d2a5eefc36d56836"
+ integrity sha512-A2mum/gNbv7zCtAwJqoxzqv89As73OQNK2MgSX1SHWya46qoxO9a9Z2c5lOFQ8UFN5ZxqWMfFYXRCz7qzwmFXw==
dependencies:
- "@lerna/prerelease-id-from-version" "3.14.0"
+ "@lerna/prerelease-id-from-version" "3.16.0"
"@lerna/validation-error" "3.13.0"
npm-package-arg "^6.1.0"
npmlog "^4.1.2"
- semver "^5.5.0"
+ semver "^6.2.0"
-"@lerna/package@3.14.2":
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.14.2.tgz#f893cb42e26c869df272dafbe1dd5a3473b0bd4d"
- integrity sha512-YR/+CzYdufJYfsUlrfuhTjA35iSZpXK7mVOZmeR9iRWhSaqesm4kq2zfxm9vCpZV2oAQQZOwi4eo5h0rQBtdiw==
+"@lerna/package@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c"
+ integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw==
dependencies:
- load-json-file "^4.0.0"
+ load-json-file "^5.3.0"
npm-package-arg "^6.1.0"
write-pkg "^3.1.0"
-"@lerna/prerelease-id-from-version@3.14.0":
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.14.0.tgz#d5da9c26ac4a0d0ecde09018f06e41ca4dd444c2"
- integrity sha512-Ap3Z/dNhqQuSrKmK+JmzYvQYI2vowxHvUVxZJiDVilW8dyNnxkCsYFmkuZytk5sxVz4VeGLNPS2RSsU5eeSS+Q==
+"@lerna/prerelease-id-from-version@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1"
+ integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA==
dependencies:
- semver "^5.5.0"
+ semver "^6.2.0"
-"@lerna/project@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.15.0.tgz#733b0993a849dcf5b68fcd0ec11d8f7de38a6999"
- integrity sha512-eNGUWiMbQ9kh9kGkomtMnsLypS0rfLqxKgZP2+VnNVtIXjnLv4paeTm+1lkL+naNJUwhnpMk2NSLEeoxT/20QA==
+"@lerna/project@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.16.0.tgz#2469a4e346e623fd922f38f5a12931dfb8f2a946"
+ integrity sha512-NrKcKK1EqXqhrGvslz6Q36+ZHuK3zlDhGdghRqnxDcHxMPT01NgLcmsnymmQ+gjMljuLRmvKYYCuHrknzX8VrA==
dependencies:
- "@lerna/package" "3.14.2"
+ "@lerna/package" "3.16.0"
"@lerna/validation-error" "3.13.0"
cosmiconfig "^5.1.0"
dedent "^0.7.0"
dot-prop "^4.2.0"
- glob-parent "^3.1.0"
- globby "^8.0.1"
- load-json-file "^4.0.0"
+ glob-parent "^5.0.0"
+ globby "^9.2.0"
+ load-json-file "^5.3.0"
npmlog "^4.1.2"
- p-map "^1.2.0"
+ p-map "^2.1.0"
resolve-from "^4.0.0"
- write-json-file "^2.3.0"
+ write-json-file "^3.2.0"
"@lerna/prompt@3.13.0":
version "3.13.0"
@@ -884,40 +886,41 @@
inquirer "^6.2.0"
npmlog "^4.1.2"
-"@lerna/publish@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.15.0.tgz#54f93f8f0820d2d419d0b65df1eb55d8277090c9"
- integrity sha512-6tRRBJ8olLSXfrUsR4f7vSfx0cT1oPi6/v06yI3afDSsUX6eQ3ooZh7gMY4RWmd+nM/IJHTUzhlKF6WhTvo+9g==
+"@lerna/publish@3.16.4":
+ version "3.16.4"
+ resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.16.4.tgz#4cd55d8be9943d9a68e316e930a90cda8590500e"
+ integrity sha512-XZY+gRuF7/v6PDQwl7lvZaGWs8CnX6WIPIu+OCcyFPSL/rdWegdN7HieKBHskgX798qRQc2GrveaY7bNoTKXAw==
dependencies:
- "@evocateur/libnpmaccess" "^3.1.0"
- "@evocateur/npm-registry-fetch" "^3.9.1"
- "@evocateur/pacote" "^9.6.0"
+ "@evocateur/libnpmaccess" "^3.1.2"
+ "@evocateur/npm-registry-fetch" "^4.0.0"
+ "@evocateur/pacote" "^9.6.3"
"@lerna/check-working-tree" "3.14.2"
"@lerna/child-process" "3.14.2"
- "@lerna/collect-updates" "3.14.2"
- "@lerna/command" "3.15.0"
+ "@lerna/collect-updates" "3.16.0"
+ "@lerna/command" "3.16.0"
"@lerna/describe-ref" "3.14.2"
- "@lerna/log-packed" "3.13.0"
- "@lerna/npm-conf" "3.13.0"
- "@lerna/npm-dist-tag" "3.15.0"
- "@lerna/npm-publish" "3.15.0"
+ "@lerna/log-packed" "3.16.0"
+ "@lerna/npm-conf" "3.16.0"
+ "@lerna/npm-dist-tag" "3.16.0"
+ "@lerna/npm-publish" "3.16.2"
+ "@lerna/otplease" "3.16.0"
"@lerna/output" "3.13.0"
- "@lerna/pack-directory" "3.14.2"
- "@lerna/prerelease-id-from-version" "3.14.0"
+ "@lerna/pack-directory" "3.16.4"
+ "@lerna/prerelease-id-from-version" "3.16.0"
"@lerna/prompt" "3.13.0"
"@lerna/pulse-till-done" "3.13.0"
- "@lerna/run-lifecycle" "3.14.0"
- "@lerna/run-topologically" "3.14.0"
+ "@lerna/run-lifecycle" "3.16.2"
+ "@lerna/run-topologically" "3.16.0"
"@lerna/validation-error" "3.13.0"
- "@lerna/version" "3.15.0"
+ "@lerna/version" "3.16.4"
figgy-pudding "^3.5.1"
- fs-extra "^7.0.0"
+ fs-extra "^8.1.0"
npm-package-arg "^6.1.0"
npmlog "^4.1.2"
p-finally "^1.0.0"
- p-map "^1.2.0"
+ p-map "^2.1.0"
p-pipe "^1.2.0"
- semver "^5.5.0"
+ semver "^6.2.0"
"@lerna/pulse-till-done@3.13.0":
version "3.13.0"
@@ -926,20 +929,20 @@
dependencies:
npmlog "^4.1.2"
-"@lerna/query-graph@3.14.0":
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-3.14.0.tgz#2abb36f445bd924d0f85ac7aec1445e9ef1e2c6c"
- integrity sha512-6YTh3vDMW2hUxHdKeRvx4bosc9lZClKaN+DzC1XKTkwDbWrsjmEzLcemKL6QnyyeuryN2f/eto7P9iSe3z3pQQ==
+"@lerna/query-graph@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-3.16.0.tgz#e6a46ebcd9d5b03f018a06eca2b471735353953c"
+ integrity sha512-p0RO+xmHDO95ChJdWkcy9TNLysLkoDARXeRHzY5U54VCwl3Ot/2q8fMCVlA5UeGXDutEyyByl3URqEpcQCWI7Q==
dependencies:
- "@lerna/package-graph" "3.14.0"
+ "@lerna/package-graph" "3.16.0"
figgy-pudding "^3.5.1"
-"@lerna/resolve-symlink@3.13.0":
- version "3.13.0"
- resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-3.13.0.tgz#3e6809ef53b63fe914814bfa071cd68012e22fbb"
- integrity sha512-Lc0USSFxwDxUs5JvIisS8JegjA6SHSAWJCMvi2osZx6wVRkEDlWG2B1JAfXUzCMNfHoZX0/XX9iYZ+4JIpjAtg==
+"@lerna/resolve-symlink@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz#37fc7095fabdbcf317c26eb74e0d0bde8efd2386"
+ integrity sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ==
dependencies:
- fs-extra "^7.0.0"
+ fs-extra "^8.1.0"
npmlog "^4.1.2"
read-cmd-shim "^1.0.1"
@@ -953,68 +956,68 @@
path-exists "^3.0.0"
rimraf "^2.6.2"
-"@lerna/run-lifecycle@3.14.0":
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-3.14.0.tgz#0499eca0e7f393faf4e24e6c8737302a9059c22b"
- integrity sha512-GUM3L9MzGRSW0WQ8wbLW1+SYStU1OFjW0GBzShhBnFrO4nGRrU7VchsLpcLu0hk2uCzyhsrDKzifEdOdUyMoEQ==
+"@lerna/run-lifecycle@3.16.2":
+ version "3.16.2"
+ resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz#67b288f8ea964db9ea4fb1fbc7715d5bbb0bce00"
+ integrity sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A==
dependencies:
- "@lerna/npm-conf" "3.13.0"
+ "@lerna/npm-conf" "3.16.0"
figgy-pudding "^3.5.1"
- npm-lifecycle "^2.1.1"
+ npm-lifecycle "^3.1.2"
npmlog "^4.1.2"
-"@lerna/run-parallel-batches@3.13.0":
- version "3.13.0"
- resolved "https://registry.yarnpkg.com/@lerna/run-parallel-batches/-/run-parallel-batches-3.13.0.tgz#0276bb4e7cd0995297db82d134ca2bd08d63e311"
- integrity sha512-bICFBR+cYVF1FFW+Tlm0EhWDioTUTM6dOiVziDEGE1UZha1dFkMYqzqdSf4bQzfLS31UW/KBd/2z8jy2OIjEjg==
+"@lerna/run-parallel-batches@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/run-parallel-batches/-/run-parallel-batches-3.16.0.tgz#5ace7911a2dd31dfd1e53c61356034e27df0e1fb"
+ integrity sha512-2J/Nyv+MvogmQEfC7VcS21ifk7w0HVvzo2yOZRPvkCzGRu/rducxtB4RTcr58XCZ8h/Bt1aqQYKExu3c/3GXwg==
dependencies:
- p-map "^1.2.0"
+ p-map "^2.1.0"
p-map-series "^1.0.0"
-"@lerna/run-topologically@3.14.0":
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-3.14.0.tgz#2a560cb657f0ef1565c680b6001b4b01b872dc07"
- integrity sha512-y+KBpC1YExFzGynovt9MY4O/bc3RrJaKeuXieiPfKGKxrdtmZe/r33oj/xePTXZq65jnw3SaU3H8S5CrrdkwDg==
+"@lerna/run-topologically@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-3.16.0.tgz#39e29cfc628bbc8e736d8e0d0e984997ac01bbf5"
+ integrity sha512-4Hlpv4zDtKWa5Z0tPkeu0sK+bxZEKgkNESMGmWrUCNfj7xwvAJurcraK8+a2Y0TFYwf0qjSLY/MzX+ZbJA3Cgw==
dependencies:
- "@lerna/query-graph" "3.14.0"
+ "@lerna/query-graph" "3.16.0"
figgy-pudding "^3.5.1"
p-queue "^4.0.0"
-"@lerna/run@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.15.0.tgz#465028b5b561a050bd760924e4a0749de3f43172"
- integrity sha512-KQBkzZYoEKmzILKjbjsm1KKVWFBXwAdwzqJWj/lfxxd3V5LRF8STASk8aiw8bSpB0bUL9TU/pbXakRxiNzjDwQ==
+"@lerna/run@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.16.0.tgz#1ea568c6f303e47fa00b3403a457836d40738fd2"
+ integrity sha512-woTeLlB1OAAz4zzjdI6RyIxSGuxiUPHJZm89E1pDEPoWwtQV6HMdMgrsQd9ATsJ5Ez280HH4bF/LStAlqW8Ufg==
dependencies:
- "@lerna/command" "3.15.0"
- "@lerna/filter-options" "3.14.2"
+ "@lerna/command" "3.16.0"
+ "@lerna/filter-options" "3.16.0"
"@lerna/npm-run-script" "3.14.2"
"@lerna/output" "3.13.0"
- "@lerna/run-topologically" "3.14.0"
+ "@lerna/run-topologically" "3.16.0"
"@lerna/timer" "3.13.0"
"@lerna/validation-error" "3.13.0"
- p-map "^1.2.0"
-
-"@lerna/symlink-binary@3.14.2":
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-3.14.2.tgz#a832fdc6c4b1e5aaf9e6ac9c7e6c322746965eb0"
- integrity sha512-tqMwuWi6z1da0AFFbleWyu3H9fqayiV50rjj4anFTfayel9jSjlA1xPG+56sGIP6zUUNuUSc9kLh7oRRmlauoA==
- dependencies:
- "@lerna/create-symlink" "3.14.0"
- "@lerna/package" "3.14.2"
- fs-extra "^7.0.0"
- p-map "^1.2.0"
-
-"@lerna/symlink-dependencies@3.14.2":
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-3.14.2.tgz#e6b2a9544ff26addc1f4324734595e2f71dfc795"
- integrity sha512-Ox7WKXnHZ7IwWlejcCq3n0Hd/yMLv8AwIryhvWxM/RauAge+ML4wg578SsdCyKob8ecgm/R0ytHiU06j81iL1w==
- dependencies:
- "@lerna/create-symlink" "3.14.0"
- "@lerna/resolve-symlink" "3.13.0"
- "@lerna/symlink-binary" "3.14.2"
- fs-extra "^7.0.0"
+ p-map "^2.1.0"
+
+"@lerna/symlink-binary@3.16.2":
+ version "3.16.2"
+ resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-3.16.2.tgz#f98a3d9da9e56f1d302dc0d5c2efeb951483ee66"
+ integrity sha512-kz9XVoFOGSF83gg4gBqH+mG6uxfJfTp8Uy+Cam40CvMiuzfODrGkjuBEFoM/uO2QOAwZvbQDYOBpKUa9ZxHS1Q==
+ dependencies:
+ "@lerna/create-symlink" "3.16.2"
+ "@lerna/package" "3.16.0"
+ fs-extra "^8.1.0"
+ p-map "^2.1.0"
+
+"@lerna/symlink-dependencies@3.16.2":
+ version "3.16.2"
+ resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-3.16.2.tgz#91d9909d35897aebd76a03644a00cd03c4128240"
+ integrity sha512-wnZqGJQ+Jvr1I3inxrkffrFZfmQI7Ta8gySw/UWCy95QtZWF/f5yk8zVIocCAsjzD0wgb3jJE3CFJ9W5iwWk1A==
+ dependencies:
+ "@lerna/create-symlink" "3.16.2"
+ "@lerna/resolve-symlink" "3.16.0"
+ "@lerna/symlink-binary" "3.16.2"
+ fs-extra "^8.1.0"
p-finally "^1.0.0"
- p-map "^1.2.0"
+ p-map "^2.1.0"
p-map-series "^1.0.0"
"@lerna/timer@3.13.0":
@@ -1029,34 +1032,34 @@
dependencies:
npmlog "^4.1.2"
-"@lerna/version@3.15.0":
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.15.0.tgz#3c65d223d94f211312995266abb07ee6606d5f73"
- integrity sha512-vReYX1NMXZ9PwzTZm97wAl/k3bmRnRZhnQi3mq/m49xTnDavq7p4sbUdFpvu8cVZNKnYS02pNIVGHrQw+K8ZCw==
+"@lerna/version@3.16.4":
+ version "3.16.4"
+ resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.16.4.tgz#b5cc37f3ad98358d599c6196c30b6efc396d42bf"
+ integrity sha512-ikhbMeIn5ljCtWTlHDzO4YvTmpGTX1lWFFIZ79Vd1TNyOr+OUuKLo/+p06mCl2WEdZu0W2s5E9oxfAAQbyDxEg==
dependencies:
"@lerna/check-working-tree" "3.14.2"
"@lerna/child-process" "3.14.2"
- "@lerna/collect-updates" "3.14.2"
- "@lerna/command" "3.15.0"
- "@lerna/conventional-commits" "3.14.0"
- "@lerna/github-client" "3.14.2"
+ "@lerna/collect-updates" "3.16.0"
+ "@lerna/command" "3.16.0"
+ "@lerna/conventional-commits" "3.16.4"
+ "@lerna/github-client" "3.16.0"
"@lerna/gitlab-client" "3.15.0"
"@lerna/output" "3.13.0"
- "@lerna/prerelease-id-from-version" "3.14.0"
+ "@lerna/prerelease-id-from-version" "3.16.0"
"@lerna/prompt" "3.13.0"
- "@lerna/run-lifecycle" "3.14.0"
- "@lerna/run-topologically" "3.14.0"
+ "@lerna/run-lifecycle" "3.16.2"
+ "@lerna/run-topologically" "3.16.0"
"@lerna/validation-error" "3.13.0"
chalk "^2.3.1"
dedent "^0.7.0"
minimatch "^3.0.4"
npmlog "^4.1.2"
- p-map "^1.2.0"
+ p-map "^2.1.0"
p-pipe "^1.2.0"
p-reduce "^1.0.0"
p-waterfall "^1.0.0"
- semver "^5.5.0"
- slash "^1.0.0"
+ semver "^6.2.0"
+ slash "^2.0.0"
temp-write "^3.4.0"
"@lerna/write-log-file@3.13.0":
@@ -1081,19 +1084,19 @@
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
"@octokit/endpoint@^5.1.0":
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.2.0.tgz#acd569cb7152549998454aa5658532eb24a0987e"
- integrity sha512-g4r1MKr8GJ8qubJQp3HP3JrxDY+ZeVqjYBTgtu1lPEDLhfQDY6rOhyZOoHKOw+gaIF6aAcmuvPPNZUro2OwmOg==
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.3.2.tgz#2deda2d869cac9ba7f370287d55667be2a808d4b"
+ integrity sha512-gRjteEM9I6f4D8vtwU2iGUTn9RX/AJ0SVXiqBUEuYEWVGGAVjSXdT0oNmghH5lvQNWs8mwt6ZaultuG6yXivNw==
dependencies:
- deepmerge "3.3.0"
+ deepmerge "4.0.0"
is-plain-object "^3.0.0"
- universal-user-agent "^2.1.0"
+ universal-user-agent "^3.0.0"
url-template "^2.0.8"
-"@octokit/plugin-enterprise-rest@^2.1.1":
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-2.2.2.tgz#c0e22067a043e19f96ff9c7832e2a3019f9be75c"
- integrity sha512-CTZr64jZYhGWNTDGlSJ2mvIlFsm9OEO3LqWn9I/gmoHI4jRBp4kpHoFYNemG4oA75zUAcmbuWblb7jjP877YZw==
+"@octokit/plugin-enterprise-rest@^3.6.1":
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-3.6.2.tgz#74de25bef21e0182b4fa03a8678cd00a4e67e561"
+ integrity sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA==
"@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2":
version "1.0.4"
@@ -1103,10 +1106,10 @@
deprecation "^2.0.0"
once "^1.4.0"
-"@octokit/request@^4.0.1":
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/@octokit/request/-/request-4.1.1.tgz#614262214f48417b4d3b14e047d09a9c8e2f7a09"
- integrity sha512-LOyL0i3oxRo418EXRSJNk/3Q4I0/NKawTn6H/CQp+wnrG1UFLGu080gSsgnWobhPo5BpUNgSQ5BRk5FOOJhD1Q==
+"@octokit/request@^5.0.0":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.0.2.tgz#59a920451f24811c016ddc507adcc41aafb2dca5"
+ integrity sha512-z1BQr43g4kOL4ZrIVBMHwi68Yg9VbkRUyuAgqCp1rU3vbYa69+2gIld/+gHclw15bJWQnhqqyEb7h5a5EqgZ0A==
dependencies:
"@octokit/endpoint" "^5.1.0"
"@octokit/request-error" "^1.0.1"
@@ -1114,17 +1117,17 @@
is-plain-object "^3.0.0"
node-fetch "^2.3.0"
once "^1.4.0"
- universal-user-agent "^2.1.0"
+ universal-user-agent "^3.0.0"
-"@octokit/rest@^16.16.0":
- version "16.28.2"
- resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.2.tgz#3fc3b8700046ab29ab1e2a4bdf49f89e94f7ba27"
- integrity sha512-csuYiHvJ1P/GFDadVn0QhwO83R1+YREjcwCY7ZIezB6aJTRIEidJZj+R7gAkUhT687cqYb4cXTZsDVu9F+Fmug==
+"@octokit/rest@^16.28.4":
+ version "16.28.7"
+ resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.7.tgz#a2c2db5b318da84144beba82d19c1a9dbdb1a1fa"
+ integrity sha512-cznFSLEhh22XD3XeqJw51OLSfyL2fcFKUO+v2Ep9MTAFfFLS1cK1Zwd1yEgQJmJoDnj4/vv3+fGGZweG+xsbIA==
dependencies:
- "@octokit/request" "^4.0.1"
+ "@octokit/request" "^5.0.0"
"@octokit/request-error" "^1.0.2"
atob-lite "^2.0.0"
- before-after-hook "^1.4.0"
+ before-after-hook "^2.0.0"
btoa-lite "^1.0.0"
deprecation "^2.0.0"
lodash.get "^4.4.2"
@@ -1132,7 +1135,7 @@
lodash.uniq "^4.5.0"
octokit-pagination-methods "^1.1.0"
once "^1.4.0"
- universal-user-agent "^2.0.0"
+ universal-user-agent "^3.0.0"
url-template "^2.0.8"
"@sinonjs/commons@^1", "@sinonjs/commons@^1.0.2", "@sinonjs/commons@^1.4.0":
@@ -1142,7 +1145,7 @@
dependencies:
type-detect "4.0.8"
-"@sinonjs/formatio@^3.1.0", "@sinonjs/formatio@^3.2.1":
+"@sinonjs/formatio@^3.2.1":
version "3.2.1"
resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.1.tgz#52310f2f9bcbc67bdac18c94ad4901b95fde267e"
integrity sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==
@@ -1150,7 +1153,7 @@
"@sinonjs/commons" "^1"
"@sinonjs/samsam" "^3.1.0"
-"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.1":
+"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.2.tgz#63942e3d5eb0b79f6de3bef9abfad15fb4b6401b"
integrity sha512-ILO/rR8LfAb60Y1Yfp9vxfYAASK43NFC2mLzpvLUbCQY/Qu8YwReboseu8aheCEkyElZF2L2T9mHcR2bgdvZyA==
@@ -1164,10 +1167,29 @@
resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5"
integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==
+"@types/events@*":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
+ integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
+
+"@types/glob@^7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
+ integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==
+ dependencies:
+ "@types/events" "*"
+ "@types/minimatch" "*"
+ "@types/node" "*"
+
+"@types/minimatch@*":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
+ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
+
"@types/node@*":
- version "12.0.10"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.10.tgz#51babf9c7deadd5343620055fc8aff7995c8b031"
- integrity sha512-LcsGbPomWsad6wmMNv7nBLw7YYYyfdYcz6xryKYQhx89c3XXan+8Q6AJ43G5XDIaklaVkK3mE4fCb0SBvMiPSQ==
+ version "12.7.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.0.tgz#545dde2a1a5c27d281cfb8308d6736e0708f5d6c"
+ integrity sha512-vqcj1MVm2Sla4PpMfYKh1MyDN4D2f/mPIZD7RdAGqEsbE+JxfeqQHHVbRDQ0Nqn8i73gJa1HQ1Pu3+nH4Q0Yiw==
"@webassemblyjs/ast@1.8.5":
version "1.8.5"
@@ -1325,6 +1347,15 @@
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+"@zkochan/cmd-shim@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e"
+ integrity sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg==
+ dependencies:
+ is-windows "^1.0.0"
+ mkdirp-promise "^5.0.1"
+ mz "^2.5.0"
+
JSONStream@^1.0.4, JSONStream@^1.3.4:
version "1.3.5"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
@@ -1351,11 +1382,6 @@ accepts@^1.3.5, accepts@^1.3.7:
mime-types "~2.1.24"
negotiator "0.6.2"
-acorn-dynamic-import@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948"
- integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==
-
acorn-globals@^1.0.4:
version "1.0.9"
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf"
@@ -1378,12 +1404,12 @@ acorn@^2.1.0, acorn@^2.4.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7"
integrity sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=
-acorn@^6.0.5, acorn@^6.0.7:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
- integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==
+acorn@^6.0.7, acorn@^6.2.1:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51"
+ integrity sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==
-agent-base@4, agent-base@^4.1.0:
+agent-base@4, agent-base@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
@@ -1409,15 +1435,15 @@ ajv-errors@^1.0.0:
resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
-ajv-keywords@^3.1.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d"
- integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==
+ajv-keywords@^3.1.0, ajv-keywords@^3.4.1:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da"
+ integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==
-ajv@^6.1.0, ajv@^6.10.0, ajv@^6.5.5, ajv@^6.9.1:
- version "6.10.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
- integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5:
+ version "6.10.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
+ integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
dependencies:
fast-deep-equal "^2.0.1"
fast-json-stable-stringify "^2.0.0"
@@ -1436,10 +1462,10 @@ ansi-colors@^1.0.1:
dependencies:
ansi-wrap "^0.1.0"
-ansi-colors@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.0.1.tgz#3dc29301836c6152f617a71466bde162a2e42582"
- integrity sha512-1Qs1jdXEMSYwcVooLRfnCc5+e3365pw38v4AVkSsCxsjXRGKDTem5VLCl53SpHSpLnEy8O5DofJHZJELaRiJbg==
+ansi-colors@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+ integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
ansi-cyan@^0.1.1:
version "0.1.1"
@@ -1627,6 +1653,11 @@ array-differ@^1.0.0:
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=
+array-differ@^2.0.3:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1"
+ integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==
+
array-each@^1.0.0, array-each@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f"
@@ -1689,7 +1720,7 @@ array-sort@^1.0.0:
get-value "^2.0.6"
kind-of "^5.0.2"
-array-union@^1.0.1:
+array-union@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
@@ -1701,17 +1732,12 @@ array-uniq@^1.0.1, array-uniq@^1.0.2:
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
-array-unique@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
- integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
-
array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
-arrify@^1.0.0, arrify@^1.0.1:
+arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
@@ -1781,9 +1807,9 @@ async-each@^1.0.1:
integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
async-limiter@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
- integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
+ integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
async-settle@^1.0.0:
version "1.0.0"
@@ -1954,9 +1980,9 @@ balanced-match@^1.0.0:
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.2.3:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
- integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
+ integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
base@^0.11.1:
version "0.11.2"
@@ -1983,10 +2009,10 @@ beeper@^1.0.0:
resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=
-before-after-hook@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d"
- integrity sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg==
+before-after-hook@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635"
+ integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==
big-integer@^1.6.7:
version "1.6.44"
@@ -2074,6 +2100,13 @@ braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2"
to-regex "^3.0.1"
+braces@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
@@ -2150,10 +2183,10 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-bryt@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/bryt/-/bryt-1.0.0.tgz#fd883a1c496c95323bcd06164395705417b1239c"
- integrity sha512-/nhjJl363E6mi4uNqY8AKnVPU7TAady2NEMADJ02vdcaog6YZGAQ/gNO6KXyujjSy1YNLSgc6ikU8nghD7J4hA==
+bryt@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/bryt/-/bryt-1.0.1.tgz#1f349604894e7858ecdc29b1439ca9019d9beb2b"
+ integrity sha512-8q5DgK7LK0NP1I5HTlAjcJzrFFPedJqhaqAU8pr1afG/LKbUwhmoLTbxL0Xd0hCEiofXyQn3CwlcmwF4MKEDdg==
dependencies:
brotli "^1.3.2"
@@ -2211,26 +2244,27 @@ byline@^5.0.0:
resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=
-byte-size@^4.0.3:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.4.tgz#29d381709f41aae0d89c631f1c81aec88cd40b23"
- integrity sha512-82RPeneC6nqCdSwCX2hZUz3JPOvN5at/nTEw/CMf05Smu3Hrpo9Psb7LjN+k+XndNArG1EY8L4+BM3aTM4BCvw==
+byte-size@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191"
+ integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw==
bytes@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
-cacache@^11.0.1, cacache@^11.3.2:
- version "11.3.3"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc"
- integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==
+cacache@^12.0.0, cacache@^12.0.2:
+ version "12.0.2"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.2.tgz#8db03205e36089a3df6954c66ce92541441ac46c"
+ integrity sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==
dependencies:
bluebird "^3.5.5"
chownr "^1.1.1"
figgy-pudding "^3.5.1"
glob "^7.1.4"
graceful-fs "^4.1.15"
+ infer-owner "^1.0.3"
lru-cache "^5.1.1"
mississippi "^3.0.0"
mkdirp "^0.5.1"
@@ -2380,7 +2414,7 @@ chalk@^1.0.0, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -2466,21 +2500,21 @@ chokidar@^2.0.0, chokidar@^2.0.2:
fsevents "^1.2.7"
chownr@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
- integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6"
+ integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==
-chrome-trace-event@^1.0.0:
+chrome-trace-event@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==
dependencies:
tslib "^1.9.0"
-ci-info@^1.5.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
- integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
+ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
@@ -2507,20 +2541,20 @@ cli-cursor@^2.1.0:
dependencies:
restore-cursor "^2.0.0"
-cli-kit@^0.11.1:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/cli-kit/-/cli-kit-0.11.1.tgz#268cf977156c1a5a70fcc8f46b6130ca9ae69236"
- integrity sha512-4mf4uY/wVFVvIkT2sR4l6GiAZ0d85uytxQW+RZpZT04Liyrz3BikC36nNQItwVMyFjRdvAkd7XAvG0hI/8B9oA==
+cli-kit@^0.11.2:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/cli-kit/-/cli-kit-0.11.2.tgz#7d22ad03b074833e5265de3454f8e28400ba76be"
+ integrity sha512-3j58Q9wq+wnyOIt0gCxmNIqpc2t7w+F3azVcn1uKogKS2bhfnbS0QNTwdzK34wVDmIm7qxbfr2KW6sv0/01XvA==
dependencies:
argv-split "^2.0.1"
fast-levenshtein "^2.0.6"
- fs-extra "^8.0.1"
- hook-emitter "^3.1.2"
+ fs-extra "^8.1.0"
+ hook-emitter "^4.0.0"
lodash.camelcase "^4.3.0"
pkg-dir "^4.2.0"
pluralize "^8.0.0"
- semver "^6.1.1"
- snooplogg "^2.0.1"
+ semver "^6.2.0"
+ snooplogg "^2.1.0"
source-map-support "^0.5.12"
which "^1.3.1"
@@ -2719,7 +2753,7 @@ commander@2.5.x:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.5.1.tgz#23c61f6e47be143cc02e7ad4bb1c47f5cd5a2883"
integrity sha1-I8Yfbke+FDzALnrUuxxH9c1aKIM=
-commander@^2.19.0, commander@~2.20.0:
+commander@^2.20.0, commander@~2.20.0:
version "2.20.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
@@ -2811,10 +2845,10 @@ content-disposition@~0.5.2:
dependencies:
safe-buffer "5.1.2"
-content-security-policy-builder@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz#8749a1d542fcbe82237281ea9f716ce68b394dd2"
- integrity sha512-j+Nhmj1yfZAikJLImCvPJFE29x/UuBi+/MWqggGGc515JKaZrjuei2RhULJmy0MsstW3E3htl002bwmBNMKr7w==
+content-security-policy-builder@2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz#0a2364d769a3d7014eec79ff7699804deb8cfcbb"
+ integrity sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ==
content-type@^1.0.4:
version "1.0.4"
@@ -2830,17 +2864,17 @@ conventional-changelog-angular@^5.0.3:
q "^1.5.1"
conventional-changelog-core@^3.1.6:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.2.tgz#de41e6b4a71011a18bcee58e744f6f8f0e7c29c0"
- integrity sha512-cssjAKajxaOX5LNAJLB+UOcoWjAIBvXtDMedv/58G+YEmAXMNfC16mmPl0JDOuVJVfIqM0nqQiZ8UCm8IXbE0g==
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb"
+ integrity sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==
dependencies:
- conventional-changelog-writer "^4.0.5"
- conventional-commits-parser "^3.0.2"
+ conventional-changelog-writer "^4.0.6"
+ conventional-commits-parser "^3.0.3"
dateformat "^3.0.0"
get-pkg-repo "^1.0.0"
git-raw-commits "2.0.0"
git-remote-origin-url "^2.0.0"
- git-semver-tags "^2.0.2"
+ git-semver-tags "^2.0.3"
lodash "^4.2.1"
normalize-package-data "^2.3.5"
q "^1.5.1"
@@ -2849,19 +2883,19 @@ conventional-changelog-core@^3.1.6:
through2 "^3.0.0"
conventional-changelog-preset-loader@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.1.1.tgz#65bb600547c56d5627d23135154bcd9a907668c4"
- integrity sha512-K4avzGMLm5Xw0Ek/6eE3vdOXkqnpf9ydb68XYmCc16cJ99XMMbc2oaNMuPwAsxVK6CC1yA4/I90EhmWNj0Q6HA==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.2.0.tgz#571e2b3d7b53d65587bea9eedf6e37faa5db4fcc"
+ integrity sha512-zXB+5vF7D5Y3Cb/rJfSyCCvFphCVmF8mFqOdncX3BmjZwAtGAPfYrBcT225udilCKvBbHgyzgxqz2GWDB5xShQ==
-conventional-changelog-writer@^4.0.5:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.6.tgz#24db578ac8e7c89a409ef9bba12cf3c095990148"
- integrity sha512-ou/sbrplJMM6KQpR5rKFYNVQYesFjN7WpNGdudQSWNi6X+RgyFUcSv871YBYkrUYV9EX8ijMohYVzn9RUb+4ag==
+conventional-changelog-writer@^4.0.6:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz#e4b7d9cbea902394ad671f67108a71fa90c7095f"
+ integrity sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw==
dependencies:
compare-func "^1.3.1"
conventional-commits-filter "^2.0.2"
dateformat "^3.0.0"
- handlebars "^4.1.0"
+ handlebars "^4.1.2"
json-stringify-safe "^5.0.1"
lodash "^4.2.1"
meow "^4.0.0"
@@ -2877,7 +2911,7 @@ conventional-commits-filter@^2.0.2:
lodash.ismatch "^4.4.0"
modify-values "^1.0.0"
-conventional-commits-parser@^3.0.2:
+conventional-commits-parser@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.3.tgz#c3f972fd4e056aa8b9b4f5f3d0e540da18bf396d"
integrity sha512-KaA/2EeUkO4bKjinNfGUyqPTX/6w9JGshuQRik4r/wJz7rUw3+D3fDG6sZSEqJvKILzKXFQuFkpPLclcsAuZcg==
@@ -2890,17 +2924,17 @@ conventional-commits-parser@^3.0.2:
through2 "^3.0.0"
trim-off-newlines "^1.0.0"
-conventional-recommended-bump@^4.0.4:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-4.1.1.tgz#37014fadeda267d0607e2fc81124da840a585127"
- integrity sha512-JT2vKfSP9kR18RXXf55BRY1O3AHG8FPg5btP3l7LYfcWJsiXI6MCf30DepQ98E8Qhowvgv7a8iev0J1bEDkTFA==
+conventional-recommended-bump@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz#5af63903947b6e089e77767601cb592cabb106ba"
+ integrity sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ==
dependencies:
concat-stream "^2.0.0"
conventional-changelog-preset-loader "^2.1.1"
conventional-commits-filter "^2.0.2"
- conventional-commits-parser "^3.0.2"
+ conventional-commits-parser "^3.0.3"
git-raw-commits "2.0.0"
- git-semver-tags "^2.0.2"
+ git-semver-tags "^2.0.3"
meow "^4.0.0"
q "^1.5.1"
@@ -3083,9 +3117,9 @@ css@2.X, css@^2.2.1:
urix "^0.1.0"
cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0":
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad"
- integrity sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+ integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
"cssstyle@>= 0.2.29 < 0.3.0":
version "0.2.37"
@@ -3235,10 +3269,10 @@ deep-is@~0.1.3:
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
-deepmerge@3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7"
- integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==
+deepmerge@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09"
+ integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww==
default-compare@^1.0.0:
version "1.0.0"
@@ -3266,7 +3300,7 @@ defaults@^1.0.3:
dependencies:
clone "^1.0.2"
-define-properties@^1.1.2:
+define-properties@^1.1.2, define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
@@ -3377,16 +3411,16 @@ dezalgo@^1.0.0:
asap "^2.0.0"
wrappy "1"
-diff@1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/diff/-/diff-1.0.7.tgz#24bbb001c4a7d5522169e7cabdb2c2814ed91cf4"
- integrity sha1-JLuwAcSn1VIhaefKvbLCgU7ZHPQ=
-
diff@3.5.0, diff@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
+diff@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff"
+ integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==
+
diffie-hellman@^5.0.0:
version "5.0.3"
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
@@ -3396,18 +3430,17 @@ diffie-hellman@^5.0.0:
miller-rabin "^4.0.0"
randombytes "^2.0.0"
-dir-glob@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034"
- integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==
+dir-glob@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
+ integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==
dependencies:
- arrify "^1.0.1"
path-type "^3.0.0"
-dns-prefetch-control@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz#60ddb457774e178f1f9415f0cabb0e85b0b300b2"
- integrity sha1-YN20V3dOF48flBXwyrsOhbCzALI=
+dns-prefetch-control@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.2.0.tgz#73988161841f3dcc81f47686d539a2c702c88624"
+ integrity sha512-hvSnros73+qyZXhHFjx2CMLwoj3Fe7eR9EJsFsqmcI1bB2OBWL/+0YzaEaKssCHnj/6crawNnUyw74Gm2EKe+Q==
doctrine@1.5.0:
version "1.5.0"
@@ -3424,7 +3457,15 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
-dom-serializer@0, dom-serializer@~0.1.0:
+dom-serializer@0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb"
+ integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==
+ dependencies:
+ domelementtype "^2.0.1"
+ entities "^2.0.0"
+
+dom-serializer@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0"
integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==
@@ -3442,6 +3483,11 @@ domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
+domelementtype@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
+ integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
+
domhandler@2.3:
version "2.3.0"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738"
@@ -3472,10 +3518,10 @@ domutils@^1.5.1:
dom-serializer "0"
domelementtype "1"
-dont-sniff-mimetype@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz#5932890dc9f4e2f19e5eb02a20026e5e5efc8f58"
- integrity sha1-WTKJDcn04vGeXrAqIAJuXl78j1g=
+dont-sniff-mimetype@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz#c7d0427f8bcb095762751252af59d148b0a623b2"
+ integrity sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug==
dot-prop@^3.0.0:
version "3.0.0"
@@ -3535,9 +3581,9 @@ ee-first@1.1.1:
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
elliptic@^6.0.0:
- version "6.4.1"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
- integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==
+ version "6.5.0"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca"
+ integrity sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==
dependencies:
bn.js "^4.4.0"
brorand "^1.0.1"
@@ -3590,6 +3636,16 @@ entities@^1.1.1, entities@~1.1.1:
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
+entities@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
+ integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
+
+env-paths@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
+ integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=
+
err-code@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960"
@@ -3614,7 +3670,7 @@ error-inject@^1.0.0:
resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37"
integrity sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc=
-es-abstract@^1.5.1, es-abstract@^1.7.0:
+es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
@@ -3816,17 +3872,18 @@ esdoc@^1.1.0:
minimist "1.2.0"
taffydb "2.7.3"
-eslint-config-axway@^4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/eslint-config-axway/-/eslint-config-axway-4.2.2.tgz#5a64162c4b27e6840e640c225d3ce4141c4eb29e"
- integrity sha512-Cbj0VaBBARh81rc6Q4oEYLDKe6/sZA3Lb56ibvbLWftt0/V3zt3wvd4yaat23fBf8T8sjy0B9HfyNVafgF9xsw==
+eslint-config-axway@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-axway/-/eslint-config-axway-4.3.0.tgz#7e4e164a458240db49812202f218dd4a02a1f742"
+ integrity sha512-y+8VF65J2JenubwqEn0OGeINQQm1z1OTf+o5e0ApxQaGztRnH0OvWoCrSa7y3xGzsd6MWEWrUnhBR6iZFEyZOQ==
dependencies:
eslint-plugin-chai-expect "^2.0.1"
- eslint-plugin-import "^2.16.0"
- eslint-plugin-promise "^4.0.1"
+ eslint-plugin-import "^2.18.2"
+ eslint-plugin-node "^9.1.0"
+ eslint-plugin-promise "^4.2.1"
eslint-plugin-security "^1.4.0"
find-root "^1.1.0"
- semver "^5.6.0"
+ semver "^6.3.0"
eslint-import-resolver-node@^0.3.2:
version "0.3.2"
@@ -3837,9 +3894,9 @@ eslint-import-resolver-node@^0.3.2:
resolve "^1.5.0"
eslint-module-utils@^2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a"
- integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c"
+ integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==
dependencies:
debug "^2.6.8"
pkg-dir "^2.0.0"
@@ -3854,10 +3911,18 @@ eslint-plugin-chai-friendly@^0.4.1:
resolved "https://registry.yarnpkg.com/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-0.4.1.tgz#9eeb17f92277ba80bb64f0e946c6936a3ae707b4"
integrity sha512-hkpLN7VVoGGsofZjUhcQ+sufC3FgqMJwD0DvAcRfxY1tVRyQyVsqpaKnToPHJQOrRo0FQ0fSEDwW2gr4rsNdGA==
-eslint-plugin-import@^2.16.0:
- version "2.18.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.0.tgz#7a5ba8d32622fb35eb9c8db195c2090bd18a3678"
- integrity sha512-PZpAEC4gj/6DEMMoU2Df01C5c50r7zdGIN52Yfi7CvvWaYssG7Jt5R9nFG5gmqodxNOz9vQS87xk6Izdtpdrig==
+eslint-plugin-es@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6"
+ integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==
+ dependencies:
+ eslint-utils "^1.3.0"
+ regexpp "^2.0.1"
+
+eslint-plugin-import@^2.18.2:
+ version "2.18.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6"
+ integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==
dependencies:
array-includes "^3.0.3"
contains-path "^0.1.0"
@@ -3866,19 +3931,31 @@ eslint-plugin-import@^2.16.0:
eslint-import-resolver-node "^0.3.2"
eslint-module-utils "^2.4.0"
has "^1.0.3"
- lodash "^4.17.11"
minimatch "^3.0.4"
+ object.values "^1.1.0"
read-pkg-up "^2.0.0"
resolve "^1.11.0"
-eslint-plugin-mocha@^5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-5.3.0.tgz#cf3eb18ae0e44e433aef7159637095a7cb19b15b"
- integrity sha512-3uwlJVLijjEmBeNyH60nzqgA1gacUWLUmcKV8PIGNvj1kwP/CTgAWQHn2ayyJVwziX+KETkr9opNwT1qD/RZ5A==
+eslint-plugin-mocha@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-6.0.0.tgz#0a2af057280962e9deab929361141865b2b8a761"
+ integrity sha512-Qgy1q64cTKqiHiYP3ZPAcMlEoPejeM7GLKDs2pvYG/fXbVDYDJw7ELlHlbn3147SL9+cPSqat7uCCbbNmVpc1g==
dependencies:
ramda "^0.26.1"
-eslint-plugin-promise@^4.0.1:
+eslint-plugin-node@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-9.1.0.tgz#f2fd88509a31ec69db6e9606d76dabc5adc1b91a"
+ integrity sha512-ZwQYGm6EoV2cfLpE1wxJWsfnKUIXfM/KM09/TlorkukgCAwmkgajEJnPCmyzoFPQQkmvo5DrW/nyKutNIw36Mw==
+ dependencies:
+ eslint-plugin-es "^1.4.0"
+ eslint-utils "^1.3.1"
+ ignore "^5.1.1"
+ minimatch "^3.0.4"
+ resolve "^1.10.1"
+ semver "^6.1.0"
+
+eslint-plugin-promise@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a"
integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==
@@ -3898,7 +3975,7 @@ eslint-scope@3.7.1:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint-scope@^4.0.0, eslint-scope@^4.0.3:
+eslint-scope@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
@@ -3906,62 +3983,30 @@ eslint-scope@^4.0.0, eslint-scope@^4.0.3:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint-utils@^1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
- integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==
+eslint-scope@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9"
+ integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-utils@^1.3.0, eslint-utils@^1.3.1:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.0.tgz#e2c3c8dba768425f897cf0f9e51fe2e241485d4c"
+ integrity sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ==
+ dependencies:
+ eslint-visitor-keys "^1.0.0"
eslint-visitor-keys@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
-eslint@^5.0.1:
- version "5.16.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
- integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- ajv "^6.9.1"
- chalk "^2.1.0"
- cross-spawn "^6.0.5"
- debug "^4.0.1"
- doctrine "^3.0.0"
- eslint-scope "^4.0.3"
- eslint-utils "^1.3.1"
- eslint-visitor-keys "^1.0.0"
- espree "^5.0.1"
- esquery "^1.0.1"
- esutils "^2.0.2"
- file-entry-cache "^5.0.1"
- functional-red-black-tree "^1.0.1"
- glob "^7.1.2"
- globals "^11.7.0"
- ignore "^4.0.6"
- import-fresh "^3.0.0"
- imurmurhash "^0.1.4"
- inquirer "^6.2.2"
- js-yaml "^3.13.0"
- json-stable-stringify-without-jsonify "^1.0.1"
- levn "^0.3.0"
- lodash "^4.17.11"
- minimatch "^3.0.4"
- mkdirp "^0.5.1"
- natural-compare "^1.4.0"
- optionator "^0.8.2"
- path-is-inside "^1.0.2"
- progress "^2.0.0"
- regexpp "^2.0.1"
- semver "^5.5.1"
- strip-ansi "^4.0.0"
- strip-json-comments "^2.0.1"
- table "^5.2.3"
- text-table "^0.2.0"
-
-eslint@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.0.1.tgz#4a32181d72cb999d6f54151df7d337131f81cda7"
- integrity sha512-DyQRaMmORQ+JsWShYsSg4OPTjY56u1nCjAmICrE8vLWqyLKxhFXOthwMj1SA8xwfrv0CofLNVnqbfyhwCkaO0w==
+eslint@^6.0.0, eslint@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.1.0.tgz#06438a4a278b1d84fb107d24eaaa35471986e646"
+ integrity sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==
dependencies:
"@babel/code-frame" "^7.0.0"
ajv "^6.10.0"
@@ -3969,7 +4014,7 @@ eslint@^6.0.1:
cross-spawn "^6.0.5"
debug "^4.0.1"
doctrine "^3.0.0"
- eslint-scope "^4.0.3"
+ eslint-scope "^5.0.0"
eslint-utils "^1.3.1"
eslint-visitor-keys "^1.0.0"
espree "^6.0.0"
@@ -3977,37 +4022,29 @@ eslint@^6.0.1:
esutils "^2.0.2"
file-entry-cache "^5.0.1"
functional-red-black-tree "^1.0.1"
- glob-parent "^3.1.0"
+ glob-parent "^5.0.0"
globals "^11.7.0"
ignore "^4.0.6"
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
- inquirer "^6.2.2"
+ inquirer "^6.4.1"
is-glob "^4.0.0"
js-yaml "^3.13.1"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.3.0"
- lodash "^4.17.11"
+ lodash "^4.17.14"
minimatch "^3.0.4"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
optionator "^0.8.2"
progress "^2.0.0"
regexpp "^2.0.1"
- semver "^5.5.1"
- strip-ansi "^4.0.0"
- strip-json-comments "^2.0.1"
+ semver "^6.1.2"
+ strip-ansi "^5.2.0"
+ strip-json-comments "^3.0.1"
table "^5.2.3"
text-table "^0.2.0"
-
-espree@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
- integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==
- dependencies:
- acorn "^6.0.7"
- acorn-jsx "^5.0.0"
- eslint-visitor-keys "^1.0.0"
+ v8-compile-cache "^2.0.3"
espree@^6.0.0:
version "6.0.0"
@@ -4048,9 +4085,9 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
esutils@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
- integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
event-emitter@^0.3.5:
version "0.3.5"
@@ -4162,9 +4199,9 @@ extend@^3.0.0, extend@~3.0.2:
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
external-editor@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27"
- integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
+ integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
dependencies:
chardet "^0.7.0"
iconv-lite "^0.4.24"
@@ -4209,7 +4246,7 @@ fast-deep-equal@^2.0.1:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
-fast-glob@^2.0.2:
+fast-glob@^2.2.6:
version "2.2.7"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==
@@ -4282,6 +4319,13 @@ fill-range@^4.0.0:
repeat-string "^1.6.1"
to-regex-range "^2.1.0"
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
@@ -4351,6 +4395,16 @@ findup-sync@^3.0.0:
micromatch "^3.0.4"
resolve-dir "^1.0.1"
+findup-sync@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0"
+ integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==
+ dependencies:
+ detect-file "^1.0.0"
+ is-glob "^4.0.0"
+ micromatch "^4.0.2"
+ resolve-dir "^1.0.1"
+
fined@^1.0.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b"
@@ -4422,9 +4476,9 @@ forever-agent@~0.6.1:
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
form-data@^2.3.1:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.4.0.tgz#4902b831b051e0db5612a35e1a098376f7b13ad8"
- integrity sha512-4FinE8RfqYnNim20xDwZZE0V2kOs/AuElIjFUbPuegQSaoZM+vUT5FnwSl10KPugH4voTg1bEQlcbCG9ka75TA==
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.0.tgz#094ec359dc4b55e7d62e0db4acd76e89fe874d37"
+ integrity sha512-WXieX3G/8side6VIqx44ablyULoGruSde5PNTxoUyo5CeyAMX6nVWUd0rgist/EuX655cjhUhTo1Fo3tRYqbcA==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.6"
@@ -4497,21 +4551,12 @@ fs-extra@5.0.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-extra@^7.0.0:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
- integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^4.0.0"
- universalify "^0.1.0"
-
-fs-extra@^8.0.1:
- version "8.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.0.1.tgz#90294081f978b1f182f347a440a209154344285b"
- integrity sha512-W+XLrggcDzlle47X/XnS7FXrXu9sDo+Ze9zpndeBxdgv88FHLm1HtmkhEwavruS6koanBjp098rUpHs65EmG7A==
+fs-extra@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
dependencies:
- graceful-fs "^4.1.2"
+ graceful-fs "^4.2.0"
jsonfile "^4.0.0"
universalify "^0.1.0"
@@ -4586,13 +4631,13 @@ gauge@~2.7.3:
strip-ansi "^3.0.1"
wide-align "^1.1.0"
-gawk@^4.6.3:
- version "4.6.3"
- resolved "https://registry.yarnpkg.com/gawk/-/gawk-4.6.3.tgz#6c4c0cc09df3130c951ba9f33fa43da1f7c09518"
- integrity sha512-Er80uXBfbpkq4urzr9kD0/5QOyo8YBQrzs+hTmK7Xk+aBWyh4w4t1EGhEzTI8JzWRguFGdQnwNRKcZmj/E5qvA==
+gawk@^4.6.4:
+ version "4.6.4"
+ resolved "https://registry.yarnpkg.com/gawk/-/gawk-4.6.4.tgz#c97fffacf6366a474bf1ff09af6d6e5c934fd48d"
+ integrity sha512-CN2OBU1iF4QV0EjS/ZFVxODmcqXlNlW364evtYjZxXsZ0ibfKJwwd0neLX9sxb6MArGREOczstGkte4CPskpXw==
dependencies:
fast-deep-equal "^2.0.1"
- source-map-support "^0.5.9"
+ source-map-support "^0.5.12"
genfun@^5.0.0:
version "5.0.0"
@@ -4644,10 +4689,10 @@ get-pkg-repo@^1.0.0:
parse-github-repo-url "^1.3.0"
through2 "^2.0.0"
-get-port@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc"
- integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=
+get-port@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119"
+ integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==
get-stdin@^4.0.1:
version "4.0.1"
@@ -4692,13 +4737,13 @@ git-remote-origin-url@^2.0.0:
gitconfiglocal "^1.0.0"
pify "^2.3.0"
-git-semver-tags@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.2.tgz#f506ec07caade191ac0c8d5a21bdb8131b4934e3"
- integrity sha512-34lMF7Yo1xEmsK2EkbArdoU79umpvm0MfzaDkSNYSJqtM5QLAVTPWgpiXSVI5o/O9EvZPSrP4Zvnec/CqhSd5w==
+git-semver-tags@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.3.tgz#48988a718acf593800f99622a952a77c405bfa34"
+ integrity sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==
dependencies:
meow "^4.0.0"
- semver "^5.5.0"
+ semver "^6.0.0"
git-up@^4.0.0:
version "4.0.1"
@@ -4730,6 +4775,13 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
+glob-parent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954"
+ integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==
+ dependencies:
+ is-glob "^4.0.1"
+
glob-stream@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4"
@@ -4787,7 +4839,7 @@ glob@7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1:
+glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1:
version "7.1.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
@@ -4845,18 +4897,19 @@ globals@^9.18.0:
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
-globby@^8.0.1:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d"
- integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==
+globby@^9.2.0:
+ version "9.2.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d"
+ integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==
dependencies:
- array-union "^1.0.1"
- dir-glob "2.0.0"
- fast-glob "^2.0.2"
- glob "^7.1.2"
- ignore "^3.3.5"
- pify "^3.0.0"
- slash "^1.0.0"
+ "@types/glob" "^7.1.1"
+ array-union "^1.0.2"
+ dir-glob "^2.2.2"
+ fast-glob "^2.2.6"
+ glob "^7.1.3"
+ ignore "^4.0.3"
+ pify "^4.0.1"
+ slash "^2.0.0"
globule@^1.2.1:
version "1.2.1"
@@ -4874,10 +4927,10 @@ glogg@^1.0.0:
dependencies:
sparkles "^1.0.0"
-graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
- version "4.1.15"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
- integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
+graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.1.tgz#1c1f0c364882c868f5bff6512146328336a11b1d"
+ integrity sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==
"graceful-readlink@>= 1.0.0":
version "1.0.1"
@@ -4945,26 +4998,26 @@ gulp-debug@^4.0.0:
through2 "^2.0.0"
tildify "^1.1.2"
-gulp-eslint@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/gulp-eslint/-/gulp-eslint-5.0.0.tgz#2a2684095f774b2cf79310262078c56cc7a12b52"
- integrity sha512-9GUqCqh85C7rP9120cpxXuZz2ayq3BZc85pCTuPJS03VQYxne0aWPIXWx6LSvsGPa3uRqtSO537vaugOh+5cXg==
+gulp-eslint@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/gulp-eslint/-/gulp-eslint-6.0.0.tgz#7d402bb45f8a67652b868277011812057370a832"
+ integrity sha512-dCVPSh1sA+UVhn7JSQt7KEb4An2sQNbOdB3PA8UCfxsoPlAKjJHxYHGXdXC7eb+V1FAnilSFFqslPrq037l1ig==
dependencies:
- eslint "^5.0.1"
+ eslint "^6.0.0"
fancy-log "^1.3.2"
plugin-error "^1.0.1"
-gulp-load-plugins@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/gulp-load-plugins/-/gulp-load-plugins-1.6.0.tgz#2d060c42faf481141ef638431572923d8701bd0d"
- integrity sha512-HlCODki0WHJvQIgAsJYOTkyo0c7TsDCetvfhrdGz9JYPL6A4mFRMGmKfoi6JmXjA/vvzg+fkT91c9FBh7rnkyg==
+gulp-load-plugins@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/gulp-load-plugins/-/gulp-load-plugins-2.0.0.tgz#98c471292c6777f7fbb554ba1588dc64c88ddd61"
+ integrity sha512-/tYScCootRAlSv2mIiwazDodp8p2DILyoNP+6QjCvYpLtfEuuNqVGv/lfhZhWD6cWtfqiFdVYfSjzL4MLIcM1w==
dependencies:
- array-unique "^0.2.1"
+ array-unique "^0.3.2"
fancy-log "^1.2.0"
findup-sync "^3.0.0"
gulplog "^1.0.0"
has-gulplog "^0.1.0"
- micromatch "^3.1.10"
+ micromatch "^4.0.2"
resolve "^1.1.7"
gulp-plumber@^1.2.1:
@@ -5035,7 +5088,7 @@ gulplog@^1.0.0:
dependencies:
glogg "^1.0.0"
-handlebars@^4.1.0, handlebars@^4.1.2:
+handlebars@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67"
integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==
@@ -5071,6 +5124,11 @@ has-flag@^3.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
has-gulplog@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
@@ -5159,46 +5217,46 @@ he@1.2.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
-helmet-crossdomain@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.3.0.tgz#707e2df930f13ad61f76ed08e1bb51ab2b2e85fa"
- integrity sha512-YiXhj0E35nC4Na5EPE4mTfoXMf9JTGpN4OtB4aLqShKuH9d2HNaJX5MQoglO6STVka0uMsHyG5lCut5Kzsy7Lg==
+helmet-crossdomain@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz#5f1fe5a836d0325f1da0a78eaa5fd8429078894e"
+ integrity sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA==
-helmet-csp@2.7.1:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.7.1.tgz#e8e0b5186ffd4db625cfcce523758adbfadb9dca"
- integrity sha512-sCHwywg4daQ2mY0YYwXSZRsgcCeerUwxMwNixGA7aMLkVmPTYBl7gJoZDHOZyXkqPrtuDT3s2B1A+RLI7WxSdQ==
+helmet-csp@2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.8.0.tgz#746d329e24ef39c4ebc00278a48abd3c209e0378"
+ integrity sha512-MlCPeM0Sm3pS9RACRihx70VeTHmkQwa7sum9EK1tfw1VZyvFU0dBWym9nHh3CRkTRNlyNm/WFCMvuh9zXkOjNw==
dependencies:
camelize "1.0.0"
- content-security-policy-builder "2.0.0"
+ content-security-policy-builder "2.1.0"
dasherize "2.0.0"
platform "1.3.5"
helmet@^3.18.0:
- version "3.18.0"
- resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.18.0.tgz#37666f7c861bd1ff3015e0cdb903a43501e3da3e"
- integrity sha512-TsKlGE5UVkV0NiQ4PllV9EVfZklPjyzcMEMjWlyI/8S6epqgRT+4s4GHVgc25x0TixsKvp3L7c91HQQt5l0+QA==
+ version "3.20.0"
+ resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.20.0.tgz#8a9383bf8230a461cafe8bc763423fbde110d2fc"
+ integrity sha512-Ob+TqmQFZ5f7WgP8kBbAzNPsbf6p1lOj5r+327/ymw/IILWih3wcx9u/u/S8Mwv5wbBkO7Li6x5s23t3COhUKw==
dependencies:
depd "2.0.0"
- dns-prefetch-control "0.1.0"
- dont-sniff-mimetype "1.0.0"
+ dns-prefetch-control "0.2.0"
+ dont-sniff-mimetype "1.1.0"
expect-ct "0.2.0"
feature-policy "0.3.0"
frameguard "3.1.0"
- helmet-crossdomain "0.3.0"
- helmet-csp "2.7.1"
- hide-powered-by "1.0.0"
+ helmet-crossdomain "0.4.0"
+ helmet-csp "2.8.0"
+ hide-powered-by "1.1.0"
hpkp "2.0.0"
hsts "2.2.0"
ienoopen "1.1.0"
nocache "2.1.0"
referrer-policy "1.2.0"
- x-xss-protection "1.1.0"
+ x-xss-protection "1.2.0"
-hide-powered-by@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.0.0.tgz#4a85ad65881f62857fc70af7174a1184dccce32b"
- integrity sha1-SoWtZYgfYoV/xwr3F0oRhNzM4ys=
+hide-powered-by@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.1.0.tgz#be3ea9cab4bdb16f8744be873755ca663383fa7a"
+ integrity sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg==
hmac-drbg@^1.0.0:
version "1.0.1"
@@ -5216,18 +5274,19 @@ homedir-polyfill@^1.0.1:
dependencies:
parse-passwd "^1.0.0"
-hook-emitter@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/hook-emitter/-/hook-emitter-3.1.2.tgz#73637605f78f2898c4b6131b41f33ff0145d5f81"
- integrity sha512-Rhzpb3juaYJwGIdopkyzvqULXMcLFyk3aQkTEw/bDVlmcl+3qe+ccvWPUO8f38x3LvnEtHHTphSq4+aSeiw7dA==
+hook-emitter@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/hook-emitter/-/hook-emitter-4.0.0.tgz#b1c93980605472fe3eb192f68df72f41b046ce9d"
+ integrity sha512-roFcnj7+sOsmidVkfpl8YdAQ9RReCHmRYi4rsvWCHA2oB7/MJJ9Tac7gip8HYwUEsxmDVNwuWPWfVzFlunYVIw==
dependencies:
- snooplogg "^2.0.0"
- source-map-support "^0.5.9"
+ source-map-support "^0.5.12"
hosted-git-info@^2.1.4, hosted-git-info@^2.6.0:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
- integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
+ version "2.8.2"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.2.tgz#a35c3f355ac1249f1093c0c2a542ace8818c171a"
+ integrity sha512-CyjlXII6LMsPMyUzxpTt8fzh5QwzGqPmQXgY/Jyf4Zfp27t/FvfhwoE/8laaMUcMy816CkWF20I7NeQhwwY88w==
+ dependencies:
+ lru-cache "^5.1.1"
hpkp@2.0.0:
version "2.0.0"
@@ -5277,18 +5336,7 @@ http-cache-semantics@^3.8.1:
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==
-http-errors@1.7.2:
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
- integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
- dependencies:
- depd "~1.1.2"
- inherits "2.0.3"
- setprototypeof "1.1.1"
- statuses ">= 1.5.0 < 2"
- toidentifier "1.0.0"
-
-http-errors@^1.6.3, http-errors@~1.7.2:
+http-errors@1.7.3, http-errors@^1.6.3, http-errors@~1.7.2:
version "1.7.3"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
@@ -5332,11 +5380,11 @@ https-browserify@^1.0.0:
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
https-proxy-agent@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
- integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793"
+ integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==
dependencies:
- agent-base "^4.1.0"
+ agent-base "^4.3.0"
debug "^3.1.0"
humanize-ms@^1.2.1:
@@ -5388,17 +5436,12 @@ ignore-walk@^3.0.1:
dependencies:
minimatch "^3.0.4"
-ignore@^3.3.5:
- version "3.3.10"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
- integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
-
-ignore@^4.0.6:
+ignore@^4.0.3, ignore@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
-ignore@^5.1.2:
+ignore@^5.1.1, ignore@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.2.tgz#e28e584d43ad7e92f96995019cc43b9e1ac49558"
integrity sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==
@@ -5412,19 +5455,19 @@ import-fresh@^2.0.0:
resolve-from "^3.0.0"
import-fresh@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
- integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118"
+ integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==
dependencies:
parent-module "^1.0.0"
resolve-from "^4.0.0"
-import-local@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
- integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==
+import-local@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
+ integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
dependencies:
- pkg-dir "^2.0.0"
+ pkg-dir "^3.0.0"
resolve-cwd "^2.0.0"
imurmurhash@^0.1.4:
@@ -5444,6 +5487,11 @@ indent-string@^3.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
+infer-owner@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
+ integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
+
inflation@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f"
@@ -5491,10 +5539,10 @@ init-package-json@^1.10.3:
validate-npm-package-license "^3.0.1"
validate-npm-package-name "^3.0.0"
-inquirer@^6.2.0, inquirer@^6.2.2:
- version "6.4.1"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.4.1.tgz#7bd9e5ab0567cd23b41b0180b68e0cfa82fc3c0b"
- integrity sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw==
+inquirer@^6.2.0, inquirer@^6.4.1:
+ version "6.5.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42"
+ integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==
dependencies:
ansi-escapes "^3.2.0"
chalk "^2.4.2"
@@ -5502,7 +5550,7 @@ inquirer@^6.2.0, inquirer@^6.2.2:
cli-width "^2.0.0"
external-editor "^3.0.3"
figures "^2.0.0"
- lodash "^4.17.11"
+ lodash "^4.17.12"
mute-stream "0.0.7"
run-async "^2.2.0"
rxjs "^6.4.0"
@@ -5596,12 +5644,12 @@ is-callable@^1.1.4:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
-is-ci@^1.0.10:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
- integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
+is-ci@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+ integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
dependencies:
- ci-info "^1.5.0"
+ ci-info "^2.0.0"
is-data-descriptor@^0.1.4:
version "0.1.4"
@@ -5693,7 +5741,7 @@ is-glob@^3.1.0:
dependencies:
is-extglob "^2.1.0"
-is-glob@^4.0.0:
+is-glob@^4.0.0, is-glob@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
@@ -5717,6 +5765,11 @@ is-number@^4.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
is-obj@^1.0.0, is-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
@@ -5813,7 +5866,7 @@ is-valid-glob@^1.0.0:
resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa"
integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=
-is-windows@^1.0.1, is-windows@^1.0.2:
+is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
@@ -5922,7 +5975,7 @@ js-tokens@^3.0.2:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
-js-yaml@3.13.1, js-yaml@^3.13.0, js-yaml@^3.13.1:
+js-yaml@3.13.1, js-yaml@^3.13.1:
version "3.13.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
@@ -6201,27 +6254,27 @@ lead@^1.0.0:
dependencies:
flush-write-stream "^1.0.2"
-lerna@^3.15.0:
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.15.0.tgz#b044dba8138d7a1a8dd48ac1d80e7541bdde0d1f"
- integrity sha512-kRIQ3bgzkmew5/WZQ0C9WjH0IUf3ZmTNnBwTHfXgLkVY7td0lbwMQFD7zehflUn0zG4ou54o/gn+IfjF0ti/5A==
+lerna@^3.16.4:
+ version "3.16.4"
+ resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.16.4.tgz#158cb4f478b680f46f871d5891f531f3a2cb31ec"
+ integrity sha512-0HfwXIkqe72lBLZcNO9NMRfylh5Ng1l8tETgYQ260ZdHRbPuaLKE3Wqnd2YYRRkWfwPyEyZO8mZweBR+slVe1A==
dependencies:
- "@lerna/add" "3.15.0"
- "@lerna/bootstrap" "3.15.0"
- "@lerna/changed" "3.15.0"
- "@lerna/clean" "3.15.0"
+ "@lerna/add" "3.16.2"
+ "@lerna/bootstrap" "3.16.2"
+ "@lerna/changed" "3.16.4"
+ "@lerna/clean" "3.16.0"
"@lerna/cli" "3.13.0"
- "@lerna/create" "3.15.0"
- "@lerna/diff" "3.15.0"
- "@lerna/exec" "3.15.0"
- "@lerna/import" "3.15.0"
- "@lerna/init" "3.15.0"
- "@lerna/link" "3.15.0"
- "@lerna/list" "3.15.0"
- "@lerna/publish" "3.15.0"
- "@lerna/run" "3.15.0"
- "@lerna/version" "3.15.0"
- import-local "^1.0.0"
+ "@lerna/create" "3.16.0"
+ "@lerna/diff" "3.16.0"
+ "@lerna/exec" "3.16.0"
+ "@lerna/import" "3.16.0"
+ "@lerna/init" "3.16.0"
+ "@lerna/link" "3.16.2"
+ "@lerna/list" "3.16.0"
+ "@lerna/publish" "3.16.4"
+ "@lerna/run" "3.16.0"
+ "@lerna/version" "3.16.4"
+ import-local "^2.0.0"
npmlog "^4.1.2"
levn@^0.3.0, levn@~0.3.0:
@@ -6232,41 +6285,41 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
-libnpm@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-2.0.1.tgz#a48fcdee3c25e13c77eb7c60a0efe561d7fb0d8f"
- integrity sha512-qTKoxyJvpBxHZQB6k0AhSLajyXq9ZE/lUsZzuHAplr2Bpv9G+k4YuYlExYdUCeVRRGqcJt8hvkPh4tBwKoV98w==
+libnpm@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz#0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2"
+ integrity sha512-d7jU5ZcMiTfBqTUJVZ3xid44fE5ERBm9vBnmhp2ECD2Ls+FNXWxHSkO7gtvrnbLO78gwPdNPz1HpsF3W4rjkBQ==
dependencies:
bin-links "^1.1.2"
bluebird "^3.5.3"
find-npm-prefix "^1.0.2"
- libnpmaccess "^3.0.1"
+ libnpmaccess "^3.0.2"
libnpmconfig "^1.2.1"
- libnpmhook "^5.0.2"
- libnpmorg "^1.0.0"
- libnpmpublish "^1.1.0"
- libnpmsearch "^2.0.0"
- libnpmteam "^1.0.1"
+ libnpmhook "^5.0.3"
+ libnpmorg "^1.0.1"
+ libnpmpublish "^1.1.2"
+ libnpmsearch "^2.0.2"
+ libnpmteam "^1.0.2"
lock-verify "^2.0.2"
- npm-lifecycle "^2.1.0"
+ npm-lifecycle "^3.0.0"
npm-logical-tree "^1.2.1"
npm-package-arg "^6.1.0"
- npm-profile "^4.0.1"
- npm-registry-fetch "^3.8.0"
+ npm-profile "^4.0.2"
+ npm-registry-fetch "^4.0.0"
npmlog "^4.1.2"
- pacote "^9.2.3"
+ pacote "^9.5.3"
read-package-json "^2.0.13"
stringify-package "^1.0.0"
-libnpmaccess@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8"
- integrity sha512-RlZ7PNarCBt+XbnP7R6PoVgOq9t+kou5rvhaInoNibhPO7eMlRfS0B8yjatgn2yaHIwWNyoJDolC/6Lc5L/IQA==
+libnpmaccess@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.2.tgz#8b2d72345ba3bef90d3b4f694edd5c0417f58923"
+ integrity sha512-01512AK7MqByrI2mfC7h5j8N9V4I7MHJuk9buo8Gv+5QgThpOgpjB7sQBDDkeZqRteFb1QM/6YNdHfG7cDvfAQ==
dependencies:
aproba "^2.0.0"
get-stream "^4.0.0"
npm-package-arg "^6.1.0"
- npm-registry-fetch "^3.8.0"
+ npm-registry-fetch "^4.0.0"
libnpmconfig@^1.2.1:
version "1.2.1"
@@ -6277,30 +6330,30 @@ libnpmconfig@^1.2.1:
find-up "^3.0.0"
ini "^1.3.5"
-libnpmhook@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.2.tgz#d12817b0fb893f36f1d5be20017f2aea25825d94"
- integrity sha512-vLenmdFWhRfnnZiNFPNMog6CK7Ujofy2TWiM2CrpZUjBRIhHkJeDaAbJdYCT6W4lcHtyrJR8yXW8KFyq6UAp1g==
+libnpmhook@^5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.3.tgz#4020c0f5edbf08ebe395325caa5ea01885b928f7"
+ integrity sha512-UdNLMuefVZra/wbnBXECZPefHMGsVDTq5zaM/LgKNE9Keyl5YXQTnGAzEo+nFOpdRqTWI9LYi4ApqF9uVCCtuA==
dependencies:
aproba "^2.0.0"
figgy-pudding "^3.4.1"
get-stream "^4.0.0"
- npm-registry-fetch "^3.8.0"
+ npm-registry-fetch "^4.0.0"
-libnpmorg@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.0.tgz#979b868c48ba28c5820e3bb9d9e73c883c16a232"
- integrity sha512-o+4eVJBoDGMgRwh2lJY0a8pRV2c/tQM/SxlqXezjcAg26Qe9jigYVs+Xk0vvlYDWCDhP0g74J8UwWeAgsB7gGw==
+libnpmorg@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.1.tgz#5d2503f6ceb57f33dbdcc718e6698fea6d5ad087"
+ integrity sha512-0sRUXLh+PLBgZmARvthhYXQAWn0fOsa6T5l3JSe2n9vKG/lCVK4nuG7pDsa7uMq+uTt2epdPK+a2g6btcY11Ww==
dependencies:
aproba "^2.0.0"
figgy-pudding "^3.4.1"
get-stream "^4.0.0"
- npm-registry-fetch "^3.8.0"
+ npm-registry-fetch "^4.0.0"
-libnpmpublish@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.1.tgz#ff0c6bb0b4ad2bda2ad1f5fba6760a4af37125f0"
- integrity sha512-nefbvJd/wY38zdt+b9SHL6171vqBrMtZ56Gsgfd0duEKb/pB8rDT4/ObUQLrHz1tOfht1flt2zM+UGaemzAG5g==
+libnpmpublish@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.2.tgz#4201cfc4a69c44e6f454ec548fa1cd90f10df0a0"
+ integrity sha512-2yIwaXrhTTcF7bkJKIKmaCV9wZOALf/gsTDxVSu/Gu/6wiG3fA8ce8YKstiWKTxSFNC0R7isPUb6tXTVFZHt2g==
dependencies:
aproba "^2.0.0"
figgy-pudding "^3.5.1"
@@ -6308,28 +6361,28 @@ libnpmpublish@^1.1.0:
lodash.clonedeep "^4.5.0"
normalize-package-data "^2.4.0"
npm-package-arg "^6.1.0"
- npm-registry-fetch "^3.8.0"
+ npm-registry-fetch "^4.0.0"
semver "^5.5.1"
ssri "^6.0.1"
-libnpmsearch@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.1.tgz#eccc73a8fbf267d765d18082b85daa2512501f96"
- integrity sha512-K0yXyut9MHHCAH+DOiglQCpmBKPZXSUu76+BE2maSEfQN15OwNaA/Aiioe9lRFlVFOr7WcuJCY+VSl+gLi9NTA==
+libnpmsearch@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.2.tgz#9a4f059102d38e3dd44085bdbfe5095f2a5044cf"
+ integrity sha512-VTBbV55Q6fRzTdzziYCr64+f8AopQ1YZ+BdPOv16UegIEaE8C0Kch01wo4s3kRTFV64P121WZJwgmBwrq68zYg==
dependencies:
figgy-pudding "^3.5.1"
get-stream "^4.0.0"
- npm-registry-fetch "^3.8.0"
+ npm-registry-fetch "^4.0.0"
-libnpmteam@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.1.tgz#ff704b1b6c06ea674b3b1101ac3e305f5114f213"
- integrity sha512-gDdrflKFCX7TNwOMX1snWojCoDE5LoRWcfOC0C/fqF7mBq8Uz9zWAX4B2RllYETNO7pBupBaSyBDkTAC15cAMg==
+libnpmteam@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.2.tgz#8b48bcbb6ce70dd8150c950fcbdbf3feb6eec820"
+ integrity sha512-p420vM28Us04NAcg1rzgGW63LMM6rwe+6rtZpfDxCcXxM0zUTLl7nPFEnRF3JfFBF5skF/yuZDUthTsHgde8QA==
dependencies:
aproba "^2.0.0"
figgy-pudding "^3.4.1"
get-stream "^4.0.0"
- npm-registry-fetch "^3.8.0"
+ npm-registry-fetch "^4.0.0"
liftoff@^3.1.0:
version "3.1.0"
@@ -6376,12 +6429,23 @@ load-json-file@^4.0.0:
pify "^3.0.0"
strip-bom "^3.0.0"
-loader-runner@^2.3.0:
+load-json-file@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3"
+ integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==
+ dependencies:
+ graceful-fs "^4.1.15"
+ parse-json "^4.0.0"
+ pify "^4.0.1"
+ strip-bom "^3.0.0"
+ type-fest "^0.3.0"
+
+loader-runner@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
+loader-utils@^1.0.2, loader-utils@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
@@ -6485,7 +6549,7 @@ lodash._reevaluate@^3.0.0:
resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed"
integrity sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=
-lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0:
+lodash._reinterpolate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
@@ -6626,9 +6690,9 @@ lodash.merge@^3.3.2:
lodash.toplainobject "^3.0.0"
lodash.merge@^4.4.0:
- version "4.6.1"
- resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"
- integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+ integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
lodash.pick@^4.2.1:
version "4.4.0"
@@ -6680,12 +6744,12 @@ lodash.template@^3.0.0:
lodash.restparam "^3.0.0"
lodash.templatesettings "^3.0.0"
-lodash.template@^4.0.2:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0"
- integrity sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=
+lodash.template@^4.0.2, lodash.template@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
+ integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
dependencies:
- lodash._reinterpolate "~3.0.0"
+ lodash._reinterpolate "^3.0.0"
lodash.templatesettings "^4.0.0"
lodash.templatesettings@^3.0.0:
@@ -6697,11 +6761,11 @@ lodash.templatesettings@^3.0.0:
lodash.escape "^3.0.0"
lodash.templatesettings@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316"
- integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
+ integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
dependencies:
- lodash._reinterpolate "~3.0.0"
+ lodash._reinterpolate "^3.0.0"
lodash.toplainobject@^3.0.0:
version "3.0.0"
@@ -6721,10 +6785,10 @@ lodash@^3.10.1:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
-lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@~4.17.10:
- version "4.17.11"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
- integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
+lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@~4.17.10:
+ version "4.17.15"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
+ integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
log-symbols@2.2.0:
version "2.2.0"
@@ -6733,10 +6797,10 @@ log-symbols@2.2.0:
dependencies:
chalk "^2.0.1"
-lolex@^4.0.1, lolex@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.1.0.tgz#ecdd7b86539391d8237947a3419aa8ac975f0fe1"
- integrity sha512-BYxIEXiVq5lGIXeVHnsFzqa1TxN5acnKnPCdlZSpzm8viNEOhiigupA4vTQ9HEFQ6nLTQ9wQOgBknJgzUYQ9Aw==
+lolex@^4.1.0, lolex@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7"
+ integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==
loose-envify@^1.0.0:
version "1.4.0"
@@ -6753,7 +6817,7 @@ loud-rejection@^1.0.0:
currently-unhandled "^0.4.1"
signal-exit "^3.0.0"
-lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.3:
+lru-cache@^4.0.1:
version "4.1.5"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
@@ -6800,17 +6864,17 @@ make-dir@^2.0.0, make-dir@^2.1.0:
pify "^4.0.1"
semver "^5.6.0"
-make-fetch-happen@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083"
- integrity sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==
+make-fetch-happen@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.0.tgz#a8e3fe41d3415dd656fe7b8e8172e1fb4458b38d"
+ integrity sha512-nFr/vpL1Jc60etMVKeaLOqfGjMMb3tAHFVJWxHOFCFS04Zmd7kGlMxo0l1tzfhoQje0/UPnd0X8OeGUiXXnfPA==
dependencies:
agentkeepalive "^3.4.1"
- cacache "^11.0.1"
+ cacache "^12.0.0"
http-cache-semantics "^3.8.1"
http-proxy-agent "^2.1.0"
https-proxy-agent "^2.2.1"
- lru-cache "^4.1.2"
+ lru-cache "^5.1.1"
mississippi "^3.0.0"
node-fetch-npm "^2.0.2"
promise-retry "^1.1.1"
@@ -6915,7 +6979,7 @@ memoizee@0.4.X:
next-tick "1"
timers-ext "^0.1.5"
-memory-fs@^0.4.0, memory-fs@~0.4.1:
+memory-fs@^0.4.0, memory-fs@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
@@ -6969,16 +7033,16 @@ merge-source-map@^1.1.0:
source-map "^0.6.1"
merge2@^1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5"
- integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.4.tgz#c9269589e6885a60cf80605d9522d4b67ca646e3"
+ integrity sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A==
methods@^1.1.1, methods@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
+micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
@@ -6997,6 +7061,14 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
snapdragon "^0.8.1"
to-regex "^3.0.2"
+micromatch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
+ integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.0.5"
+
miller-rabin@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
@@ -7042,7 +7114,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.4, minimatch@~3.0.2:
+minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@@ -7111,19 +7183,26 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
+mkdirp-promise@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1"
+ integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=
+ dependencies:
+ mkdirp "*"
+
+mkdirp@*, mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
-mocha-jenkins-reporter@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/mocha-jenkins-reporter/-/mocha-jenkins-reporter-0.4.1.tgz#d944ce5f7fb157f4bbcea8de8d535db50ade2823"
- integrity sha512-IqnIylrkKJG0lxeoawRkhv/uiYojMEw3o9TQOpDFarPYKVq4ymngVPwsyfMB0XMDqtDbOTOCviFg8xOLHb80/Q==
+mocha-jenkins-reporter@^0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/mocha-jenkins-reporter/-/mocha-jenkins-reporter-0.4.2.tgz#122023651b13b9b99b915940950608f833655540"
+ integrity sha512-ofQ41SUX5Uh3eHLn/ki4UTsh/7Yuk6p8N3RbxB275TLPErjkJGXuiT5i0haJ51UdJ+bkUhdyIpcCOHS3XSNVsg==
dependencies:
- diff "1.0.7"
+ diff "4.0.1"
mkdirp "0.5.1"
mocha "^5.2.0"
xml "^1.0.1"
@@ -7145,10 +7224,10 @@ mocha@^5.2.0:
mkdirp "0.5.1"
supports-color "5.4.0"
-mocha@^6.1.4:
- version "6.1.4"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.1.4.tgz#e35fada242d5434a7e163d555c705f6875951640"
- integrity sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==
+mocha@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.0.tgz#f896b642843445d1bb8bca60eabd9206b8916e56"
+ integrity sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==
dependencies:
ansi-colors "3.2.3"
browser-stdout "1.3.1"
@@ -7216,15 +7295,15 @@ msgpack-lite@^0.1.26:
int64-buffer "^0.1.9"
isarray "^1.0.0"
-multimatch@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
- integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=
+multimatch@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b"
+ integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==
dependencies:
- array-differ "^1.0.0"
- array-union "^1.0.1"
- arrify "^1.0.0"
- minimatch "^3.0.0"
+ array-differ "^2.0.3"
+ array-union "^1.0.2"
+ arrify "^1.0.1"
+ minimatch "^3.0.4"
multipipe@^0.1.2:
version "0.1.2"
@@ -7248,7 +7327,7 @@ mute-stream@~0.0.4:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
-mz@^2.7.0:
+mz@^2.5.0, mz@^2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
@@ -7262,12 +7341,12 @@ nan@^2.12.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
-nanobuffer@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/nanobuffer/-/nanobuffer-1.1.4.tgz#43dba1eaf2b95f3025ae4fb6b20d86429ebe0160"
- integrity sha512-yy07+we+tsT1P+4kNzoHhfn5GcnZjb7OM62W2jRSdQf/VpB0QB6x5+5k3OKc5i2Fxprs2+P4EgxujUvhsp8TkQ==
+nanobuffer@^1.1.4, nanobuffer@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/nanobuffer/-/nanobuffer-1.1.5.tgz#2da4b706f4627c298fb4610eac35ca8fa2c9b174"
+ integrity sha512-zhDz+zPssav2UCIBb4GhzoFq6+DupybuOR9am44XmpWafRBLNficoDMhhBKM2Q+2IZG2SqL6eC7KWf05qVsghA==
dependencies:
- source-map-support "^0.5.9"
+ source-map-support "^0.5.12"
nanomatch@^1.2.9:
version "1.2.13"
@@ -7286,10 +7365,10 @@ nanomatch@^1.2.9:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-napi-macros@^1.8.2:
- version "1.8.2"
- resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-1.8.2.tgz#299265c1d8aa401351ad0675107d751228c03eda"
- integrity sha512-Tr0DNY4RzTaBG2W2m3l7ZtFuJChTH6VZhXVhkGGjF/4cZTt+i8GcM9ozD+30Lmr4mDoZ5Xx34t2o4GJqYWDGcg==
+napi-macros@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b"
+ integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==
natural-compare@^1.4.0:
version "1.4.0"
@@ -7310,7 +7389,7 @@ negotiator@0.6.2:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-neo-async@^2.5.0, neo-async@^2.6.0:
+neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
@@ -7330,12 +7409,12 @@ nice-try@^1.0.4:
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
-nise@^1.4.10:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.0.tgz#d03ea0e6c1b75c638015aa3585eddc132949a50d"
- integrity sha512-Z3sfYEkLFzFmL8KY6xnSJLRxwQwYBjOXi/24lb62ZnZiGA0JUzGGTI6TBIgfCSMIDl9Jlu8SRmHNACLTemDHww==
+nise@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.1.tgz#de61d99a1d3b46b5233be4531569b9a8e27372b2"
+ integrity sha512-edFWm0fsFG2n318rfEnKlTZTkjlbVOFF9XIA+fj+Ed+Qz1laYW2lobwavWoMzGrYDHH1EpiNJgDfvGnkZztR/g==
dependencies:
- "@sinonjs/formatio" "^3.1.0"
+ "@sinonjs/formatio" "^3.2.1"
"@sinonjs/text-encoding" "^0.7.1"
just-extend "^4.0.2"
lolex "^4.1.0"
@@ -7373,24 +7452,24 @@ node-gyp-build@^4.1.0:
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.0.tgz#3bc3dd7dd4aafecaf64a2e3729e785bc3cdea565"
integrity sha512-rGLv++nK20BG8gc0MzzcYe1Nl3p3mtwJ74Q2QD0HTEDKZ6NvOFSelY6s2QBPWIHRR8h7hpad0LiwajfClBJfNg==
-node-gyp@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45"
- integrity sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==
+node-gyp@^5.0.2, node-gyp@^5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.0.3.tgz#80d64c23790244991b6d44532f0a351bedd3dd45"
+ integrity sha512-z/JdtkFGUm0QaQUusvloyYuGDub3nUbOo5de1Fz57cM++osBTvQatBUSTlF1k/w8vFHPxxXW6zxGvkxXSpaBkQ==
dependencies:
+ env-paths "^1.0.0"
glob "^7.0.3"
graceful-fs "^4.1.2"
mkdirp "^0.5.0"
nopt "2 || 3"
npmlog "0 || 1 || 2 || 3 || 4"
- osenv "0"
request "^2.87.0"
rimraf "2"
semver "~5.3.0"
tar "^4.4.8"
which "1"
-node-libs-browser@^2.0.0:
+node-libs-browser@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
@@ -7455,7 +7534,7 @@ nopt@^4.0.1:
abbrev "1"
osenv "^0.1.4"
-normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0:
+normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
@@ -7494,14 +7573,14 @@ npm-bundled@^1.0.1:
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==
-npm-lifecycle@^2.1.0, npm-lifecycle@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.1.tgz#0027c09646f0fd346c5c93377bdaba59c6748fdf"
- integrity sha512-+Vg6I60Z75V/09pdcH5iUo/99Q/vop35PaI99elvxk56azSVVsdsSsS/sXqKDNwbRRNN1qSxkcO45ZOu0yOWew==
+npm-lifecycle@^3.0.0, npm-lifecycle@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.2.tgz#06f2253ea3b9e122ce3e55e3496670a810afcc84"
+ integrity sha512-nhfOcoTHrW1lJJlM2o77vTE2RWR4YOVyj7YzmY0y5itsMjEuoJHteio/ez0BliENEPsNxIUQgwhyEW9dShj3Ww==
dependencies:
byline "^5.0.0"
graceful-fs "^4.1.15"
- node-gyp "^4.0.0"
+ node-gyp "^5.0.2"
resolve-from "^4.0.0"
slide "^1.1.6"
uid-number "0.0.6"
@@ -7523,10 +7602,10 @@ npm-logical-tree@^1.2.1:
semver "^5.5.0"
validate-npm-package-name "^3.0.0"
-npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc"
- integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==
+npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.4:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44"
+ integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw==
dependencies:
ignore-walk "^3.0.1"
npm-bundled "^1.0.1"
@@ -7540,25 +7619,25 @@ npm-pick-manifest@^2.2.3:
npm-package-arg "^6.0.0"
semver "^5.4.1"
-npm-profile@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.1.tgz#d350f7a5e6b60691c7168fbb8392c3603583f5aa"
- integrity sha512-NQ1I/1Q7YRtHZXkcuU1/IyHeLy6pd+ScKg4+DQHdfsm769TGq6HPrkbuNJVJS4zwE+0mvvmeULzQdWn2L2EsVA==
+npm-profile@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.2.tgz#8272a71c19634d0dce9c35a5daf8ee589cbb0f52"
+ integrity sha512-VRsC04pvRH+9cF+PoVh2nTmJjiG21yu59IHpsBpkxk+jaGAV8lxx96G4SDc0jOHAkfWLXbc6kIph3dGAuRnotQ==
dependencies:
aproba "^1.1.2 || 2"
figgy-pudding "^3.4.1"
- npm-registry-fetch "^3.8.0"
+ npm-registry-fetch "^4.0.0"
-npm-registry-fetch@^3.8.0:
- version "3.9.0"
- resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz#44d841780e2833f06accb34488f8c7450d1a6856"
- integrity sha512-srwmt8YhNajAoSAaDWndmZgx89lJwIZ1GWxOuckH4Coek4uHv5S+o/l9FLQe/awA+JwTnj4FJHldxhlXdZEBmw==
+npm-registry-fetch@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#5ef75845b605855c7964472542c25da172af8677"
+ integrity sha512-Jllq35Jag8dtv0M17ue74XtdQTyqKzuAYGiX9mAjOhkmNjib3bBUgK6mUY61+AHnXeSRobQkpY3/xIOS/omptw==
dependencies:
JSONStream "^1.3.4"
bluebird "^3.5.1"
figgy-pudding "^3.4.1"
- lru-cache "^4.1.3"
- make-fetch-happen "^4.0.1"
+ lru-cache "^5.1.1"
+ make-fetch-happen "^5.0.0"
npm-package-arg "^6.1.0"
npm-run-path@^2.0.0:
@@ -7713,6 +7792,16 @@ object.reduce@^1.0.0:
for-own "^1.0.0"
make-iterator "^1.0.0"
+object.values@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
+ integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.12.0"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+
octokit-pagination-methods@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4"
@@ -7817,7 +7906,7 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-osenv@0, osenv@^0.1.4, osenv@^0.1.5:
+osenv@^0.1.4, osenv@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
@@ -7882,10 +7971,10 @@ p-map-series@^1.0.0:
dependencies:
p-reduce "^1.0.0"
-p-map@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
- integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
+p-map@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+ integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
p-pipe@^1.2.0:
version "1.2.0"
@@ -7931,18 +8020,18 @@ package-hash@^3.0.0:
lodash.flattendeep "^4.4.0"
release-zalgo "^1.0.0"
-pacote@^9.2.3, pacote@^9.5.1:
- version "9.5.1"
- resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.1.tgz#adb0d23daeef6d0b813ab5891d0c6459ccec998d"
- integrity sha512-Zqvczvf/zZ7QNosdE9uTC7SRuvSs9tFqRkF6cJl+2HH7COBnx4BRAGpeXJlrbN+mM0CMHpbi620xdEHhCflghA==
+pacote@^9.5.3, pacote@^9.5.4:
+ version "9.5.4"
+ resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.4.tgz#8baa26f3d1326d13dc2fe0fe84040a364ae30aad"
+ integrity sha512-nWr0ari6E+apbdoN0hToTKZElO5h4y8DGFa2pyNA5GQIdcP0imC96bA0bbPw1gpeguVIiUgHHaAlq/6xfPp8Qw==
dependencies:
bluebird "^3.5.3"
- cacache "^11.3.2"
+ cacache "^12.0.0"
figgy-pudding "^3.5.1"
get-stream "^4.1.0"
glob "^7.1.3"
lru-cache "^5.1.1"
- make-fetch-happen "^4.0.1"
+ make-fetch-happen "^5.0.0"
minimatch "^3.0.4"
minipass "^2.3.5"
mississippi "^3.0.0"
@@ -7951,7 +8040,7 @@ pacote@^9.2.3, pacote@^9.5.1:
npm-package-arg "^6.1.0"
npm-packlist "^1.1.12"
npm-pick-manifest "^2.2.3"
- npm-registry-fetch "^3.8.0"
+ npm-registry-fetch "^4.0.0"
osenv "^0.1.5"
promise-inflight "^1.0.1"
promise-retry "^1.1.1"
@@ -8213,6 +8302,11 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
+picomatch@^2.0.5:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6"
+ integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==
+
pify@^2.0.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -8426,9 +8520,9 @@ pseudomap@^1.0.2:
integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
psl@^1.1.24, psl@^1.1.28:
- version "1.1.33"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.33.tgz#5533d9384ca7aab86425198e10e8053ebfeab661"
- integrity sha512-LTDP2uSrsc7XCb5lO7A8BI1qYxRe/8EqlRvMeEl6rsnYAqDOl8xHR+8lSAIVfrNaSAlTPTNOCgNjWcoUL3AZsw==
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd"
+ integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==
public-encrypt@^4.0.0:
version "4.0.3"
@@ -8533,12 +8627,12 @@ randomfill@^1.0.3:
safe-buffer "^5.1.0"
raw-body@^2.3.3:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
- integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c"
+ integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==
dependencies:
bytes "3.1.0"
- http-errors "1.7.2"
+ http-errors "1.7.3"
iconv-lite "0.4.24"
unpipe "1.0.0"
@@ -8586,15 +8680,13 @@ read-installed@^4.0.3:
graceful-fs "^4.1.2"
read-package-tree@^5.1.6:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.2.tgz#4b6a0ef2d943c1ea36a578214c9a7f6b7424f7a8"
- integrity sha512-rW3XWUUkhdKmN2JKB4FL563YAgtINifso5KShykufR03nJ5loGFlkUMe1g/yxmqX073SoYYTsgXu7XdDinKZuA==
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636"
+ integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==
dependencies:
- debuglog "^1.0.1"
- dezalgo "^1.0.0"
- once "^1.3.0"
read-package-json "^2.0.0"
readdir-scoped-modules "^1.0.0"
+ util-promisify "^2.1.0"
read-pkg-up@^1.0.1:
version "1.0.1"
@@ -8715,9 +8807,9 @@ readable-stream@~1.1.9:
string_decoder "~0.10.x"
readdir-scoped-modules@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
- integrity sha1-n6+jfShr5dksuuve4DDcm19AZ0c=
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309"
+ integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==
dependencies:
debuglog "^1.0.1"
dezalgo "^1.0.0"
@@ -8937,10 +9029,10 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0:
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
- integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==
+resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0:
+ version "1.12.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
+ integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==
dependencies:
path-parse "^1.0.6"
@@ -8957,7 +9049,7 @@ ret@~0.1.10:
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-retire@^2.0.2:
+retire@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/retire/-/retire-2.0.3.tgz#93abe4ae012486c405534bc7680d9d836c00218e"
integrity sha512-HeAGDZ2iLENYerTM/sfs2Rcrk++WaLX76RpP89ARTmlkIAAWrhC8KcEfi845czV22pLXAlcnmgz9xESGafjXBg==
@@ -9009,11 +9101,16 @@ rxjs@^6.4.0:
dependencies:
tslib "^1.9.0"
-safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
+ integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -9052,10 +9149,10 @@ semver-greatest-satisfied-range@^1.1.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
-semver@^6.0.0, semver@^6.1.1, semver@^6.1.2:
- version "6.1.2"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.2.tgz#079960381376a3db62eb2edc8a3bfb10c7cfe318"
- integrity sha512-z4PqiCpomGtWj8633oeAdXm1Kn1W++3T8epkZYnwiVgIYIJ0QHszhInYSJTYxebByQH7KVCEAn8R9duzZW2PhQ==
+semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@~5.3.0:
version "5.3.0"
@@ -9136,17 +9233,17 @@ sinon-chai@^3.3.0:
resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.3.0.tgz#8084ff99451064910fbe2c2cb8ab540c00b740ea"
integrity sha512-r2JhDY7gbbmh5z3Q62pNbrjxZdOAjpsqW/8yxAZRSqLZqowmfGZPGUZPFf3UX36NLis0cv8VEM5IJh9HgkSOAA==
-sinon@^7.3.2:
- version "7.3.2"
- resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.3.2.tgz#82dba3a6d85f6d2181e1eca2c10d8657c2161f28"
- integrity sha512-thErC1z64BeyGiPvF8aoSg0LEnptSaWE7YhdWWbWXgelOyThent7uKOnnEh9zBxDbKixtr5dEko+ws1sZMuFMA==
+sinon@^7.4.1:
+ version "7.4.1"
+ resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.4.1.tgz#bcd0c63953893e87fa0cc502f52489c32a83d4d9"
+ integrity sha512-7s9buHGHN/jqoy/v4bJgmt0m1XEkCEd/tqdHXumpBp0JSujaT4Ng84JU5wDdK4E85ZMq78NuDe0I3NAqXY8TFg==
dependencies:
"@sinonjs/commons" "^1.4.0"
"@sinonjs/formatio" "^3.2.1"
- "@sinonjs/samsam" "^3.3.1"
+ "@sinonjs/samsam" "^3.3.2"
diff "^3.5.0"
- lolex "^4.0.1"
- nise "^1.4.10"
+ lolex "^4.2.0"
+ nise "^1.5.1"
supports-color "^5.5.0"
slash@^1.0.0:
@@ -9154,6 +9251,11 @@ slash@^1.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
+slash@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+ integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
+
slice-ansi@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
@@ -9218,16 +9320,16 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
-snooplogg@^2.0.0, snooplogg@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/snooplogg/-/snooplogg-2.0.1.tgz#f8fd5bda1eef47e807c067d0a8d57e0514855805"
- integrity sha512-F92r3ccDB4mnzZ3eFFPXDnG10iIj6eiShCiDmO4hQLNhV8rpOtUBl2VbGW1BKIOSDCXJuhFxj6yWtK6MCGa4rw==
+snooplogg@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/snooplogg/-/snooplogg-2.1.0.tgz#3ea78698b21222f0d2e8ca51c3084a3cc89efe6b"
+ integrity sha512-cRrUOZdQCxoDqMtV9u9ss1psSTdysXkLyRHWriFO7DqSQN2FbP2RGoLkyLiq2OJ+9+XxNVjdAl6F/5IuBsNZLw==
dependencies:
- bryt "^1.0.0"
- chalk "^2.4.1"
+ bryt "^1.0.1"
+ chalk "^2.4.2"
nanobuffer "^1.1.4"
- source-map-support "^0.5.9"
- supports-color "^5.5.0"
+ source-map-support "^0.5.12"
+ supports-color "^7.0.0"
socks-proxy-agent@^4.0.0:
version "4.0.2"
@@ -9268,10 +9370,10 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@^0.5.12, source-map-support@^0.5.9, source-map-support@~0.5.10:
- version "0.5.12"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599"
- integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==
+source-map-support@^0.5.12, source-map-support@^0.5.13, source-map-support@^0.5.9, source-map-support@~0.5.12:
+ version "0.5.13"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
+ integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@@ -9330,9 +9432,9 @@ spdx-expression-parse@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1"
- integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
+ integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
@@ -9580,11 +9682,16 @@ strip-indent@^2.0.0:
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=
-strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
+strip-json-comments@2.0.1, strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+strip-json-comments@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
+ integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
+
strong-log-transformer@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10"
@@ -9651,6 +9758,13 @@ supports-color@^6.1.0:
dependencies:
has-flag "^3.0.0"
+supports-color@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.0.0.tgz#f2392c50ab35bb3cae7beebf24d254a19f880c06"
+ integrity sha512-WRt32iTpYEZWYOpcetGm0NPeSvaebccx7hhS/5M6sAiqnhedtFCHFxkjzZlJvFNCPowiKSFGiZk5USQDFy83vQ==
+ dependencies:
+ has-flag "^4.0.0"
+
sver-compat@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8"
@@ -9665,12 +9779,12 @@ sver-compat@^1.5.0:
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
table@^5.2.3:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/table/-/table-5.4.1.tgz#0691ae2ebe8259858efb63e550b6d5f9300171e8"
- integrity sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w==
+ version "5.4.5"
+ resolved "https://registry.yarnpkg.com/table/-/table-5.4.5.tgz#c8f4ea2d8fee08c0027fac27b0ec0a4fe01dfa42"
+ integrity sha512-oGa2Hl7CQjfoaogtrOHEJroOcYILTx7BZWLGsJIlzoWmB2zmguhNfPJZsWPKYek/MgCxfco54gEi31d1uN2hFA==
dependencies:
- ajv "^6.9.1"
- lodash "^4.17.11"
+ ajv "^6.10.2"
+ lodash "^4.17.14"
slice-ansi "^2.1.0"
string-width "^3.0.0"
@@ -9684,7 +9798,7 @@ taffydb@2.7.3:
resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.7.3.tgz#2ad37169629498fca5bc84243096d3cde0ec3a34"
integrity sha1-KtNxaWKUmPylvIQkMJbTzeDsOjQ=
-tapable@^1.0.0, tapable@^1.1.0:
+tapable@^1.0.0, tapable@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
@@ -9700,7 +9814,7 @@ tar-stream@^2.1.0:
inherits "^2.0.3"
readable-stream "^3.1.1"
-tar@^4, tar@^4.4.8:
+tar@^4, tar@^4.4.10, tar@^4.4.8:
version "4.4.10"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1"
integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==
@@ -9730,30 +9844,29 @@ temp-write@^3.4.0:
temp-dir "^1.0.0"
uuid "^3.0.1"
-terser-webpack-plugin@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz#69aa22426299f4b5b3775cbed8cb2c5d419aa1d4"
- integrity sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg==
+terser-webpack-plugin@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4"
+ integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==
dependencies:
- cacache "^11.3.2"
- find-cache-dir "^2.0.0"
+ cacache "^12.0.2"
+ find-cache-dir "^2.1.0"
is-wsl "^1.1.0"
- loader-utils "^1.2.3"
schema-utils "^1.0.0"
serialize-javascript "^1.7.0"
source-map "^0.6.1"
- terser "^4.0.0"
- webpack-sources "^1.3.0"
+ terser "^4.1.2"
+ webpack-sources "^1.4.0"
worker-farm "^1.7.0"
-terser@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/terser/-/terser-4.0.0.tgz#ef356f6f359a963e2cc675517f21c1c382877374"
- integrity sha512-dOapGTU0hETFl1tCo4t56FN+2jffoKyER9qBGoUFyZ6y7WLoKT0bF+lAYi6B6YsILcGF3q1C2FBh8QcKSCgkgA==
+terser@^4.1.2:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-4.1.3.tgz#6074fbcf3517561c3272ea885f422c7a8c32d689"
+ integrity sha512-on13d+cnpn5bMouZu+J8tPYQecsdRJCJuxFJ+FVoPBoLJgk5bCBkp+Uen2hWyi0KIUm6eDarnlAlH+KgIx/PuQ==
dependencies:
- commander "^2.19.0"
+ commander "^2.20.0"
source-map "~0.6.1"
- source-map-support "~0.5.10"
+ source-map-support "~0.5.12"
test-exclude@^5.2.3:
version "5.2.3"
@@ -9896,6 +10009,13 @@ to-regex-range@^2.1.0:
is-number "^3.0.0"
repeat-string "^1.6.1"
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
to-regex@^3.0.1, to-regex@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
@@ -10013,6 +10133,11 @@ type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5:
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+type-fest@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1"
+ integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==
+
type-is@^1.6.16:
version "1.6.18"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
@@ -10022,9 +10147,9 @@ type-is@^1.6.16:
mime-types "~2.1.24"
type@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/type/-/type-1.0.1.tgz#084c9a17fcc9151a2cdb1459905c2e45e4bb7d61"
- integrity sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/type/-/type-1.0.3.tgz#16f5d39f27a2d28d86e48f8981859e9d3296c179"
+ integrity sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg==
typedarray@^0.0.6:
version "0.0.6"
@@ -10106,10 +10231,10 @@ unique-stream@^2.0.2:
json-stable-stringify-without-jsonify "^1.0.1"
through2-filter "^3.0.0"
-universal-user-agent@^2.0.0, universal-user-agent@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.1.0.tgz#5abfbcc036a1ba490cb941f8fd68c46d3669e8e4"
- integrity sha512-8itiX7G05Tu3mGDTdNY2fB4KJ8MgZLS54RdG6PkkfwMAavrXu1mV/lls/GABx9O3Rw4PnTtasxrvbMQoBYY92Q==
+universal-user-agent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-3.0.0.tgz#4cc88d68097bffd7ac42e3b7c903e7481424b4b9"
+ integrity sha512-T3siHThqoj5X0benA5H0qcDnrKGXzU8TKoX15x/tQHw1hQBvIEBHjxQ2klizYsqBOO/Q+WuxoQUihadeeqDnoA==
dependencies:
os-name "^3.0.0"
@@ -10176,6 +10301,13 @@ util-extend@^1.0.1:
resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f"
integrity sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=
+util-promisify@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53"
+ integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=
+ dependencies:
+ object.getownpropertydescriptors "^2.0.3"
+
util@0.10.3:
version "0.10.3"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
@@ -10195,10 +10327,10 @@ uuid@^3.0.1, uuid@^3.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
-v8-compile-cache@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
- integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==
+v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e"
+ integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==
v8flags@^3.0.1:
version "3.1.3"
@@ -10325,7 +10457,7 @@ walkdir@0.0.7:
resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.7.tgz#04da0270a87a778540173cdbf0a2db499a8d9e29"
integrity sha1-BNoCcKh6d4VAFzzb8KLbSZqNnik=
-watchpack@^1.5.0:
+watchpack@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
@@ -10351,43 +10483,42 @@ webidl-conversions@^4.0.2:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
-webpack-sources@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
- integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==
+webpack-sources@^1.4.0, webpack-sources@^1.4.1:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
+ integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
dependencies:
source-list-map "^2.0.0"
source-map "~0.6.1"
-webpack@^4.35.0:
- version "4.35.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.35.0.tgz#ad3f0f8190876328806ccb7a36f3ce6e764b8378"
- integrity sha512-M5hL3qpVvtr8d4YaJANbAQBc4uT01G33eDpl/psRTBCfjxFTihdhin1NtAKB1ruDwzeVdcsHHV3NX+QsAgOosw==
+webpack@^4.39.1:
+ version "4.39.1"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.1.tgz#60ed9fb2b72cd60f26ea526c404d2a4cc97a1bd8"
+ integrity sha512-/LAb2TJ2z+eVwisldp3dqTEoNhzp/TLCZlmZm3GGGAlnfIWDgOEE758j/9atklNLfRyhKbZTCOIoPqLJXeBLbQ==
dependencies:
"@webassemblyjs/ast" "1.8.5"
"@webassemblyjs/helper-module-context" "1.8.5"
"@webassemblyjs/wasm-edit" "1.8.5"
"@webassemblyjs/wasm-parser" "1.8.5"
- acorn "^6.0.5"
- acorn-dynamic-import "^4.0.0"
- ajv "^6.1.0"
- ajv-keywords "^3.1.0"
- chrome-trace-event "^1.0.0"
+ acorn "^6.2.1"
+ ajv "^6.10.2"
+ ajv-keywords "^3.4.1"
+ chrome-trace-event "^1.0.2"
enhanced-resolve "^4.1.0"
- eslint-scope "^4.0.0"
+ eslint-scope "^4.0.3"
json-parse-better-errors "^1.0.2"
- loader-runner "^2.3.0"
- loader-utils "^1.1.0"
- memory-fs "~0.4.1"
- micromatch "^3.1.8"
- mkdirp "~0.5.0"
- neo-async "^2.5.0"
- node-libs-browser "^2.0.0"
+ loader-runner "^2.4.0"
+ loader-utils "^1.2.3"
+ memory-fs "^0.4.1"
+ micromatch "^3.1.10"
+ mkdirp "^0.5.1"
+ neo-async "^2.6.1"
+ node-libs-browser "^2.2.1"
schema-utils "^1.0.0"
- tapable "^1.1.0"
- terser-webpack-plugin "^1.1.0"
- watchpack "^1.5.0"
- webpack-sources "^1.3.0"
+ tapable "^1.1.3"
+ terser-webpack-plugin "^1.4.1"
+ watchpack "^1.6.0"
+ webpack-sources "^1.4.1"
whatwg-url-compat@~0.6.5:
version "0.6.5"
@@ -10441,14 +10572,14 @@ winreg@^1.2.4:
resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz#ba065629b7a925130e15779108cf540990e98d1b"
integrity sha1-ugZWKbepJRMOFXeRCM9UCZDpjRs=
-winreglib@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/winreglib/-/winreglib-1.0.2.tgz#09d915a940eb8321a29dab56977ae4f8627bc44d"
- integrity sha512-SwwJJllsf62CHK8Gt0RC5osNJjg/jepmrVB61+D17a+3C6MjDjjiaA4pLsTMN9bCLpw8Ydyp3JXk8CVPJGR4iw==
+winreglib@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/winreglib/-/winreglib-1.0.5.tgz#a3ed6d3b0b8b1a2e9b84c46b0bd7ce4833487edf"
+ integrity sha512-mm7h162Tih+ymQHKgfs1YQagfUimHemm12QYAcFBxeAaX7WS6e6xdUl2wcwOMDK6ZFWxgM+EtqQOXlGpOdgKfg==
dependencies:
- napi-macros "^1.8.2"
+ napi-macros "^2.0.0"
node-gyp-build "^4.1.0"
- snooplogg "^2.0.1"
+ snooplogg "^2.1.0"
wordwrap@~0.0.2:
version "0.0.3"
@@ -10498,7 +10629,7 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2:
imurmurhash "^0.1.4"
signal-exit "^3.0.2"
-write-json-file@^2.2.0, write-json-file@^2.3.0:
+write-json-file@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f"
integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=
@@ -10510,6 +10641,18 @@ write-json-file@^2.2.0, write-json-file@^2.3.0:
sort-keys "^2.0.0"
write-file-atomic "^2.0.0"
+write-json-file@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a"
+ integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==
+ dependencies:
+ detect-indent "^5.0.0"
+ graceful-fs "^4.1.15"
+ make-dir "^2.1.0"
+ pify "^4.0.1"
+ sort-keys "^2.0.0"
+ write-file-atomic "^2.4.2"
+
write-pkg@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21"
@@ -10525,17 +10668,17 @@ write@1.0.3:
dependencies:
mkdirp "^0.5.1"
-ws@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/ws/-/ws-7.0.1.tgz#1a04e86cc3a57c03783f4910fdb090cf31b8e165"
- integrity sha512-ILHfMbuqLJvnSgYXLgy4kMntroJpe8hT41dOVWM8bxRuw6TK4mgMp9VJUNsZTEc5Bh+Mbs0DJT4M0N+wBG9l9A==
+ws@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.1.1.tgz#f9942dc868b6dffb72c14fd8f2ba05f77a4d5983"
+ integrity sha512-o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A==
dependencies:
async-limiter "^1.0.0"
-x-xss-protection@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.1.0.tgz#4f1898c332deb1e7f2be1280efb3e2c53d69c1a7"
- integrity sha512-rx3GzJlgEeZ08MIcDsU2vY2B1QEriUKJTSiNHHUIem6eg9pzVOr2TL3Y4Pd6TMAM5D5azGjcxqI62piITBDHVg==
+x-xss-protection@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.2.0.tgz#3170498ff8e7e8159f4896b27fa4d4810c2ff486"
+ integrity sha512-xN0kV+8XfOQM2OPPBdEbGtbvJNNP1pvZR7sE6d44cjJFQG4OiGDdienPg5iOUGswBTiGbBvtYDURd30BMJwwqg==
"xml-name-validator@>= 2.0.1 < 3.0.0":
version "2.0.1"
@@ -10558,9 +10701,9 @@ xmldom@0.1.x:
integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk=
xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
- integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
y18n@^3.2.1:
version "3.2.1"
@@ -10598,7 +10741,7 @@ yargs-parser@^11.1.1:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^13.0.0, yargs-parser@^13.1.0:
+yargs-parser@^13.0.0, yargs-parser@^13.1.1:
version "13.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==
@@ -10658,21 +10801,20 @@ yargs@^12.0.1, yargs@^12.0.5:
yargs-parser "^11.1.1"
yargs@^13.2.2:
- version "13.2.4"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83"
- integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==
+ version "13.3.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83"
+ integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==
dependencies:
cliui "^5.0.0"
find-up "^3.0.0"
get-caller-file "^2.0.1"
- os-locale "^3.1.0"
require-directory "^2.1.1"
require-main-filename "^2.0.0"
set-blocking "^2.0.0"
string-width "^3.0.0"
which-module "^2.0.0"
y18n "^4.0.0"
- yargs-parser "^13.1.0"
+ yargs-parser "^13.1.1"
yargs@^7.1.0:
version "7.1.0"
@@ -10693,6 +10835,11 @@ yargs@^7.1.0:
y18n "^3.2.1"
yargs-parser "^5.0.0"
+yarn@^1.17.3:
+ version "1.17.3"
+ resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.17.3.tgz#60e0b77d079eb78e753bb616f7592b51b6a9adce"
+ integrity sha512-CgA8o7nRZaQvmeF/WBx2FC7f9W/0X59T2IaLYqgMo6637wfp5mMEsM3YXoJtKUspnpmDJKl/gGFhnqS+sON7hA==
+
yauzl@^2.10.0:
version "2.10.0"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"