summaryrefslogtreecommitdiffstats
path: root/external/meta-iot-cloud
diff options
context:
space:
mode:
Diffstat (limited to 'external/meta-iot-cloud')
-rw-r--r--external/meta-iot-cloud/.gitignore7
-rw-r--r--external/meta-iot-cloud/LICENSE21
-rw-r--r--external/meta-iot-cloud/ReadMe.md58
-rw-r--r--external/meta-iot-cloud/conf/layer.conf19
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/aws-iot-device-sdk-cpp_1.3.0.bb96
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-C-as-a-build-language.patch110
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-build-options-for-tests-and-samples.patch57
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Fix-CLI-includes.patch26
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Packaging-fixes.patch67
-rw-r--r--external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Skip-building-RapidJSON.patch111
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python-awscli.inc29
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python-boto3.inc18
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python-botocore.inc33
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python-botocore/Allow-python-dateutil-2.8.1.patch36
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python-gg-group-setup.inc25
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python-s3transfer.inc10
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python3-awscli_1.16.278.bb22
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python3-boto3_1.10.25.bb2
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python3-botocore_1.13.26.bb2
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python3-gg-group-setup_0.5.3.bb10
-rw-r--r--external/meta-iot-cloud/recipes-aws/python/python3-s3transfer_0.2.1.bb8
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/azure-c-shared-utility.inc38
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/azure-c-shared-utility_1.1.12.bb15
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/files/Fix-packaging-issues.patch43
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/files/Use-pkg-config-to-find-libs.patch72
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/azure-iot-sdk-c.inc38
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/azure-iot-sdk-c_1.3.8.bb13
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/files/Fix-cmake-build-issues.patch25
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/files/Use-provided-parson-lib.patch78
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-macro-utils-c/azure-macro-utils-c.inc14
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-macro-utils-c/azure-macro-utils-c_1.1.0.bb15
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-uamqp-c/azure-uamqp-c.inc30
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-uamqp-c/azure-uamqp-c_1.2.12.bb14
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-uamqp-c/files/Fix-packaging-issues.patch42
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-uhttp-c/azure-uhttp-c.inc31
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-uhttp-c/azure-uhttp-c_1.0.1.bb15
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-uhttp-c/files/Fix-packaging-issues.patch42
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-umqtt-c/azure-umqtt-c.inc26
-rw-r--r--external/meta-iot-cloud/recipes-azure/azure-umqtt-c/azure-umqtt-c_1.1.12.bb15
-rw-r--r--external/meta-iot-cloud/recipes-azure/iothub-explorer/node-iothub-explorer_1.1.19.bb73
-rw-r--r--external/meta-iot-cloud/recipes-azure/node-red-contrib-azureiothubnode/node-red-contrib-azureiothubnode/npm-shrinkwrap.json1062
-rw-r--r--external/meta-iot-cloud/recipes-azure/node-red-contrib-azureiothubnode/node-red-contrib-azureiothubnode_0.5.2.bb21
-rw-r--r--external/meta-iot-cloud/recipes-azure/python/python3-azure-iot-device_2.1.1.bb33
-rw-r--r--external/meta-iot-cloud/recipes-azure/umock-c/umock-c.inc22
-rw-r--r--external/meta-iot-cloud/recipes-azure/umock-c/umock-c_1.1.19.bb14
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/kura/files/Add-Yocto-build-profile.patch86
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/kura/files/Disable-checksum-generation.patch57
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/kura/files/Fix-equinox-build.patch192
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/kura/files/Remove-default-build-profiles.patch1319
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/kura/files/jdk.dio.properties.default3
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/kura/files/kura.properties.default99
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/kura/files/log4j.xml.default32
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/kura/files/snapshot_0.xml.default191
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/kura/kura_4.1.0.bb142
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/rclone/rclone_1.50.2.bb25
-rw-r--r--external/meta-iot-cloud/recipes-connectivity/restic/restic_0.9.6.bb18
-rw-r--r--external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-aws_0.15.bb26
-rw-r--r--external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-azure_0.19.bb32
-rw-r--r--external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-google_0.5.bb31
-rw-r--r--external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-ibm_0.8.bb33
-rw-r--r--external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-oisp_0.1.bb24
-rw-r--r--external/meta-iot-cloud/recipes-devtools/dotnet/dotnet_3.0.0.bb105
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-argcomplete.inc16
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-cbor.inc17
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-cheroot.inc28
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-cherrypy.inc46
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-dicttoxml.inc12
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-dill.inc12
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-entrypoints.inc17
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-fire.inc15
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-httplib2.inc24
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-jaraco-functools.inc21
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-jeepney.inc21
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-jmespath.inc16
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-keyring.inc25
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-knack.inc31
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-memcached.inc26
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-paramiko.inc25
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-portend.inc22
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-pydocumentdb.inc24
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-repoze-lru.inc15
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-requests-toolbelt.inc18
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-routes.inc28
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-rsa.inc24
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-scandir.inc12
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-scp.inc14
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-secretstorage.inc19
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-setuptools-scm-git-archive.inc22
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-sshtunnel.inc22
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-tabulate.inc14
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-tempora.inc26
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-vsts-cd-manager.inc22
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-webob.inc15
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-webrtcvad.inc13
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-xmltodict.inc15
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python-zc-lockfile.inc18
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-argcomplete_1.9.4.bb14
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-cbor_1.0.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-cheroot_6.4.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-cherrypy_17.3.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-dicttoxml_1.7.4.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-dill_0.2.6.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-docutils_%.bbappend31
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-entrypoints_0.2.3.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-fire_0.2.1.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-httplib2_0.11.3.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-janus_0.4.0.bb18
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-jaraco-functools_1.20.bb6
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-jeepney_0.3.1.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-jmespath_0.9.3.bb12
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-keyring_13.1.0.bb6
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-knack_0.4.1.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-mapbox_0.18.0.bb23
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-memcached_1.59.bb6
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-paramiko_2.4.1.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-portend_2.3.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-pydocumentdb_2.3.2.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-pyjwt_%.bbappend5
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-repoze-lru_0.6.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-requests-toolbelt_0.8.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-requests-unixsocket_0.2.0.bb21
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-routes_2.4.1.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-rsa_3.4.2.bb22
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-scandir_1.5.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-scp_0.11.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-secretstorage_3.0.1.bb12
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-setuptools-scm-git-archive_1.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-sshtunnel_0.1.4.bb6
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-tabulate_0.8.2.bb6
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-tempora_1.13.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-transitions_0.8.1.bb23
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-vsts-cd-manager_1.0.2.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-webob_1.7.2.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-webrtcvad_2.0.10.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-xmltodict_0.11.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-devtools/python/python3-zc-lockfile_1.3.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/google-cloud-sdk/google-cloud-sdk.inc54
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/google-cloud-sdk/google-cloud-sdk_277.0.0.bb15
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/node-red-contrib-google-cloud/node-red-contrib-google-cloud/npm-shrinkwrap.json5163
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/node-red-contrib-google-cloud/node-red-contrib-google-cloud_0.0.12.bb21
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python-google-api-core.inc27
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python-google-auth.inc31
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-core.inc27
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-pubsub.inc31
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-storage.inc15
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python-google-resumable-media.inc13
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python-googleapis-common-protos.inc14
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python-grpc-google-iam-v1.inc16
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python3-google-api-core_1.13.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python3-google-auth_1.6.3.bb2
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-core_1.0.3.bb2
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-pubsub_0.42.1.bb2
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-storage_1.20.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python3-google-resumable-media_0.4.1.bb2
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python3-googleapis-common-protos_1.6.0.bb2
-rw-r--r--external/meta-iot-cloud/recipes-google-cloud/python/python3-grpc-google-iam-v1_0.11.4.bb2
-rw-r--r--external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Add-additional-options-to-sample-apps.patch77
-rw-r--r--external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Fix-cjson-library.patch36
-rw-r--r--external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Fix-dependencies.patch121
-rw-r--r--external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Remove-host-library-paths.patch27
-rw-r--r--external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/ibm-iotf-embeddedc_1.0.bb88
-rw-r--r--external/meta-iot-cloud/recipes-ibm/node-red-contrib-ibm-watson-iot/node-red-contrib-ibm-watson-iot/npm-shrinkwrap.json684
-rw-r--r--external/meta-iot-cloud/recipes-ibm/node-red-contrib-ibm-watson-iot/node-red-contrib-ibm-watson-iot_0.2.8.bb21
-rw-r--r--external/meta-iot-cloud/recipes-ibm/python/python-ibmiotf.inc30
-rw-r--r--external/meta-iot-cloud/recipes-ibm/python/python3-ibmiotf_0.3.4.bb2
-rw-r--r--external/meta-iot-cloud/recipes-node-red/node-red/node-red/node-red.service11
-rw-r--r--external/meta-iot-cloud/recipes-node-red/node-red/node-red/npm-shrinkwrap.json2567
-rw-r--r--external/meta-iot-cloud/recipes-node-red/node-red/node-red_1.0.2.bb35
-rw-r--r--external/meta-iot-cloud/recipes-oisp/oisp-cli/oisp-cli/npm-shrinkwrap.json5743
-rw-r--r--external/meta-iot-cloud/recipes-oisp/oisp-cli/oisp-cli_1.1.0.bb32
-rw-r--r--external/meta-iot-cloud/recipes-oisp/python/python-oisp.inc23
-rw-r--r--external/meta-iot-cloud/recipes-oisp/python/python3-oisp_0.2.0.1.bb2
-rw-r--r--external/meta-iot-cloud/recipes-support/cjson/cjson_1.7.10.bb26
-rw-r--r--external/meta-iot-cloud/recipes-support/http-parser/http-parser_2.8.1.bb30
-rw-r--r--external/meta-iot-cloud/recipes-support/maven/files/settings.xml257
-rw-r--r--external/meta-iot-cloud/recipes-support/maven/maven_3.6.3.bb62
-rw-r--r--external/meta-iot-cloud/recipes-support/parson/parson_1.1.0.bb23
177 files changed, 21269 insertions, 0 deletions
diff --git a/external/meta-iot-cloud/.gitignore b/external/meta-iot-cloud/.gitignore
new file mode 100644
index 00000000..42d789e3
--- /dev/null
+++ b/external/meta-iot-cloud/.gitignore
@@ -0,0 +1,7 @@
+/*.patch
+*.pyc
+*.pyo
+*.swp
+*.orig
+*.rej
+*~
diff --git a/external/meta-iot-cloud/LICENSE b/external/meta-iot-cloud/LICENSE
new file mode 100644
index 00000000..cbecaa82
--- /dev/null
+++ b/external/meta-iot-cloud/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+Copyright © 2016 Intel Corporation
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/external/meta-iot-cloud/ReadMe.md b/external/meta-iot-cloud/ReadMe.md
new file mode 100644
index 00000000..45593167
--- /dev/null
+++ b/external/meta-iot-cloud/ReadMe.md
@@ -0,0 +1,58 @@
+meta-iot-cloud
+==============
+OpenEmbedded layer to add support for multiple cloud service provider solutions.
+
+## Supported Platforms
+* [IBM Cloud](https://www.ibm.com/cloud/)
+* [Amazon Web Services](https://aws.amazon.com/)
+* [Microsoft Azure](https://azure.microsoft.com/)
+* [Google Cloud Platform](https://cloud.google.com/)
+
+## Dependencies
+This layer depends on packages provided by the following layers:
+* `meta-openembedded` [http://cgit.openembedded.org/meta-openembedded/]
+
+Configuration
+=============
+1. Clone the `meta-iot-cloud` layer to your project directory.
+2. Add the `meta-iot-cloud` layer to `conf/bblayers.conf`
+```bitbake
+ BBLAYERS += "path/to/meta-iot-cloud"
+```
+3. Add dependency layers to `conf/bblayers.conf`
+```bitbake
+ BBLAYERS += "path/to/meta-openembedded/meta-oe"
+ BBLAYERS += "path/to/meta-openembedded/meta-python"
+ BBLAYERS += "path/to/meta-openembedded/meta-networking"
+```
+
+Usage
+=====
+To build packages related to IBM Cloud:
+```shell
+ bitbake packagegroup-cloud-ibm
+```
+
+To build packages related to Amazon Web Services:
+```shell
+ bitbake packagegroup-cloud-aws
+```
+
+To build packages related to Microsoft Azure:
+```shell
+ bitbake packagegroup-cloud-azure
+```
+
+To build packages related to Google Cloud Platform:
+```shell
+ bitbake packagegroup-cloud-google
+```
+
+Alternatively to add support for a given platform into your image add the following to your distro config or `conf/auto.conf`
+
+```bitbake
+ CORE_IMAGE_EXTRA_INSTALL += "packagegroup-cloud-ibm"
+ CORE_IMAGE_EXTRA_INSTALL += "packagegroup-cloud-aws"
+ CORE_IMAGE_EXTRA_INSTALL += "packagegroup-cloud-azure"
+ CORE_IMAGE_EXTRA_INSTALL += "packagegroup-cloud-google"
+```
diff --git a/external/meta-iot-cloud/conf/layer.conf b/external/meta-iot-cloud/conf/layer.conf
new file mode 100644
index 00000000..b674b2de
--- /dev/null
+++ b/external/meta-iot-cloud/conf/layer.conf
@@ -0,0 +1,19 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have a recipes directory, add to BBFILES
+BBFILES += "\
+ ${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend \
+"
+
+BBFILE_COLLECTIONS += "iot-cloud"
+BBFILE_PATTERN_iot-cloud := "^${LAYERDIR}/"
+BBFILE_PRIORITY_iot-cloud = "10"
+LAYERSERIES_COMPAT_iot-cloud = "dunfell"
+LAYERDEPENDS_iot-cloud = "\
+ core \
+ openembedded-layer \
+ meta-python \
+ networking-layer \
+"
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/aws-iot-device-sdk-cpp_1.3.0.bb b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/aws-iot-device-sdk-cpp_1.3.0.bb
new file mode 100644
index 00000000..726f5c65
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/aws-iot-device-sdk-cpp_1.3.0.bb
@@ -0,0 +1,96 @@
+DESCRIPTION = "SDK for connecting to AWS IoT from a device using C++"
+AUTHOR = "Amazon"
+HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-cpp"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=218aad61fa604dacf420e699fc7d8679"
+
+DEPENDS = "\
+ rapidjson \
+ openssl \
+"
+
+RDEPENDS_${PN} += "openssl"
+
+RDEPENDS_${PN}-dev += "\
+ rapidjson-dev \
+ openssl-dev \
+"
+
+inherit cmake pkgconfig
+
+SRC_URI = "\
+ git://github.com/aws/${BPN}.git;branch=master \
+ file://Add-C-as-a-build-language.patch \
+ file://Add-build-options-for-tests-and-samples.patch \
+ file://Fix-CLI-includes.patch \
+ file://Packaging-fixes.patch \
+ file://Skip-building-RapidJSON.patch \
+"
+
+SRCREV = "bf20603154eeda78f52d69eaf9c79189f0b603ea"
+
+PACKAGES += "${PN}-samples ${PN}-samples-src"
+
+PR = "r0"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+EXTRA_OECMAKE += "-DTHREADS_PTHREAD_ARG=OFF -DBUILD_SHARED_LIBRARY=ON -DBUILD_SAMPLES=ON -DRapidJSON_DIR=${STAGING_LIBDIR}/cmake/RapidJSON"
+
+do_install_append() {
+ # Includes
+ install -m 0644 ${S}/common/*.hpp ${D}${includedir}/awsiotsdk
+ install -m 0644 ${S}/network/OpenSSL/*.hpp ${D}${includedir}/awsiotsdk
+
+ # Samples
+ install -d ${D}${datadir}/awsiotsdk/samples/cpp
+ install -d ${D}${datadir}/awsiotsdk/samples/cpp/config
+ install -d ${D}${datadir}/awsiotsdk/samples/cpp/certs
+ install -m 0644 ${B}/bin/certs/* ${D}${datadir}/awsiotsdk/samples/cpp/certs/
+ install -m 0644 ${B}/bin/config/SampleConfig.json ${D}${datadir}/awsiotsdk/samples/cpp/config/
+ install -m 0644 ${B}/bin/CliConfig.json ${D}${datadir}/awsiotsdk/samples/cpp/
+ install -m 0755 ${B}/bin/shadow-delta-sample ${D}${datadir}/awsiotsdk/samples/cpp/
+ install -m 0755 ${B}/bin/pub-sub-sample ${D}${datadir}/awsiotsdk/samples/cpp/
+ install -m 0755 ${B}/bin/aws-iot ${D}${datadir}/awsiotsdk/samples/cpp/
+
+ # Samples Source
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/certs
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/config
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/common
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/Discovery
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/PubSub
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/ShadowDelta
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StoryRobotArm
+ install -d ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StorySwitch
+ install -m 0644 ${S}/common/*.json ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/config/
+ install -m 0644 ${S}/certs/* ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/certs/
+ install -m 0644 ${S}/common/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/common/
+ install -m 0644 ${S}/samples/Discovery/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/Discovery/
+ install -m 0644 ${S}/samples/Discovery/*.hpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/Discovery/
+ install -m 0644 ${S}/samples/PubSub/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/PubSub/
+ install -m 0644 ${S}/samples/PubSub/*.hpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/PubSub/
+ install -m 0644 ${S}/samples/ShadowDelta/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/ShadowDelta/
+ install -m 0644 ${S}/samples/ShadowDelta/*.hpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/ShadowDelta/
+ install -m 0644 ${S}/samples/StoryRobotArm/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StoryRobotArm/
+ install -m 0644 ${S}/samples/StoryRobotArm/*.hpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StoryRobotArm/
+ install -m 0644 ${S}/samples/StorySwitch/*.cpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StorySwitch/
+ install -m 0644 ${S}/samples/StorySwitch/*.hpp ${D}${exec_prefix}/src/awsiotsdk/samples/cpp/StorySwitch/
+}
+
+FILES_${PN}-dbg += "\
+ ${exec_prefix}/src/debug \
+ ${datadir}/awsiotsdk/samples/cpp/.debug \
+"
+
+FILES_${PN}-samples = "\
+ ${datadir}/awsiotsdk/samples/cpp \
+"
+
+FILES_${PN}-samples-src = "\
+ ${exec_prefix}/src/awsiotsdk/samples/cpp \
+"
+
+INSANE_SKIP_${PN}-samples += "rpaths"
+
+RRECOMMENDS_aws-iot-device-sdk-cpp-dev[nodeprrecs] = "1"
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-C-as-a-build-language.patch b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-C-as-a-build-language.patch
new file mode 100644
index 00000000..7cf150f6
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-C-as-a-build-language.patch
@@ -0,0 +1,110 @@
+From ec1e8828ce3067d6902c04a75952a3535292040c Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 8 Dec 2017 10:41:10 +0000
+Subject: [PATCH 1/5] Add C as a build language
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 2 +-
+ cli/CMakeLists.txt | 2 +-
+ samples/Discovery/CMakeLists.txt | 2 +-
+ samples/PubSub/CMakeLists.txt | 2 +-
+ samples/ShadowDelta/CMakeLists.txt | 2 +-
+ samples/StoryRobotArm/CMakeLists.txt | 4 ++--
+ samples/StorySwitch/CMakeLists.txt | 4 ++--
+ 7 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ad8a4e1..9df255f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-sdk-cpp CXX)
++project(aws-iot-sdk-cpp C CXX)
+ option(BUILD_SHARED_LIBRARY "Build the library as a shared object, will build it as a static library otherwise" NO)
+
+ ######################################
+diff --git a/cli/CMakeLists.txt b/cli/CMakeLists.txt
+index da4f25d..dfa5040 100644
+--- a/cli/CMakeLists.txt
++++ b/cli/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cli CXX)
++project(aws-iot-cli C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+diff --git a/samples/Discovery/CMakeLists.txt b/samples/Discovery/CMakeLists.txt
+index 8df8d35..3147841 100644
+--- a/samples/Discovery/CMakeLists.txt
++++ b/samples/Discovery/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cpp-samples CXX)
++project(aws-iot-cpp-samples C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+diff --git a/samples/PubSub/CMakeLists.txt b/samples/PubSub/CMakeLists.txt
+index 62ffd05..33531d0 100644
+--- a/samples/PubSub/CMakeLists.txt
++++ b/samples/PubSub/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cpp-samples CXX)
++project(aws-iot-cpp-samples C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+diff --git a/samples/ShadowDelta/CMakeLists.txt b/samples/ShadowDelta/CMakeLists.txt
+index 98aa3b9..1ebabed 100644
+--- a/samples/ShadowDelta/CMakeLists.txt
++++ b/samples/ShadowDelta/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cpp-samples CXX)
++project(aws-iot-cpp-samples C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+diff --git a/samples/StoryRobotArm/CMakeLists.txt b/samples/StoryRobotArm/CMakeLists.txt
+index 215df18..13dd16f 100644
+--- a/samples/StoryRobotArm/CMakeLists.txt
++++ b/samples/StoryRobotArm/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cpp-samples CXX)
++project(aws-iot-cpp-samples C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+@@ -84,4 +84,4 @@ endif ()
+ #########################
+
+ set(NETWORK_WRAPPER_DEST_TARGET ${ROBOT_ARM_SAMPLE_TARGET_NAME})
+-include(${PROJECT_SOURCE_DIR}/../../network/CMakeLists.txt.in)
+\ No newline at end of file
++include(${PROJECT_SOURCE_DIR}/../../network/CMakeLists.txt.in)
+diff --git a/samples/StorySwitch/CMakeLists.txt b/samples/StorySwitch/CMakeLists.txt
+index e612567..0096bad 100644
+--- a/samples/StorySwitch/CMakeLists.txt
++++ b/samples/StorySwitch/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-cpp-samples CXX)
++project(aws-iot-cpp-samples C CXX)
+
+ ######################################
+ # Section : Disable in-source builds #
+@@ -84,4 +84,4 @@ endif ()
+ #########################
+
+ set(NETWORK_WRAPPER_DEST_TARGET ${SWITCH_SAMPLE_TARGET_NAME})
+-include(${PROJECT_SOURCE_DIR}/../../network/CMakeLists.txt.in)
+\ No newline at end of file
++include(${PROJECT_SOURCE_DIR}/../../network/CMakeLists.txt.in)
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-build-options-for-tests-and-samples.patch b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-build-options-for-tests-and-samples.patch
new file mode 100644
index 00000000..59f61891
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Add-build-options-for-tests-and-samples.patch
@@ -0,0 +1,57 @@
+From b14988149080ab9d5f1883c1e881b548be1cd7aa Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 8 Dec 2017 10:44:46 +0000
+Subject: [PATCH 2/5] Add build options for tests and samples
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 25 +++++++++++++------------
+ 1 file changed, 13 insertions(+), 12 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9df255f..cb0ad9d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -11,6 +11,8 @@ if(${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR})
+ endif()
+
+ option(BUILD_DOCS "Create HTML based API documentation (requires Doxygen)" OFF)
++option(BUILD_SAMPLES "Build samples" OFF)
++option(RUN_TESTS "Run unit and integration tests" OFF)
+
+ ########################################
+ # Section : Common SDK Build setttings #
+@@ -155,19 +157,18 @@ if(UNIX)
+ add_subdirectory(cli)
+ endif()
+
+-add_subdirectory(tests/integration)
+-
+-add_subdirectory(tests/unit)
+-
+-add_subdirectory(samples/PubSub)
+-
+-add_subdirectory(samples/ShadowDelta)
+-
+-add_subdirectory(samples/Discovery EXCLUDE_FROM_ALL)
+-
+-add_subdirectory(samples/StoryRobotArm EXCLUDE_FROM_ALL)
++if(RUN_TESTS)
++ add_subdirectory(tests/integration)
++ add_subdirectory(tests/unit)
++endif()
+
+-add_subdirectory(samples/StorySwitch EXCLUDE_FROM_ALL)
++if(BUILD_SAMPLES)
++ add_subdirectory(samples/PubSub)
++ add_subdirectory(samples/ShadowDelta)
++ add_subdirectory(samples/Discovery EXCLUDE_FROM_ALL)
++ add_subdirectory(samples/StoryRobotArm EXCLUDE_FROM_ALL)
++ add_subdirectory(samples/StorySwitch EXCLUDE_FROM_ALL)
++endif()
+
+ ##################################
+ # Section: Define Install Target #
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Fix-CLI-includes.patch b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Fix-CLI-includes.patch
new file mode 100644
index 00000000..8605f6d0
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Fix-CLI-includes.patch
@@ -0,0 +1,26 @@
+From 96f31a4d9b0c5ba156dfb6263f8bed3b12884c8a Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 8 Dec 2017 10:45:45 +0000
+Subject: [PATCH 3/5] Fix CLI includes
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ cli/cli.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cli/cli.hpp b/cli/cli.hpp
+index 4f3634c..f0f1ee2 100644
+--- a/cli/cli.hpp
++++ b/cli/cli.hpp
+@@ -26,7 +26,7 @@
+ #include <direct.h>
+ #define getcwd _getcwd // avoid MSFT "deprecation" warning
+ #else
+-#include <limits>
++#include <linux/limits.h>
+ #define MAX_PATH_LENGTH_ PATH_MAX
+ #endif
+
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Packaging-fixes.patch b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Packaging-fixes.patch
new file mode 100644
index 00000000..32c880e6
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Packaging-fixes.patch
@@ -0,0 +1,67 @@
+From 3db20a53f35f9d0413c312b46815f6b16fe0afa4 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 8 Dec 2017 10:52:20 +0000
+Subject: [PATCH 4/5] Packaging fixes
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 12 ++++++++----
+ awsiotsdk-cpp.pc.in | 11 +++++++++++
+ 2 files changed, 19 insertions(+), 4 deletions(-)
+ create mode 100644 awsiotsdk-cpp.pc.in
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cb0ad9d..fa98c30 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,7 +1,9 @@
+ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+-project(aws-iot-sdk-cpp C CXX)
++project(aws-iot-sdk-cpp VERSION 1.3.0 LANGUAGES C CXX)
+ option(BUILD_SHARED_LIBRARY "Build the library as a shared object, will build it as a static library otherwise" NO)
+
++include(GNUInstallDirs)
++
+ ######################################
+ # Section : Disable in-source builds #
+ ######################################
+@@ -51,7 +53,7 @@ add_definitions(-DSDK_VERSION_STRING="1.3.0")
+ set(SDK_TARGET_NAME aws-iot-sdk-cpp)
+ if (BUILD_SHARED_LIBRARY)
+ add_library(${SDK_TARGET_NAME} SHARED "")
+- set_target_properties(${SDK_TARGET_NAME} PROPERTIES SUFFIX ".so")
++ set_target_properties(${SDK_TARGET_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION})
+ else()
+ add_library(${SDK_TARGET_NAME} "")
+ endif()
+@@ -174,6 +176,8 @@ endif()
+ # Section: Define Install Target #
+ ##################################
+ if(NOT MSVC)
+- install(TARGETS aws-iot-sdk-cpp DESTINATION lib)
+- install(DIRECTORY include/ DESTINATION include)
++ install(TARGETS aws-iot-sdk-cpp DESTINATION ${CMAKE_INSTALL_LIBDIR})
++ install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/awsiotsdk)
++ configure_file (awsiotsdk-cpp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/awsiotsdk-cpp.pc @ONLY)
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/awsiotsdk-cpp.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ endif()
+diff --git a/awsiotsdk-cpp.pc.in b/awsiotsdk-cpp.pc.in
+new file mode 100644
+index 0000000..0828942
+--- /dev/null
++++ b/awsiotsdk-cpp.pc.in
+@@ -0,0 +1,11 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=@CMAKE_INSTALL_PREFIX@
++libdir=@CMAKE_INSTALL_LIBDIR@
++includedir=@CMAKE_INSTALL_INCLUDEDIR@/awsiotsdk
++
++Name: awsiotsdk-cpp
++Description: SDK for connecting to AWS IoT from a device using C++
++Version: @PROJECT_VERSION@
++
++Libs: -L${libdir} -laws-iot-sdk-cpp
++Cflags: -I${includedir}
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Skip-building-RapidJSON.patch b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Skip-building-RapidJSON.patch
new file mode 100644
index 00000000..699f2be8
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/aws-iot-device-sdk-cpp/files/Skip-building-RapidJSON.patch
@@ -0,0 +1,111 @@
+From 589e2395d189209aa509c31b844dd3a34b907b55 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 8 Dec 2017 10:55:57 +0000
+Subject: [PATCH 5/5] Skip building RapidJSON
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 9 ++-------
+ cli/CMakeLists.txt | 1 -
+ samples/Discovery/CMakeLists.txt | 1 -
+ samples/PubSub/CMakeLists.txt | 1 -
+ samples/ShadowDelta/CMakeLists.txt | 1 -
+ samples/StoryRobotArm/CMakeLists.txt | 1 -
+ samples/StorySwitch/CMakeLists.txt | 1 -
+ 7 files changed, 2 insertions(+), 13 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fa98c30..128cb46 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,13 +58,8 @@ else()
+ add_library(${SDK_TARGET_NAME} "")
+ endif()
+
+-# Download and include rapidjson, not optional
+-configure_file(CMakeLists-rapidjson.txt.in ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/download/CMakeLists.txt)
+-execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/download)
+-execute_process(COMMAND ${CMAKE_COMMAND} --build .
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/download)
+-target_include_directories(${SDK_TARGET_NAME} PRIVATE ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
++# Include rapidjson, not optional
++find_package(RapidJSON REQUIRED)
+
+ # Download sanitizers, optional
+ if (SANITIZE_THREAD OR SANITIZE_ADDRESS OR SANITIZE_MEMORY OR SANITIZE_UNDEFINED)
+diff --git a/cli/CMakeLists.txt b/cli/CMakeLists.txt
+index dfa5040..d8c4308 100644
+--- a/cli/CMakeLists.txt
++++ b/cli/CMakeLists.txt
+@@ -48,7 +48,6 @@ target_include_directories(${CLI_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../cl
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${CLI_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/third_party/rapidjson/src/include)
+ target_include_directories(${CLI_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../include)
+
+ target_link_libraries(${CLI_TARGET_NAME} PUBLIC "Threads::Threads")
+diff --git a/samples/Discovery/CMakeLists.txt b/samples/Discovery/CMakeLists.txt
+index 3147841..cbeac4a 100644
+--- a/samples/Discovery/CMakeLists.txt
++++ b/samples/Discovery/CMakeLists.txt
+@@ -52,7 +52,6 @@ target_include_directories(${DISCOVERY_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOUR
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${DISCOVERY_SAMPLE_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
+ target_include_directories(${DISCOVERY_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../include)
+
+ target_link_libraries(${DISCOVERY_SAMPLE_TARGET_NAME} PUBLIC "Threads::Threads")
+diff --git a/samples/PubSub/CMakeLists.txt b/samples/PubSub/CMakeLists.txt
+index 33531d0..8a806b1 100644
+--- a/samples/PubSub/CMakeLists.txt
++++ b/samples/PubSub/CMakeLists.txt
+@@ -47,7 +47,6 @@ target_include_directories(${PUB_SUB_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${PUB_SUB_SAMPLE_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
+ target_include_directories(${PUB_SUB_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../include)
+
+ target_link_libraries(${PUB_SUB_SAMPLE_TARGET_NAME} PUBLIC "Threads::Threads")
+diff --git a/samples/ShadowDelta/CMakeLists.txt b/samples/ShadowDelta/CMakeLists.txt
+index 1ebabed..7b941b3 100644
+--- a/samples/ShadowDelta/CMakeLists.txt
++++ b/samples/ShadowDelta/CMakeLists.txt
+@@ -47,7 +47,6 @@ target_include_directories(${SHADOW_DELTA_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_S
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${SHADOW_DELTA_SAMPLE_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
+ target_include_directories(${SHADOW_DELTA_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../include)
+
+ target_link_libraries(${SHADOW_DELTA_SAMPLE_TARGET_NAME} PUBLIC "Threads::Threads")
+diff --git a/samples/StoryRobotArm/CMakeLists.txt b/samples/StoryRobotArm/CMakeLists.txt
+index 13dd16f..ee9d6a5 100644
+--- a/samples/StoryRobotArm/CMakeLists.txt
++++ b/samples/StoryRobotArm/CMakeLists.txt
+@@ -52,7 +52,6 @@ target_include_directories(${ROBOT_ARM_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOUR
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${ROBOT_ARM_SAMPLE_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
+ target_include_directories(${ROBOT_ARM_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../include)
+
+ target_link_libraries(${ROBOT_ARM_SAMPLE_TARGET_NAME} PUBLIC "Threads::Threads")
+diff --git a/samples/StorySwitch/CMakeLists.txt b/samples/StorySwitch/CMakeLists.txt
+index 0096bad..2613c20 100644
+--- a/samples/StorySwitch/CMakeLists.txt
++++ b/samples/StorySwitch/CMakeLists.txt
+@@ -52,7 +52,6 @@ target_include_directories(${SWITCH_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_
+ find_package(Threads REQUIRED)
+
+ # Add SDK includes
+-target_include_directories(${SWITCH_SAMPLE_TARGET_NAME} PUBLIC ${CMAKE_BINARY_DIR}/${DEPENDENCY_DIR}/rapidjson/src/include)
+ target_include_directories(${SWITCH_SAMPLE_TARGET_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/../../include)
+
+ target_link_libraries(${SWITCH_SAMPLE_TARGET_NAME} PUBLIC "Threads::Threads")
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-aws/python/python-awscli.inc b/external/meta-iot-cloud/recipes-aws/python/python-awscli.inc
new file mode 100644
index 00000000..d882092b
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python-awscli.inc
@@ -0,0 +1,29 @@
+DESCRIPTION = "This package provides a unified command line interface to Amazon Web Services."
+HOMEPAGE = "https://github.com/aws/aws-cli"
+AUTHOR = "Amazon Web Services"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=71a3e14f29ac5c23e1b5b934ca4ddfc9"
+
+RDEPENDS_${PN} += "\
+ groff \
+ less \
+ ${PYTHON_PN}-botocore \
+ ${PYTHON_PN}-colorama \
+ ${PYTHON_PN}-ctypes \
+ ${PYTHON_PN}-difflib \
+ ${PYTHON_PN}-docutils \
+ ${PYTHON_PN}-misc \
+ ${PYTHON_PN}-pyyaml \
+ ${PYTHON_PN}-rsa \
+ ${PYTHON_PN}-s3transfer \
+ ${PYTHON_PN}-unixadmin \
+"
+
+PR = "r0"
+
+SRC_NAME = "aws-cli"
+
+SRC_URI = "git://github.com/aws/${SRC_NAME}.git"
+SRCREV = "59338c88372e5e15b57b438061d007dfeb0fbc3f"
+
+S = "${WORKDIR}/git"
diff --git a/external/meta-iot-cloud/recipes-aws/python/python-boto3.inc b/external/meta-iot-cloud/recipes-aws/python/python-boto3.inc
new file mode 100644
index 00000000..a3eafbe2
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python-boto3.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "The AWS SDK for Python"
+HOMEPAGE = "https://aws.amazon.com/sdk-for-python/"
+AUTHOR = "Amazon Web Services"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SRC_URI[md5sum] = "a18e37ff05d0dd0a59e43e7bcfd79469"
+SRC_URI[sha256sum] = "b9c930982891229fe32c670c940835e4d5afcb52f60a5e512de8e5cba409900b"
+
+RDEPENDS_${PN} = "\
+ ${PYTHON_PN}-botocore \
+ ${PYTHON_PN}-jmespath \
+ ${PYTHON_PN}-s3transfer \
+"
+
+inherit pypi
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-aws/python/python-botocore.inc b/external/meta-iot-cloud/recipes-aws/python/python-botocore.inc
new file mode 100644
index 00000000..38b5081e
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python-botocore.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "Low-level, data-driven core of boto 3."
+HOMEPAGE = "https://github.com/boto/botocore"
+AUTHOR = "Amazon Web Services"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SRC_URI[md5sum] = "c7cb165153055aa16168dd3700adb032"
+SRC_URI[sha256sum] = "ee55ce128056c5120680d25c8e8dfa3a08dbe7ac3445dc16997daaa68ae4060e"
+
+inherit pypi
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-botocore:"
+
+SRC_URI += "\
+ file://Allow-python-dateutil-2.8.1.patch \
+"
+
+RDEPENDS_${PN} = "\
+ ${PYTHON_PN}-jmespath \
+ ${PYTHON_PN}-dateutil \
+ ${PYTHON_PN}-docutils \
+ ${PYTHON_PN}-shell \
+ ${PYTHON_PN}-netserver \
+ ${PYTHON_PN}-email \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-numbers \
+ ${PYTHON_PN}-html \
+ ${PYTHON_PN}-urllib3 \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-unixadmin \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-aws/python/python-botocore/Allow-python-dateutil-2.8.1.patch b/external/meta-iot-cloud/recipes-aws/python/python-botocore/Allow-python-dateutil-2.8.1.patch
new file mode 100644
index 00000000..3ab6e915
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python-botocore/Allow-python-dateutil-2.8.1.patch
@@ -0,0 +1,36 @@
+From d6c1ab03920d553c6022016dba3a5816c2390043 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Sat, 23 Nov 2019 05:44:58 +0000
+Subject: [PATCH] setup: Allow python-dateutil 2.8.1
+
+Upstream-Status: Inappropriate [https://github.com/boto/botocore/issues/1872#issuecomment-549612354]
+---
+ botocore.egg-info/requires.txt | 2 +-
+ setup.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/botocore.egg-info/requires.txt b/botocore.egg-info/requires.txt
+index a1eadc8d0abc..5080ea4500f0 100644
+--- a/botocore.egg-info/requires.txt
++++ b/botocore.egg-info/requires.txt
+@@ -1,6 +1,6 @@
+ jmespath<1.0.0,>=0.7.1
+ docutils<0.16,>=0.10
+-python-dateutil<2.8.1,>=2.1
++python-dateutil<=2.8.1,>=2.1
+ urllib3<1.26,>=1.20
+
+ [:python_version=="2.6"]
+diff --git a/setup.py b/setup.py
+index c62ab875fc1a..a4bfd3d04892 100644
+--- a/setup.py
++++ b/setup.py
+@@ -40,7 +40,7 @@ if sys.version_info[:2] == (2, 6):
+ requires.append('simplejson==3.3.0')
+ requires.append('python-dateutil>=2.1,<2.7.0')
+ else:
+- requires.append('python-dateutil>=2.1,<2.8.1')
++ requires.append('python-dateutil>=2.1,<=2.8.1')
+
+ if sys.version_info[:2] == (2, 6):
+ requires.append('urllib3>=1.20,<1.24')
diff --git a/external/meta-iot-cloud/recipes-aws/python/python-gg-group-setup.inc b/external/meta-iot-cloud/recipes-aws/python/python-gg-group-setup.inc
new file mode 100644
index 00000000..03132d1b
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python-gg-group-setup.inc
@@ -0,0 +1,25 @@
+SUMMARY = "A file-driven approach to the creation of an entire AWS Greengrass group"
+AUTHOR = "Brett Francis <brettf@amazon.com>"
+HOMEPAGE = "https://github.com/awslabs/aws-greengrass-group-setup"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+PYPI_PACKAGE = "gg_group_setup"
+
+SRC_URI[md5sum] = "afc38bf424421634bea65fe32f2a32dd"
+SRC_URI[sha256sum] = "5d68dc5007a1bf24e8d1415db93e4f2b4dde42ffd98b868778bb3f6522d4d89d"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-setuptools \
+ ${PYTHON_PN}-boto3 \
+ ${PYTHON_PN}-fire \
+ ${PYTHON_PN}-misc \
+"
+
+do_configure_prepend() {
+ sed -i \
+ -e 's:from gg_group_setup import __version__:__version__ = "${PV}":' \
+ ${S}/setup.py
+}
+
+inherit pypi
diff --git a/external/meta-iot-cloud/recipes-aws/python/python-s3transfer.inc b/external/meta-iot-cloud/recipes-aws/python/python-s3transfer.inc
new file mode 100644
index 00000000..ebd9c404
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python-s3transfer.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "An Amazon S3 Transfer Manager"
+HOMEPAGE = "https://github.com/boto/s3transfer/"
+AUTHOR = "Amazon Web Services"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b1e01b26bacfc2232046c90a330332b3"
+
+SRC_URI[md5sum] = "8ca74015d9dc58af26c68276a8867eca"
+SRC_URI[sha256sum] = "6efc926738a3cd576c2a79725fed9afde92378aa5c6a957e3af010cb019fac9d"
+
+inherit pypi
diff --git a/external/meta-iot-cloud/recipes-aws/python/python3-awscli_1.16.278.bb b/external/meta-iot-cloud/recipes-aws/python/python3-awscli_1.16.278.bb
new file mode 100644
index 00000000..b3942614
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python3-awscli_1.16.278.bb
@@ -0,0 +1,22 @@
+inherit setuptools3 update-alternatives
+require python-awscli.inc
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-asyncio \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-threading \
+"
+
+do_install_append() {
+ sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' ${D}${bindir}/aws
+}
+
+ALTERNATIVE_${PN} = "\
+ aws \
+ aws_completer \
+"
+
+ALTERNATIVE_LINK_NAME[aws] = "${bindir}/aws"
+ALTERNATIVE_LINK_NAME[aws_completer] = "${bindir}/aws_completer"
+
+ALTERNATIVE_PRIORITY = "30"
diff --git a/external/meta-iot-cloud/recipes-aws/python/python3-boto3_1.10.25.bb b/external/meta-iot-cloud/recipes-aws/python/python3-boto3_1.10.25.bb
new file mode 100644
index 00000000..be16373c
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python3-boto3_1.10.25.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-boto3.inc
diff --git a/external/meta-iot-cloud/recipes-aws/python/python3-botocore_1.13.26.bb b/external/meta-iot-cloud/recipes-aws/python/python3-botocore_1.13.26.bb
new file mode 100644
index 00000000..82c9d387
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python3-botocore_1.13.26.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-botocore.inc
diff --git a/external/meta-iot-cloud/recipes-aws/python/python3-gg-group-setup_0.5.3.bb b/external/meta-iot-cloud/recipes-aws/python/python3-gg-group-setup_0.5.3.bb
new file mode 100644
index 00000000..f26a4987
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python3-gg-group-setup_0.5.3.bb
@@ -0,0 +1,10 @@
+inherit setuptools3 update-alternatives
+require python-gg-group-setup.inc
+
+ALTERNATIVE_${PN} = "\
+ gg_group_setup \
+"
+
+ALTERNATIVE_LINK_NAME[gg_group_setup] = "${bindir}/gg_group_setup"
+
+ALTERNATIVE_PRIORITY = "30"
diff --git a/external/meta-iot-cloud/recipes-aws/python/python3-s3transfer_0.2.1.bb b/external/meta-iot-cloud/recipes-aws/python/python3-s3transfer_0.2.1.bb
new file mode 100644
index 00000000..d74a5916
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-aws/python/python3-s3transfer_0.2.1.bb
@@ -0,0 +1,8 @@
+inherit setuptools3
+require python-s3transfer.inc
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-multiprocessing \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/azure-c-shared-utility.inc b/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/azure-c-shared-utility.inc
new file mode 100644
index 00000000..784e19f2
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/azure-c-shared-utility.inc
@@ -0,0 +1,38 @@
+inherit cmake
+
+DEPENDS = "\
+ azure-macro-utils-c \
+ curl \
+ openssl \
+ umock-c \
+ util-linux \
+"
+
+RDEPENDS_${PN} = "\
+ util-linux-libuuid \
+"
+
+SRC_URI += "\
+ file://Fix-packaging-issues.patch \
+ file://Use-pkg-config-to-find-libs.patch \
+"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+EXTRA_OECMAKE = "\
+ -Dbuild_as_dynamic:BOOL=ON \
+ -Dskip_samples:BOOL=ON \
+ -Duse_installed_dependencies:BOOL=ON \
+ -Drun_unittests:BOOL=OFF \
+"
+
+sysroot_stage_all_append () {
+ sysroot_stage_dir ${D}${exec_prefix}/cmake ${SYSROOT_DESTDIR}${exec_prefix}/cmake
+}
+
+FILES_${PN}-dev += "\
+ ${exec_prefix}/cmake \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/azure-c-shared-utility_1.1.12.bb b/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/azure-c-shared-utility_1.1.12.bb
new file mode 100644
index 00000000..59b69b78
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/azure-c-shared-utility_1.1.12.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Azure C Shared Utility"
+AUTHOR = "Microsoft Corporation"
+HOMEPAGE = "https://github.com/Azure/azure-c-shared-utility"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4283671594edec4c13aeb073c219237a"
+
+SRC_URI = "\
+ git://github.com/Azure/azure-c-shared-utility.git \
+"
+
+SRCREV = "48f7a556865731f0e96c47eb5e9537361f24647c"
+
+PR = "r0"
+
+require ${BPN}.inc
diff --git a/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/files/Fix-packaging-issues.patch b/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/files/Fix-packaging-issues.patch
new file mode 100644
index 00000000..eaa89963
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/files/Fix-packaging-issues.patch
@@ -0,0 +1,43 @@
+From b26fc183207b583d5fb7f60015bb46752cd60706 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Tue, 7 Apr 2020 20:55:05 +0100
+Subject: [PATCH 1/2] Fix packaging issues
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 263974b..5251ffe 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -11,6 +11,9 @@ project(azure_c_shared_utility)
+
+ FILE(READ ${CMAKE_CURRENT_LIST_DIR}/version.txt C_SHARED_VERSION)
+
++set(GENERIC_LIB_VERSION ${C_SHARED_VERSION})
++string(SUBSTRING ${C_SHARED_VERSION} 0 1 GENERIC_LIB_SOVERSION)
++
+ # Include the common build rules for the C SDK
+ include(configs/azure_iot_build_rules.cmake)
+
+@@ -487,7 +490,14 @@ if(${build_as_dynamic})
+ ${source_h_files}
+ ${def_files}
+ )
+- set_target_properties(aziotsharedutil_dll PROPERTIES OUTPUT_NAME "aziotsharedutil_dll")
++ if (NOT WIN32)
++ set_target_properties(aziotsharedutil_dll
++ PROPERTIES
++ OUTPUT_NAME "aziotsharedutil"
++ VERSION ${GENERIC_LIB_VERSION}
++ SOVERSION ${GENERIC_LIB_SOVERSION}
++ )
++ endif ()
+ endif()
+
+ set(aziotsharedutil_target_libs)
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/files/Use-pkg-config-to-find-libs.patch b/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/files/Use-pkg-config-to-find-libs.patch
new file mode 100644
index 00000000..000359be
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-c-shared-utility/files/Use-pkg-config-to-find-libs.patch
@@ -0,0 +1,72 @@
+From 03947c2a47bf7458ed093355e71a4f411a725330 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Tue, 7 Apr 2020 20:59:53 +0100
+Subject: [PATCH 2/2] Use pkg-config to find libs
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 31 ++++++++++---------------------
+ 1 file changed, 10 insertions(+), 21 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5251ffe..52ab416 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -116,9 +116,13 @@ if(${use_openssl})
+ # If OpenSSL::SSL OR OpenSSL::Crypto are not set then you need to run
+ # the find package for openssl
+ if (NOT TARGET OpenSSL::SSL OR NOT TARGET OpenSSL::Crypto OR NOT ${OPENSSL_INCLUDE_DIR})
+- find_package(OpenSSL REQUIRED)
++ find_package(PkgConfig)
++ if(PKG_CONFIG_FOUND)
++ pkg_check_modules(OPENSSL libssl)
++ pkg_check_modules(CRYPTO libcrypto)
++ endif()
+ endif()
+- include_directories(${OPENSSL_INCLUDE_DIR})
++ include_directories(${OPENSSL_INCLUDE_DIR} ${CRYPTO_INCLUDE_DIR})
+ endif()
+
+ if(${use_applessl})
+@@ -511,26 +515,11 @@ if(${use_http})
+ set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} crypt32 winhttp)
+ else()
+ if (NOT use_builtin_httpapi)
+- if (CMAKE_CROSSCOMPILING)
+- # As mentioned at https://cmake.org/Wiki/CMake_Cross_Compiling the
+- # pkg-config tool can not be used by cmake while cross compiling.
+- message(STATUS "Cross compiling not using pkg-config")
+- else()
+- # try pkg-config first
+- find_package(PkgConfig)
+- if(PKG_CONFIG_FOUND)
+- pkg_check_modules(CURL libcurl)
+- endif()
+- endif()
+-
+- # if that didn't work, try CMake find_package
+- if(NOT CURL_FOUND)
+- find_package(CURL)
++ find_package(PkgConfig)
++ if(PKG_CONFIG_FOUND)
++ pkg_check_modules(CURL libcurl)
+ endif()
+
+- set(CURL_FIND_REQUIRED 1)
+- find_package_handle_standard_args(CURL DEFAULT_MSG CURL_LIBRARIES)
+-
+ include_directories(${CURL_INCLUDE_DIRS})
+ set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} ${CURL_LIBRARIES})
+ endif(NOT use_builtin_httpapi)
+@@ -571,7 +560,7 @@ if(${use_bearssl})
+ endif()
+
+ if(${use_openssl})
+- set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} ${OPENSSL_LIBRARIES})
++ set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} ${OPENSSL_LIBRARIES} ${CRYPTO_LIBRARIES})
+ if (WIN32)
+ set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} crypt32 ws2_32 secur32)
+ endif()
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/azure-iot-sdk-c.inc b/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/azure-iot-sdk-c.inc
new file mode 100644
index 00000000..547e0b0a
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/azure-iot-sdk-c.inc
@@ -0,0 +1,38 @@
+inherit cmake
+
+DEPENDS = "\
+ azure-c-shared-utility \
+ parson \
+"
+
+SRC_URI += "\
+ file://Fix-cmake-build-issues.patch \
+ file://Use-provided-parson-lib.patch \
+"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+PACKAGECONFIG ??= "amqp http mqtt"
+PACKAGECONFIG[amqp] = "-Duse_amqp:BOOL=ON, -Duse_amqp:BOOL=OFF, azure-uamqp-c"
+PACKAGECONFIG[edge] = "-Duse_edge_modules:BOOL=ON, -Duse_edge_modules:BOOL=OFF, azure-uhttp-c"
+PACKAGECONFIG[http] = "-Duse_http:BOOL=ON, -Duse_http:BOOL=OFF, azure-uhttp-c"
+PACKAGECONFIG[mqtt] = "-Duse_mqtt:BOOL=ON, -Duse_mqtt:BOOL=OFF, azure-umqtt-c"
+
+EXTRA_OECMAKE = "\
+ -Dbuild_as_dynamic:BOOL=ON \
+ -Dskip_samples:BOOL=ON \
+ -Duse_installed_dependencies:BOOL=ON \
+ -Dbuild_service_client:BOOL=OFF \
+ -Dbuild_provisioning_service_client:BOOL=OFF \
+"
+
+sysroot_stage_all_append () {
+ sysroot_stage_dir ${D}${exec_prefix}/cmake ${SYSROOT_DESTDIR}${exec_prefix}/cmake
+}
+
+FILES_${PN}-dev += "\
+ ${exec_prefix}/cmake \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/azure-iot-sdk-c_1.3.8.bb b/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/azure-iot-sdk-c_1.3.8.bb
new file mode 100644
index 00000000..c04440a6
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/azure-iot-sdk-c_1.3.8.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Microsoft Azure IoT SDKs and libraries for C"
+AUTHOR = "Microsoft Corporation"
+HOMEPAGE = "https://github.com/Azure/azure-iot-sdk-c"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4283671594edec4c13aeb073c219237a"
+
+SRC_URI = "\
+ git://github.com/Azure/azure-iot-sdk-c.git;rev=a8a71c2d120c571a2d2ab6149863c2b075e7bea9 \
+"
+
+PR = "r0"
+
+include ${BPN}.inc
diff --git a/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/files/Fix-cmake-build-issues.patch b/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/files/Fix-cmake-build-issues.patch
new file mode 100644
index 00000000..e57a9499
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/files/Fix-cmake-build-issues.patch
@@ -0,0 +1,25 @@
+From e41c3783d1fdbca9572fcb386c9c16663dc7cc63 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Thu, 8 Nov 2018 14:08:34 +0000
+Subject: [PATCH 2/3] Fix cmake build issues
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ iothub_client/CMakeLists.txt | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/iothub_client/CMakeLists.txt b/iothub_client/CMakeLists.txt
+index 99e74dd..20eccd2 100644
+--- a/iothub_client/CMakeLists.txt
++++ b/iothub_client/CMakeLists.txt
+@@ -332,7 +332,6 @@ if(${use_amqp})
+ ${iothub_client_amqp_ws_transport_c_files}
+ ${iothub_client_amqp_ws_transport_h_files})
+
+- set(iothub_client_libs ${iothub_client_libs} uamqp)
+ endif(build_as_dynamic)
+ endif()
+
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/files/Use-provided-parson-lib.patch b/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/files/Use-provided-parson-lib.patch
new file mode 100644
index 00000000..91422c62
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-iot-sdk-c/files/Use-provided-parson-lib.patch
@@ -0,0 +1,78 @@
+From 59c9388e3800b9e07fd387dbdc3e26b7242ed6ea Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Fri, 17 Apr 2020 17:52:08 +0100
+Subject: [PATCH 2/2] Use provided parson lib
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 26 --------------------------
+ dependencies.cmake | 3 +++
+ 2 files changed, 3 insertions(+), 26 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e92da5c..04e185a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -177,17 +177,6 @@ endif()
+ # Use solution folders.
+ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+
+-# build the parson library for json parsing
+-add_library(parson
+- ./deps/parson/parson.c
+- ./deps/parson/parson.h
+-)
+-if (MSVC)
+- set_source_files_properties(../deps/parson/parson.c PROPERTIES COMPILE_FLAGS "/wd4244 /wd4232")
+-endif()
+-set(parson_h_install_files ./deps/parson/parson.h)
+-set(parson_install_libs parson)
+-
+ if (IN_OPENWRT)
+ ADD_DEFINITIONS("$ENV{TARGET_LDFLAGS}" "$ENV{TARGET_CPPFLAGS}" "$ENV{TARGET_CFLAGS}")
+ INCLUDE_DIRECTORIES("$ENV{TOOLCHAIN_DIR}/usr/include" "$ENV{TARGET_LDFLAGS}" "$ENV{TARGET_CPPFLAGS}" "$ENV{TARGET_CFLAGS}")
+@@ -419,15 +408,6 @@ if (${use_installed_dependencies})
+ COPYONLY
+ )
+
+- install(FILES ${parson_h_install_files}
+- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot
+- )
+- install(TARGETS ${parson_install_libs} EXPORT azure_iot_sdksTargets
+- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot
+- )
+-
+ install(EXPORT azure_iot_sdksTargets
+ FILE
+ "${PROJECT_NAME}Targets.cmake"
+@@ -443,11 +423,5 @@ if (${use_installed_dependencies})
+ DESTINATION
+ ${package_location}
+ )
+-else()
+- install(FILES ${parson_h_install_files}
+- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot)
+- install(TARGETS ${parson_install_libs}
+- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif()
+
+diff --git a/dependencies.cmake b/dependencies.cmake
+index fd06df6..22ba6af 100644
+--- a/dependencies.cmake
++++ b/dependencies.cmake
+@@ -18,6 +18,9 @@ if(${use_installed_dependencies})
+ endif ()
+ endif ()
+
++ if (NOT parson_FOUND)
++ find_package(parson REQUIRED CONFIG)
++ endif ()
+ else ()
+ add_subdirectory(c-utility)
+
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-azure/azure-macro-utils-c/azure-macro-utils-c.inc b/external/meta-iot-cloud/recipes-azure/azure-macro-utils-c/azure-macro-utils-c.inc
new file mode 100644
index 00000000..bf9323d3
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-macro-utils-c/azure-macro-utils-c.inc
@@ -0,0 +1,14 @@
+inherit cmake
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+sysroot_stage_all_append () {
+ sysroot_stage_dir ${D}${exec_prefix}/cmake ${SYSROOT_DESTDIR}${exec_prefix}/cmake
+}
+
+FILES_${PN}-dev += "\
+ ${exec_prefix}/cmake \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-azure/azure-macro-utils-c/azure-macro-utils-c_1.1.0.bb b/external/meta-iot-cloud/recipes-azure/azure-macro-utils-c/azure-macro-utils-c_1.1.0.bb
new file mode 100644
index 00000000..ce8a1705
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-macro-utils-c/azure-macro-utils-c_1.1.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Microsoft Azure IoT SDKs - Macro Utils For C"
+AUTHOR = "Microsoft Corporation"
+HOMEPAGE = "https://github.com/Azure/azure-macro-utils-c"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4283671594edec4c13aeb073c219237a"
+
+SRC_URI = "\
+ git://github.com/Azure/azure-macro-utils-c.git \
+"
+
+SRCREV = "5926caf4e42e98e730e6d03395788205649a3ada"
+
+PR = "r0"
+
+require ${BPN}.inc
diff --git a/external/meta-iot-cloud/recipes-azure/azure-uamqp-c/azure-uamqp-c.inc b/external/meta-iot-cloud/recipes-azure/azure-uamqp-c/azure-uamqp-c.inc
new file mode 100644
index 00000000..8636ba20
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-uamqp-c/azure-uamqp-c.inc
@@ -0,0 +1,30 @@
+inherit cmake
+
+DEPENDS = "\
+ azure-c-shared-utility \
+ azure-macro-utils-c \
+ umock-c \
+"
+
+SRC_URI += "\
+ file://Fix-packaging-issues.patch \
+"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+EXTRA_OECMAKE = "\
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -Dskip_samples:BOOL=ON \
+ -Duse_installed_dependencies:BOOL=ON \
+"
+
+sysroot_stage_all_append () {
+ sysroot_stage_dir ${D}${exec_prefix}/cmake ${SYSROOT_DESTDIR}${exec_prefix}/cmake
+}
+
+FILES_${PN}-dev += "\
+ ${exec_prefix}/cmake \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-azure/azure-uamqp-c/azure-uamqp-c_1.2.12.bb b/external/meta-iot-cloud/recipes-azure/azure-uamqp-c/azure-uamqp-c_1.2.12.bb
new file mode 100644
index 00000000..48333dbc
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-uamqp-c/azure-uamqp-c_1.2.12.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "uAMQP is a general purpose C library for AMQP"
+AUTHOR = "Microsoft Corporation"
+HOMEPAGE = "https://github.com/Azure/azure-uamqp-c"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4283671594edec4c13aeb073c219237a"
+
+SRC_URI = "\
+ git://github.com/Azure/azure-uamqp-c.git \
+"
+SRCREV = "142cfab9d66c6f81ea0cceb635f31e00cfa51c77"
+
+PR = "r0"
+
+include ${BPN}.inc
diff --git a/external/meta-iot-cloud/recipes-azure/azure-uamqp-c/files/Fix-packaging-issues.patch b/external/meta-iot-cloud/recipes-azure/azure-uamqp-c/files/Fix-packaging-issues.patch
new file mode 100644
index 00000000..415987d0
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-uamqp-c/files/Fix-packaging-issues.patch
@@ -0,0 +1,42 @@
+From 2124dbef79f97e785a3cc75acf636e20e0845661 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Thu, 8 Nov 2018 12:34:23 +0000
+Subject: [PATCH] Fix packaging issues
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 96a2692..46ba016 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,9 @@ project(uamqp)
+
+ FILE(READ ${CMAKE_CURRENT_LIST_DIR}/version.txt UAMQP_VERSION)
+
++set(GENERIC_LIB_VERSION ${UAMQP_VERSION})
++string(SUBSTRING ${UAMQP_VERSION} 0 1 GENERIC_LIB_SOVERSION)
++
+ option(run_e2e_tests "set run_e2e_tests to ON to run e2e tests (default is OFF) [if possible, they are always built]" OFF)
+ option(run_unittests "set run_unittests to ON to run unittests (default is OFF)" OFF)
+ option(skip_samples "set skip_samples to ON to skip building samples (default is OFF)[if possible, they are always built]" OFF)
+@@ -247,6 +250,14 @@ setTargetBuildProperties(uamqp)
+
+ target_link_libraries(uamqp aziotsharedutil)
+
++if (NOT WIN32)
++ set_target_properties(uamqp
++ PROPERTIES
++ VERSION ${GENERIC_LIB_VERSION}
++ SOVERSION ${GENERIC_LIB_SOVERSION}
++ )
++endif()
++
+ if (NOT ${skip_samples})
+ add_subdirectory(samples)
+ endif()
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-azure/azure-uhttp-c/azure-uhttp-c.inc b/external/meta-iot-cloud/recipes-azure/azure-uhttp-c/azure-uhttp-c.inc
new file mode 100644
index 00000000..a97e872b
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-uhttp-c/azure-uhttp-c.inc
@@ -0,0 +1,31 @@
+inherit cmake
+
+DEPENDS = "\
+ azure-c-shared-utility \
+ azure-macro-utils-c \
+ openssl \
+"
+
+SRC_URI += "\
+ file://Fix-packaging-issues.patch \
+"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+EXTRA_OECMAKE += "\
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -Dskip_samples:BOOL=ON \
+ -Duse_installed_dependencies:BOOL=ON \
+ -Duse_openssl:BOOL=ON \
+"
+
+sysroot_stage_all_append () {
+ sysroot_stage_dir ${D}${exec_prefix}/cmake ${SYSROOT_DESTDIR}${exec_prefix}/cmake
+}
+
+FILES_${PN}-dev += "\
+ ${exec_prefix}/cmake \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-azure/azure-uhttp-c/azure-uhttp-c_1.0.1.bb b/external/meta-iot-cloud/recipes-azure/azure-uhttp-c/azure-uhttp-c_1.0.1.bb
new file mode 100644
index 00000000..20e89877
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-uhttp-c/azure-uhttp-c_1.0.1.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "HTTP Library written in C"
+AUTHOR = "Microsoft Corporation"
+HOMEPAGE = "https://github.com/Azure/azure-uhttp-c"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b98fddd052bb2f5ddbcdbd417ffb26a8"
+
+SRC_URI = "\
+ git://github.com/Azure/azure-uhttp-c.git \
+"
+
+SRCREV = "b67a6bfa0d018a8a23176ee214e46c208fc323c3"
+
+PR = "r0"
+
+require ${BPN}.inc
diff --git a/external/meta-iot-cloud/recipes-azure/azure-uhttp-c/files/Fix-packaging-issues.patch b/external/meta-iot-cloud/recipes-azure/azure-uhttp-c/files/Fix-packaging-issues.patch
new file mode 100644
index 00000000..cc156dec
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-uhttp-c/files/Fix-packaging-issues.patch
@@ -0,0 +1,42 @@
+From a98a0f1ac661d3c3f85030883403615e18f58e42 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Mon, 27 Apr 2020 21:11:25 +0100
+Subject: [PATCH] Fix packaging issues
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ CMakeLists.txt | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 27eae0b..ab0e6ee 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,9 @@ project(uhttp)
+
+ set(UHTTP_VERSION 1.0.1)
+
++set(GENERIC_LIB_VERSION ${UHTTP_VERSION})
++string(SUBSTRING ${UHTTP_VERSION} 0 1 GENERIC_LIB_SOVERSION)
++
+ option(run_e2e_tests "set run_e2e_tests to ON to run e2e tests (default is OFF)" OFF)
+ option(run_unittests "set run_unittests to ON to run unittests (default is OFF)" OFF)
+ option(skip_samples "set skip_samples to ON to skip building samples (default is OFF)[if possible, they are always built]" OFF)
+@@ -128,6 +131,14 @@ add_library(uhttp ${uhttp_c_files} ${uhttp_h_files})
+ setTargetBuildProperties(uhttp)
+ target_link_libraries(uhttp aziotsharedutil)
+
++if (NOT WIN32)
++ set_target_properties(uhttp
++ PROPERTIES
++ VERSION ${GENERIC_LIB_VERSION}
++ SOVERSION ${GENERIC_LIB_SOVERSION}
++ )
++endif()
++
+ if (${run_unittests})
+ #include("dependencies-test.cmake")
+ add_subdirectory(tests)
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-azure/azure-umqtt-c/azure-umqtt-c.inc b/external/meta-iot-cloud/recipes-azure/azure-umqtt-c/azure-umqtt-c.inc
new file mode 100644
index 00000000..9f271ec4
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-umqtt-c/azure-umqtt-c.inc
@@ -0,0 +1,26 @@
+inherit cmake
+
+DEPENDS = "\
+ azure-c-shared-utility \
+ azure-macro-utils-c \
+ umock-c \
+"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+EXTRA_OECMAKE += "\
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -Dskip_samples:BOOL=ON \
+ -Duse_installed_dependencies:BOOL=ON \
+"
+
+sysroot_stage_all_append () {
+ sysroot_stage_dir ${D}${exec_prefix}/cmake ${SYSROOT_DESTDIR}${exec_prefix}/cmake
+}
+
+FILES_${PN}-dev += "\
+ ${exec_prefix}/cmake \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-azure/azure-umqtt-c/azure-umqtt-c_1.1.12.bb b/external/meta-iot-cloud/recipes-azure/azure-umqtt-c/azure-umqtt-c_1.1.12.bb
new file mode 100644
index 00000000..fc296c49
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/azure-umqtt-c/azure-umqtt-c_1.1.12.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Microsoft Azure MQTT"
+AUTHOR = "Microsoft Corporation"
+HOMEPAGE = "https://github.com/Azure/azure-umqtt-c"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6e1bb384cedd6442b3a2b9a5b531e005"
+
+SRC_URI = "\
+ git://github.com/Azure/azure-umqtt-c.git \
+"
+
+SRCREV = "65cdd1013715fb9d208c42f957eb353fbe22bafb"
+
+PR = "r0"
+
+require ${BPN}.inc
diff --git a/external/meta-iot-cloud/recipes-azure/iothub-explorer/node-iothub-explorer_1.1.19.bb b/external/meta-iot-cloud/recipes-azure/iothub-explorer/node-iothub-explorer_1.1.19.bb
new file mode 100644
index 00000000..25950a96
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/iothub-explorer/node-iothub-explorer_1.1.19.bb
@@ -0,0 +1,73 @@
+DESCRIPTION = "IoT Hub Explorer is a tool that allows you to explore and test Azure IoT Hub features"
+AUTHOR = "Microsoft Corporation"
+HOMEPAGE = "https://github.com/Azure/iothub-explorer"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0296d24e582db92fa4e33fd40e18099a"
+
+DEPENDS = "nodejs-native"
+RDEPENDS_${PN} = "bash nodejs"
+
+PR = "r0"
+
+PACKAGES = "\
+ ${PN} \
+"
+
+SRC_URI = "git://github.com/Azure/iothub-explorer.git"
+SRCREV = "8b232a22e3b67efa17897d9ee66856e77f78a8c3"
+
+S = "${WORKDIR}/git"
+
+def get_nodejs_arch(d):
+ target_arch = d.getVar('TRANSLATED_TARGET_ARCH', True)
+
+ if target_arch == "x86-64":
+ target_arch = "x64"
+ elif target_arch == "aarch64":
+ target_arch = "arm64"
+ elif target_arch == "powerpc":
+ target_arch = "ppc"
+ elif target_arch == "powerpc64":
+ target_arch = "ppc64"
+ elif (target_arch == "i486" or target_arch == "i586" or target_arch == "i686"):
+ target_arch = "ia32"
+
+ return target_arch
+
+NODE_MODULES_DIR = "${prefix}/lib/node_modules/"
+NPM_CACHE_DIR ?= "${WORKDIR}/npm_cache"
+NPM_REGISTRY ?= "http://registry.npmjs.org/"
+NPM_ARCH = "${@get_nodejs_arch(d)}"
+NPM_INSTALL_FLAGS ?= "--production --without-ssl --insecure --no-optional --verbose"
+
+SRC_NAME = "iothub-explorer"
+
+do_compile() {
+ export NPM_CONFIG_CACHE="${NPM_CACHE_DIR}"
+
+ npm cache clear --force
+ npm --registry=${NPM_REGISTRY} --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} ${NPM_INSTALL_FLAGS} install
+ npm prune --production
+
+ # FIXME: This is only required until the xml2js dependency is update in the azure-storage package
+ find ${S} -type f -name "switch-bench.js" -exec rm -f {} \;
+}
+
+do_install() {
+ install -d ${D}${NODE_MODULES_DIR}/${SRC_NAME}
+ cp -r ${S}/* ${D}${NODE_MODULES_DIR}/${SRC_NAME}
+
+ # Set permissions
+ chmod 0755 ${D}${NODE_MODULES_DIR}${SRC_NAME}/${SRC_NAME}.js
+
+ # Symlinks
+ install -d ${D}${bindir}
+ ln -s ${NODE_MODULES_DIR}${SRC_NAME}/${SRC_NAME}.js ${D}${bindir}/${SRC_NAME}
+}
+
+FILES_${PN} += "\
+ ${NODE_MODULES_DIR}${SRC_NAME} \
+ ${bindir} \
+"
+
+INHIBIT_PACKAGE_DEBUG_SPLIT_${PN} = "1"
diff --git a/external/meta-iot-cloud/recipes-azure/node-red-contrib-azureiothubnode/node-red-contrib-azureiothubnode/npm-shrinkwrap.json b/external/meta-iot-cloud/recipes-azure/node-red-contrib-azureiothubnode/node-red-contrib-azureiothubnode/npm-shrinkwrap.json
new file mode 100644
index 00000000..40c4be97
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/node-red-contrib-azureiothubnode/node-red-contrib-azureiothubnode/npm-shrinkwrap.json
@@ -0,0 +1,1062 @@
+{
+ "name": "node-red-contrib-azureiothubnode",
+ "version": "0.5.2",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@azure/abort-controller": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.1.tgz",
+ "integrity": "sha512-wP2Jw6uPp8DEDy0n4KNidvwzDjyVV2xnycEIq7nPzj1rHyb/r+t3OPeNT1INZePP2wy5ZqlwyuyOMTi0ePyY1A==",
+ "requires": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "@azure/core-asynciterator-polyfill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.0.tgz",
+ "integrity": "sha512-kmv8CGrPfN9SwMwrkiBK9VTQYxdFQEGe0BmQk+M8io56P9KNzpAxcWE/1fxJj7uouwN4kXF0BHW8DNlgx+wtCg=="
+ },
+ "@azure/core-auth": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.0.2.tgz",
+ "integrity": "sha512-zhPJObdrhz2ymIqGL1x8i3meEuaLz0UPjH9mOq9RGOlJB2Pb6K6xPtkHbRsfElgoO9USR4hH2XU5pLa4/JHHIw==",
+ "requires": {
+ "@azure/abort-controller": "^1.0.0",
+ "@azure/core-tracing": "1.0.0-preview.7",
+ "@opentelemetry/types": "^0.2.0",
+ "tslib": "^1.9.3"
+ }
+ },
+ "@azure/core-http": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-1.0.3.tgz",
+ "integrity": "sha512-hmsalo2i1noF5LMwNBNymJnf210ha7Rh6x+BQBBcb+wUZI5hVGRbaRgHzqpJiH8FmfJrDuKZI+S7i2rILUBJTg==",
+ "requires": {
+ "@azure/abort-controller": "^1.0.0",
+ "@azure/core-auth": "^1.0.0",
+ "@azure/core-tracing": "1.0.0-preview.7",
+ "@azure/logger": "^1.0.0",
+ "@opentelemetry/types": "^0.2.0",
+ "@types/node-fetch": "^2.5.0",
+ "@types/tunnel": "^0.0.1",
+ "form-data": "^3.0.0",
+ "node-fetch": "^2.6.0",
+ "process": "^0.11.10",
+ "tough-cookie": "^3.0.1",
+ "tslib": "^1.10.0",
+ "tunnel": "^0.0.6",
+ "uuid": "^3.3.2",
+ "xml2js": "^0.4.19"
+ }
+ },
+ "@azure/core-lro": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-1.0.0.tgz",
+ "integrity": "sha512-l4abIb8S9qmlv3bJkonLvgGSVQcSXq5jByA7Z28GRGJaQN/mSFal9YQOuLvVag+JXQJsoftuxJFrZiggF2TwOg==",
+ "requires": {
+ "@azure/abort-controller": "^1.0.0",
+ "@azure/core-http": "^1.0.0",
+ "events": "^3.0.0",
+ "tslib": "^1.9.3"
+ }
+ },
+ "@azure/core-paging": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.0.0.tgz",
+ "integrity": "sha512-CzaT7LwxU97PZ+/Pn7uAbNGXY2mJ/3b56kmLsZzbR9stfrNfzlILxR94WHG/D1jZEQOk4lUNiaqJ2zP7nSGJhA==",
+ "requires": {
+ "@azure/core-asynciterator-polyfill": "^1.0.0"
+ }
+ },
+ "@azure/core-tracing": {
+ "version": "1.0.0-preview.7",
+ "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.7.tgz",
+ "integrity": "sha512-pkFCw6OiJrpR+aH1VQe6DYm3fK2KWCC5Jf3m/Pv1RxF08M1Xm08RCyQ5Qe0YyW5L16yYT2nnV48krVhYZ6SGFA==",
+ "requires": {
+ "@opencensus/web-types": "0.0.7",
+ "@opentelemetry/types": "^0.2.0",
+ "tslib": "^1.9.3"
+ }
+ },
+ "@azure/logger": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.0.tgz",
+ "integrity": "sha512-g2qLDgvmhyIxR3JVS8N67CyIOeFRKQlX/llxYJQr1OSGQqM3HTpVP8MjmjcEKbL/OIt2N9C9UFaNQuKOw1laOA==",
+ "requires": {
+ "tslib": "^1.9.3"
+ }
+ },
+ "@azure/storage-blob": {
+ "version": "12.0.2",
+ "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.0.2.tgz",
+ "integrity": "sha512-URELuzMzSDKUVRLt+bXIh/PZe54qWiLxDQ443rcvfpRAPP3QBLnDFw6hFacSXeU/0bOIRcbzAeKtKOMhoE7lSw==",
+ "requires": {
+ "@azure/abort-controller": "^1.0.0",
+ "@azure/core-http": "^1.0.0",
+ "@azure/core-lro": "^1.0.0",
+ "@azure/core-paging": "^1.0.0",
+ "@azure/core-tracing": "1.0.0-preview.7",
+ "@azure/logger": "^1.0.0",
+ "@opentelemetry/types": "^0.2.0",
+ "events": "^3.0.0",
+ "tslib": "^1.10.0"
+ }
+ },
+ "@opencensus/web-types": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/@opencensus/web-types/-/web-types-0.0.7.tgz",
+ "integrity": "sha512-xB+w7ZDAu3YBzqH44rCmG9/RlrOmFuDPt/bpf17eJr8eZSrLt7nc7LnWdxM9Mmoj/YKMHpxRg28txu3TcpiL+g=="
+ },
+ "@opentelemetry/types": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/types/-/types-0.2.0.tgz",
+ "integrity": "sha512-GtwNB6BNDdsIPAYEdpp3JnOGO/3AJxjPvny53s3HERBdXSJTGQw8IRhiaTEX0b3w9P8+FwFZde4k+qkjn67aVw=="
+ },
+ "@types/node": {
+ "version": "13.7.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz",
+ "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ=="
+ },
+ "@types/node-fetch": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.4.tgz",
+ "integrity": "sha512-Oz6id++2qAOFuOlE1j0ouk1dzl3mmI1+qINPNBhi9nt/gVOz0G+13Ao6qjhdF0Ys+eOkhu6JnFmt38bR3H0POQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/tunnel": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.1.tgz",
+ "integrity": "sha512-AOqu6bQu5MSWwYvehMXLukFHnupHrpZ8nvgae5Ggie9UwzDR1CCwoXgSSWNZJuyOlCdfdsWMA5F2LlmvyoTv8A==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "async": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.1.1.tgz",
+ "integrity": "sha512-X5Dj8hK1pJNC2Wzo2Rcp9FBVdJMGRR/S7V+lH46s8GVFhtbo5O4Le5GECCF/8PISVdkUA6mMPvgz7qTTD1rf1g=="
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "azure-iot-amqp-base": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/azure-iot-amqp-base/-/azure-iot-amqp-base-2.3.2.tgz",
+ "integrity": "sha512-4n17esOnRQn7jhqEo4qDqkV8yPiFSb7lPGIscEAdL5tiemGhtEs/Hn+WC9t6RBZVj0sG6VL0Vip71m6P/5ZJSg==",
+ "requires": {
+ "async": "^2.6.2",
+ "azure-iot-common": "1.11.2",
+ "debug": "^4.1.1",
+ "lodash.merge": "^4.6.1",
+ "machina": "^4.0.2",
+ "rhea": "^1.0.15",
+ "uuid": "^3.3.2",
+ "ws": "^6.0.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ }
+ }
+ },
+ "azure-iot-common": {
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/azure-iot-common/-/azure-iot-common-1.11.2.tgz",
+ "integrity": "sha512-PwCug/JvKHWXdbU3/mqN5oTicjhBHRBcbe+4H3rBYt0wilOEZC4N/KTNRX/PQGECIpLzQRSyvK6MNpqQL6bIuQ==",
+ "requires": {
+ "debug": "^4.1.1",
+ "getos": "^3.1.1"
+ }
+ },
+ "azure-iot-device": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/azure-iot-device/-/azure-iot-device-1.12.2.tgz",
+ "integrity": "sha512-CjeTuCNfSdXry8onrIoRrteG/H5sNYRJXjPI81mzZ5EJ9PFMP6JnL+l3LZ2Eyw7kHNwZ7WI2lsfEcDYeDpBIOg==",
+ "requires": {
+ "@azure/abort-controller": "1.0.1",
+ "@azure/storage-blob": "^12.0.0",
+ "azure-iot-common": "1.11.2",
+ "azure-iot-http-base": "1.10.2",
+ "debug": "^4.1.1",
+ "lodash": "^4.17.15",
+ "machina": "^4.0.2",
+ "traverse": "^0.6.6"
+ }
+ },
+ "azure-iot-device-amqp": {
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/azure-iot-device-amqp/-/azure-iot-device-amqp-1.11.2.tgz",
+ "integrity": "sha512-ks8xhxF+RlSECKy3rSNbUCY+ExwX3im8988do/3bMqGXeHdnP5B4Q77pS0BC9HX24T9hI7S4mGVgGCtF7aaJ4A==",
+ "requires": {
+ "async": "^2.6.2",
+ "azure-iot-amqp-base": "2.3.2",
+ "azure-iot-common": "1.11.2",
+ "azure-iot-device": "1.12.2",
+ "debug": "^4.1.1",
+ "machina": "^4.0.2",
+ "rhea": "^1.0.15",
+ "uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ }
+ }
+ },
+ "azure-iot-device-http": {
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/azure-iot-device-http/-/azure-iot-device-http-1.11.2.tgz",
+ "integrity": "sha512-dsCBjAlL/tzY7cAchaHDeM83ks2xCV15MWvUwlIN3c9Rlh7wLkR+25fWbO0xLZ+zueIPq5MlIILbva2+xydP+g==",
+ "requires": {
+ "azure-iot-common": "1.11.2",
+ "azure-iot-device": "1.12.2",
+ "azure-iot-http-base": "1.10.2",
+ "debug": "^4.1.1",
+ "node-crontab": "^0.0.8"
+ }
+ },
+ "azure-iot-device-mqtt": {
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/azure-iot-device-mqtt/-/azure-iot-device-mqtt-1.11.2.tgz",
+ "integrity": "sha512-jxGehVyF7HBbIJY7uQ+CGxuLbhTn+bMwWTAWAng1C5aDvu0a9rhYlV4XHpoOwTFJvVOkpFL5KZsOXO9EHM0ScQ==",
+ "requires": {
+ "azure-iot-common": "1.11.2",
+ "azure-iot-device": "1.12.2",
+ "azure-iot-mqtt-base": "1.10.2",
+ "debug": "^4.1.1",
+ "machina": "^4.0.2",
+ "uuid": "^3.3.2"
+ }
+ },
+ "azure-iot-http-base": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/azure-iot-http-base/-/azure-iot-http-base-1.10.2.tgz",
+ "integrity": "sha512-0wTa2HTmSFm3hghCv4pI0fadDWl0xs4HbexM+IUwN8wgGFiEPBKo73DAj1hCBytNyVbgA0upOfoh6iw7LoLcEA==",
+ "requires": {
+ "azure-iot-common": "1.11.2",
+ "debug": "^4.1.1",
+ "uuid": "^3.3.2"
+ }
+ },
+ "azure-iot-mqtt-base": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/azure-iot-mqtt-base/-/azure-iot-mqtt-base-1.10.2.tgz",
+ "integrity": "sha512-l9JbXdKQRqOGP8/5suGr0CCXa5aU0gkude5P/ewiHpgg3AnS3BoWEHFer27YpTTAWh51TuTJQWv80QToMSnW4Q==",
+ "requires": {
+ "azure-iot-common": "1.11.2",
+ "debug": "^4.1.1",
+ "machina": "^4.0.2",
+ "mqtt": "^3.0.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base64-js": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
+ },
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "callback-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz",
+ "integrity": "sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "> 1.0.0 < 3.0.0"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commist": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz",
+ "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==",
+ "requires": {
+ "leven": "^2.1.0",
+ "minimist": "^1.1.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "cron-parser": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-0.3.6.tgz",
+ "integrity": "sha1-Hkc069X6BU9XZmk8UkaLF9+Wgck="
+ },
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-set": "~0.1.5",
+ "es6-symbol": "~3.1.1",
+ "event-emitter": "~0.3.5"
+ }
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "~0.3.5"
+ },
+ "dependencies": {
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ }
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "events": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
+ "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg=="
+ },
+ "ext": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+ "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+ "requires": {
+ "type": "^2.0.0"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz",
+ "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow=="
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "form-data": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
+ "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "getos": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.4.tgz",
+ "integrity": "sha512-UORPzguEB/7UG5hqiZai8f0vQ7hzynMQyJLxStoQ8dPGAcmgsfXOPA4iE/fGtweHYkK+z4zc9V0g+CIFRf5HYw==",
+ "requires": {
+ "async": "^3.1.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "glob-stream": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
+ "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
+ "requires": {
+ "extend": "^3.0.0",
+ "glob": "^7.1.1",
+ "glob-parent": "^3.1.0",
+ "is-negated-glob": "^1.0.0",
+ "ordered-read-streams": "^1.0.0",
+ "pumpify": "^1.3.5",
+ "readable-stream": "^2.1.5",
+ "remove-trailing-separator": "^1.0.1",
+ "to-absolute-glob": "^2.0.0",
+ "unique-stream": "^2.0.2"
+ }
+ },
+ "help-me": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz",
+ "integrity": "sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y=",
+ "requires": {
+ "callback-stream": "^1.0.2",
+ "glob-stream": "^6.1.0",
+ "through2": "^2.0.1",
+ "xtend": "^4.0.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk="
+ },
+ "is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "requires": {
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ },
+ "is-negated-glob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
+ "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI="
+ },
+ "is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "requires": {
+ "is-unc-path": "^1.0.0"
+ }
+ },
+ "is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "requires": {
+ "unc-path-regex": "^0.1.2"
+ }
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ },
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA="
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ },
+ "machina": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/machina/-/machina-4.0.2.tgz",
+ "integrity": "sha512-OOlFrW1rd783S6tF36v5Ie/TM64gfvSl9kYLWL2cPA31J71HHWW3XrgSe1BZSFAPkh8532CMJMLv/s9L2aopiA==",
+ "requires": {
+ "lodash": "^4.17.5"
+ }
+ },
+ "mime-db": {
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
+ },
+ "mime-types": {
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+ "requires": {
+ "mime-db": "1.43.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "mqtt": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-3.0.0.tgz",
+ "integrity": "sha512-0nKV6MAc1ibKZwaZQUTb3iIdT4NVpj541BsYrqrGBcQdQ7Jd0MnZD1/6/nj1UFdGTboK9ZEUXvkCu2nPCugHFA==",
+ "requires": {
+ "base64-js": "^1.3.0",
+ "commist": "^1.0.0",
+ "concat-stream": "^1.6.2",
+ "end-of-stream": "^1.4.1",
+ "es6-map": "^0.1.5",
+ "help-me": "^1.0.1",
+ "inherits": "^2.0.3",
+ "minimist": "^1.2.0",
+ "mqtt-packet": "^6.0.0",
+ "pump": "^3.0.0",
+ "readable-stream": "^2.3.6",
+ "reinterval": "^1.1.0",
+ "split2": "^3.1.0",
+ "websocket-stream": "^5.1.2",
+ "xtend": "^4.0.1"
+ }
+ },
+ "mqtt-packet": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.3.0.tgz",
+ "integrity": "sha512-TjusSKu8uFZCmGZU8K6r4C3Ic+er/4r8rva+Mp5GQgWg/KjSdAfLK/GTucBwkdATE2Z0Da8AssI2WHzs0M9W0w==",
+ "requires": {
+ "bl": "^1.2.2",
+ "inherits": "^2.0.3",
+ "process-nextick-args": "^2.0.0",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
+ },
+ "node-crontab": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/node-crontab/-/node-crontab-0.0.8.tgz",
+ "integrity": "sha1-LbFiFBk4PQduzpCDvBhKTp6z7A8=",
+ "requires": {
+ "cron-parser": "~0.3.3"
+ }
+ },
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "ordered-read-streams": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
+ "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
+ "requires": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "psl": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
+ "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "reinterval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz",
+ "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc="
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+ },
+ "rhea": {
+ "version": "1.0.18",
+ "resolved": "https://registry.npmjs.org/rhea/-/rhea-1.0.18.tgz",
+ "integrity": "sha512-30wUB3fLXnMT8FDksNtoeHbg85GbT0qdei9FOn5eb/dqFOtuJu2oze1kf4YQkDvj/lZZAAx6Ol0NEwEiIBeIeg==",
+ "requires": {
+ "debug": "0.8.0 - 3.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "split2": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.1.1.tgz",
+ "integrity": "sha512-emNzr1s7ruq4N+1993yht631/JH+jaj0NYBosuKmLcq+JkGQ9MmTw1RB1fGaTCzUuseRIClrlSLHRNYGwWQ58Q==",
+ "requires": {
+ "readable-stream": "^3.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+ "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "through2-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+ "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "to-absolute-glob": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
+ "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
+ "requires": {
+ "is-absolute": "^1.0.0",
+ "is-negated-glob": "^1.0.0"
+ }
+ },
+ "tough-cookie": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
+ "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
+ "requires": {
+ "ip-regex": "^2.1.0",
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ }
+ },
+ "traverse": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
+ "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc="
+ },
+ "tslib": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
+ },
+ "tunnel": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
+ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
+ },
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
+ },
+ "unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
+ },
+ "unique-stream": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+ "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+ "requires": {
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "through2-filter": "^3.0.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ },
+ "websocket-stream": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.5.0.tgz",
+ "integrity": "sha512-EXy/zXb9kNHI07TIMz1oIUIrPZxQRA8aeJ5XYg5ihV8K4kD1DuA+FY6R96HfdIHzlSzS8HiISAfrm+vVQkZBug==",
+ "requires": {
+ "duplexify": "^3.5.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.3",
+ "safe-buffer": "^5.1.2",
+ "ws": "^3.2.0",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "ws": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+ "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "xml2js": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
+ "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
+ "requires": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ }
+ },
+ "xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+}
diff --git a/external/meta-iot-cloud/recipes-azure/node-red-contrib-azureiothubnode/node-red-contrib-azureiothubnode_0.5.2.bb b/external/meta-iot-cloud/recipes-azure/node-red-contrib-azureiothubnode/node-red-contrib-azureiothubnode_0.5.2.bb
new file mode 100644
index 00000000..8f0cb9cb
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/node-red-contrib-azureiothubnode/node-red-contrib-azureiothubnode_0.5.2.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Node-Red node for Azure IoT Hub"
+AUTHOR = "Microsoft Corporation"
+HOMEPAGE = "https://github.com/Azure/azure-iot-sdk-node"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=854b7e0c8f4c0f85f53e20cdc2044564"
+
+inherit npm
+
+RDEPENDS_${PN} = "\
+ bash \
+ node-red \
+"
+
+SRC_URI = "\
+ npm://registry.npmjs.org;package=${BPN};version=${PV} \
+ npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
+"
+
+PR = "r0"
+
+S = "${WORKDIR}/npm"
diff --git a/external/meta-iot-cloud/recipes-azure/python/python3-azure-iot-device_2.1.1.bb b/external/meta-iot-cloud/recipes-azure/python/python3-azure-iot-device_2.1.1.bb
new file mode 100644
index 00000000..7f2f094e
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/python/python3-azure-iot-device_2.1.1.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Microsoft Azure IoT Device Library"
+AUTHOR = "Microsoft Corporation"
+HOMEPAGE = "https://github.com/Azure/azure-iot-sdk-python/tree/master/azure-iot-device"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-janus \
+ ${PYTHON_PN}-paho-mqtt \
+ ${PYTHON_PN}-pysocks \
+ ${PYTHON_PN}-requests \
+ ${PYTHON_PN}-requests-unixsocket \
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-transitions \
+ ${PYTHON_PN}-urllib3 \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-asyncio \
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-multiprocessing \
+ ${PYTHON_PN}-netclient \
+"
+
+PR = "r0"
+
+SRC_URI[sha256sum] = "6186c9be8c25917a29ac9f432b484d5c28e428ec83a919926c77b0472d36abc7"
diff --git a/external/meta-iot-cloud/recipes-azure/umock-c/umock-c.inc b/external/meta-iot-cloud/recipes-azure/umock-c/umock-c.inc
new file mode 100644
index 00000000..9d1bf079
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/umock-c/umock-c.inc
@@ -0,0 +1,22 @@
+inherit cmake
+
+DEPENDS = "\
+ azure-macro-utils-c \
+"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+EXTRA_OECMAKE = "\
+ -Duse_installed_dependencies:BOOL=ON \
+"
+
+sysroot_stage_all_append () {
+ sysroot_stage_dir ${D}${exec_prefix}/cmake ${SYSROOT_DESTDIR}${exec_prefix}/cmake
+}
+
+FILES_${PN}-dev += "\
+ ${exec_prefix}/cmake \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-azure/umock-c/umock-c_1.1.19.bb b/external/meta-iot-cloud/recipes-azure/umock-c/umock-c_1.1.19.bb
new file mode 100644
index 00000000..6c9dcc95
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-azure/umock-c/umock-c_1.1.19.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "umock_c is a C mocking library."
+HOMEPAGE = "https://github.com/Azure/umock-c"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4f9c2c296f77b3096b6c11a16fa7c66e"
+
+SRC_URI = "\
+ git://github.com/Azure/umock-c.git \
+"
+
+SRCREV = "504193e65d1c2f6eb50c15357167600a296df7ff"
+
+PR = "r0"
+
+require ${BPN}.inc
diff --git a/external/meta-iot-cloud/recipes-connectivity/kura/files/Add-Yocto-build-profile.patch b/external/meta-iot-cloud/recipes-connectivity/kura/files/Add-Yocto-build-profile.patch
new file mode 100644
index 00000000..db2f2537
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/kura/files/Add-Yocto-build-profile.patch
@@ -0,0 +1,86 @@
+From bf524fb70a22f17c4cf62133bda14924a9e2e5a3 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Wed, 11 Mar 2020 19:19:41 +0000
+Subject: [PATCH 2/3] Add Yocto build profile
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ kura/distrib/pom.xml | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 63 insertions(+)
+
+diff --git a/kura/distrib/pom.xml b/kura/distrib/pom.xml
+index b016846..3ac57cd 100644
+--- a/kura/distrib/pom.xml
++++ b/kura/distrib/pom.xml
+@@ -1001,5 +1001,68 @@
+ </dependencies>
+
+ <profiles>
++
++ <profile>
++ <id>yocto</id>
++ <activation>
++ <activeByDefault>true</activeByDefault>
++ </activation>
++ <build>
++ <resources>
++ <resource>
++ <directory>src/main/resources</directory>
++ <filtering>true</filtering>
++ </resource>
++ </resources>
++ <plugins>
++ <plugin>
++ <groupId>org.codehaus.mojo</groupId>
++ <artifactId>buildnumber-maven-plugin</artifactId>
++ <version>1.0</version>
++ <executions>
++ <execution>
++ <phase>validate</phase>
++ <goals>
++ <goal>create-timestamp</goal>
++ </goals>
++ </execution>
++ </executions>
++ </plugin>
++ <plugin>
++ <groupId>org.apache.maven.plugins</groupId>
++ <artifactId>maven-antrun-plugin</artifactId>
++ <version>1.7</version>
++ <executions>
++ <execution>
++ <id>yocto-jars</id>
++ <phase>prepare-package</phase>
++ <goals>
++ <goal>run</goal>
++ </goals>
++ <configuration>
++ <target>
++ <property name="buildNumber" value="buildNumber" />
++ <property name="project.version" value="${project.version}" />
++ <property name="project.build.profile" value="${project.build.profile}" />
++ <property name="project.build.directory" value="${project.build.directory}" />
++ <property name="build.name" value="yocto" />
++ <property name="target.device" value="%MACHINE%" />
++ <property name="native.tag" value="%ARCH%" />
++ <property name="kura.os.version" value="%DISTRO%" />
++ <property name="kura.arch" value="%ARCH%" />
++ <property name="service.manager" value="%SERVICE_MANAGER%" />
++ <property name="os.base" value="yocto" />
++ <property name="kura.mem.size" value="%MEMSIZE%m" />
++ <property name="kura.install.dir" value="/opt/eclipse" />
++ <ant antfile="${basedir}/src/main/ant/build_equinox_distrib.xml" target="dist-linux" />
++ </target>
++ </configuration>
++ </execution>
++ </executions>
++ </plugin>
++ </plugins>
++ </build>
++ </profile>
++
+ </profiles>
+ </project>
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-connectivity/kura/files/Disable-checksum-generation.patch b/external/meta-iot-cloud/recipes-connectivity/kura/files/Disable-checksum-generation.patch
new file mode 100644
index 00000000..8e06a7ca
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/kura/files/Disable-checksum-generation.patch
@@ -0,0 +1,57 @@
+From 2beb318edac57086d581f932ae6d2e736cd949a5 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Thu, 12 Mar 2020 12:18:03 +0000
+Subject: [PATCH 2/2] Disable checksum generation
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ kura/distrib/pom.xml | 33 ---------------------------------
+ 1 file changed, 33 deletions(-)
+
+diff --git a/kura/distrib/pom.xml b/kura/distrib/pom.xml
+index 3ac57cd..528656b 100644
+--- a/kura/distrib/pom.xml
++++ b/kura/distrib/pom.xml
+@@ -819,39 +819,6 @@
+ </target>
+ </configuration>
+ </execution>
+- <execution>
+- <id>calc-checksums</id>
+- <phase>install</phase>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <configuration>
+- <target>
+- <checksum algorithm="md5">
+- <fileset dir="${basedir}/target/">
+- <include name="*.deb" />
+- <include name="*.dp" />
+- <include name="*.zip" />
+- <include name="kura_${project.version}_*.sh" />
+- <include name="kura_${project.version}_*.dp" />
+- <exclude name="kura_${project.version}_*.dp" />
+- <exclude name="kura_${project.version}_*.zip" />
+- </fileset>
+- </checksum>
+- <checksum algorithm="SHA-1">
+- <fileset dir="${basedir}/target/">
+- <include name="*.deb" />
+- <include name="*.dp" />
+- <include name="*.zip" />
+- <include name="kura_${project.version}_*.sh" />
+- <include name="kura_${project.version}_*.dp" />
+- <exclude name="kura_${project.version}_*.dp" />
+- <exclude name="kura_${project.version}_*.zip" />
+- </fileset>
+- </checksum>
+- </target>
+- </configuration>
+- </execution>
+ </executions>
+ </plugin>
+ </plugins>
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-connectivity/kura/files/Fix-equinox-build.patch b/external/meta-iot-cloud/recipes-connectivity/kura/files/Fix-equinox-build.patch
new file mode 100644
index 00000000..31e99e55
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/kura/files/Fix-equinox-build.patch
@@ -0,0 +1,192 @@
+From c38a9b9ab749fc32d9e3d5e06f21043a7dc6288d Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Thu, 12 Mar 2020 10:57:24 +0000
+Subject: [PATCH] Fix equinox build
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ .../distrib/src/main/ant/build_equinox_distrib.xml | 132 ---------------------
+ 1 file changed, 132 deletions(-)
+
+diff --git a/kura/distrib/src/main/ant/build_equinox_distrib.xml b/kura/distrib/src/main/ant/build_equinox_distrib.xml
+index 6ef51a6..8985da5 100644
+--- a/kura/distrib/src/main/ant/build_equinox_distrib.xml
++++ b/kura/distrib/src/main/ant/build_equinox_distrib.xml
+@@ -391,27 +391,16 @@ fi]]>
+ </echo>
+
+ <!-- Populate parameters -->
+- <copy file="src/main/resources/${build.name}/kura_install.sh"
+- tofile="${project.build.directory}/${build.output.name}/kura_install.sh" />
+ <copy file="src/main/resources/common/kura.init.yocto"
+ tofile="${project.build.directory}/${build.output.name}/kura.init.yocto"
+ failonerror="false" />
+- <copy file="src/main/resources/common/kura.init.raspbian"
+- tofile="${project.build.directory}/${build.output.name}/kura.init.raspbian"
+- failonerror="false" />
+ <copy file="src/main/resources/common/kura.service"
+ tofile="${project.build.directory}/${build.output.name}/kura.service"
+ failonerror="false" />
+ <replaceregexp
+- file="${project.build.directory}/${build.output.name}/kura_install.sh"
+- match="INSTALL_DIR=.*" replace="INSTALL_DIR=${kura.install.dir}" />
+- <replaceregexp
+ file="${project.build.directory}/${build.output.name}/kura.init.yocto"
+ match="INSTALL_DIR=.*" replace="INSTALL_DIR=${kura.install.dir}" />
+ <replaceregexp
+- file="${project.build.directory}/${build.output.name}/kura.init.raspbian"
+- match="INSTALL_DIR=.*" replace="INSTALL_DIR=${kura.install.dir}" />
+- <replaceregexp
+ file="${project.build.directory}/${build.output.name}/kura.service"
+ match="INSTALL_DIR" replace="${kura.install.dir}" />
+
+@@ -441,89 +430,11 @@ fi]]>
+ prefix="${build.output.name}/${user.config.folder}/" />
+
+ <zipfileset
+- file="${project.build.directory}/${build.output.name}/kura_install.sh"
+- prefix="${build.output.name}/${install.folder}/" />
+-
+- <zipfileset file="src/main/resources/${build.name}/kuranet.conf"
+- prefix="${build.output.name}/${install.folder}/" />
+-
+- <zipfileset
+ file="${project.build.directory}/${build.output.name}/kura.init.yocto"
+ prefix="${build.output.name}/${install.folder}" />
+ <zipfileset
+- file="${project.build.directory}/${build.output.name}/kura.init.raspbian"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset
+ file="${project.build.directory}/${build.output.name}/kura.service"
+ prefix="${build.output.name}/${install.folder}" />
+- <zipfileset
+- file="src/main/resources/${build.name}/recover_default_config.init"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/firewall.init"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/iptables.init"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/hostapd.conf"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/dhcpd-eth0.conf"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/dhcpd-wlan0.conf"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/dhcpd-enp2s0.conf"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/dhcpd-wlp4s0.conf"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/ifcfg-enp2s0"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/ifcfg-enp3s0"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/ifcfg-wlp4s0"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/monit.init.raspbian"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/monitrc.raspbian"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/kura-tmpfiles.conf"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/network.interfaces"
+- prefix="${build.output.name}/${install.folder}" />
+-
+-
+- <zipfileset file="src/main/resources/common/logrotate.conf"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/kura.logrotate"
+- prefix="${build.output.name}/${install.folder}" />
+-
+- <zipfileset file="src/main/resources/common/sysctl.kura.conf"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/sysctl.kura.raspbian.conf"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/patch_sysctl.sh"
+- prefix="${build.output.name}/${install.folder}" />
+-
+- <zipfileset file="src/main/resources/common/named/named.conf"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/named/named.ca"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/named/named.rfc1912.zones"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/named/usr.sbin.named"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/${build.name}/bind.init"
+- prefix="${build.output.name}/${install.folder}" />
+-
+- <zipfileset file="src/main/resources/common/ifdown-local"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/ifup-local"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/ifup-local.debian"
+- prefix="${build.output.name}/${install.folder}" />
+- <zipfileset file="src/main/resources/common/ifup-local.raspbian"
+- prefix="${build.output.name}/${install.folder}" />
+-
+- <zipfileset
+- file="${project.build.directory}/${build.output.name}/selinuxKura.pp"
+- prefix="${build.output.name}/${install.folder}" />
+
+ <zipfileset
+ file="${project.build.directory}/${build.output.name}/start_kura.sh"
+@@ -690,18 +601,6 @@ fi]]>
+
+ <echo message="Building Kura Distribution for ${build.name}-jars..." />
+
+- <!-- Create installer script -->
+- <echo message="Creating Installer for ${build.name} ${kura.install.dir}" />
+- <exec executable="${project.build.directory}/../src/main/sh/create_installer.sh">
+- <arg value="${project.build.directory}" />
+- <arg value="${build.output.name}.zip" />
+- <arg value="kura_${project.version}_${build.name}_installer.sh" />
+- <arg value="${build.name}" />
+- <arg value="${kura.install.dir}" />
+- </exec>
+-
+-
+-
+ <!-- Get version information for the bundles/files in this build -->
+ <echo
+ message="Gathering version information for the bundles/files in ${build.name}" />
+@@ -712,37 +611,6 @@ fi]]>
+ <arg value="${build.name}" />
+ </exec>
+
+-
+- <!-- Diff with the previous version -->
+- <property file="RELEASE_INFO/version.properties" />
+- <echo
+- message="Diff version information with ${build.name} version ${kura.project.version.previous}" />
+- <exec executable="src/main/sh/diff_build_versions.sh">
+- <arg
+- value="RELEASE_INFO/${kura.project.version.previous}/kura_${kura.project.version.previous}_${build.name}.catalog" />
+- <arg value="${project.build.directory}/${build.output.name}.catalog" />
+- <arg
+- value="${project.build.directory}/kura_${kura.project.version.previous}_to_${project.version}_${build.name}" />
+- <arg value="${build.name}" />
+- </exec>
+-
+-
+- <!-- Create upgrader -->
+- <echo message="Creating Upgrader for ${build.name}" />
+- <exec executable="${project.build.directory}/../src/main/sh/create_upgrader.sh">
+- <arg value="${project.build.directory}" />
+- <arg value="${project.build.directory}/${build.output.name}.zip" />
+- <arg value="kura_${project.version}_${build.name}_upgrade.zip" />
+- <arg value="KURA_${kura.project.version.previous}" />
+- <arg value="${kura.install.dir}" />
+- <arg value="${build.output.name}" />
+- <arg
+- value="kura_${kura.project.version.previous}_to_${project.version}_${build.name}.removed" />
+- <arg
+- value="kura_${kura.project.version.previous}_to_${project.version}_${build.name}.keep" />
+- <arg value="${build.output.name}_upgrader.sh" />
+- <arg value="${build.name}" />
+- </exec>
+ </target>
+
+ <target name="set-http-port" if="http.port">
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-connectivity/kura/files/Remove-default-build-profiles.patch b/external/meta-iot-cloud/recipes-connectivity/kura/files/Remove-default-build-profiles.patch
new file mode 100644
index 00000000..04ad711a
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/kura/files/Remove-default-build-profiles.patch
@@ -0,0 +1,1319 @@
+From e6c74effaa51745916c178f6a377174376dfe7eb Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Wed, 11 Mar 2020 19:16:16 +0000
+Subject: [PATCH 1/3] Remove default build profiles
+
+Signed-off-by: Scott Ware <scott.r.ware@intel.com>
+---
+ kura/distrib/pom.xml | 1296 --------------------------------------------------
+ 1 file changed, 1296 deletions(-)
+
+diff --git a/kura/distrib/pom.xml b/kura/distrib/pom.xml
+index f237c54..b016846 100644
+--- a/kura/distrib/pom.xml
++++ b/kura/distrib/pom.xml
+@@ -1001,1301 +1001,5 @@
+ </dependencies>
+
+ <profiles>
+- <profile>
+- <id>raspberry-pi-2-3</id>
+- <properties>
+- <project.raspbian.dependencies>hostapd, isc-dhcp-server, iw, dos2unix, bind9, unzip, ethtool, telnet, bluez-hcidump,
+- wireless-tools, java8-runtime-headless | java8-runtime</project.raspbian.dependencies>
+- </properties>
+- <activation>
+- <activeByDefault>true</activeByDefault>
+- </activation>
+- <build>
+- <resources>
+- <resource>
+- <directory>src/main/resources</directory>
+- <filtering>true</filtering>
+- </resource>
+- </resources>
+- <plugins>
+- <plugin>
+- <groupId>org.codehaus.mojo</groupId>
+- <artifactId>buildnumber-maven-plugin</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <phase>validate</phase>
+- <goals>
+- <goal>create-timestamp</goal>
+- </goals>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-antrun-plugin</artifactId>
+- <version>1.7</version>
+- <executions>
+- <execution>
+- <id>raspberry-pi-2-3-jars</id>
+- <phase>prepare-package</phase>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <configuration>
+- <target>
+- <property name="buildNumber" value="buildNumber" />
+- <property name="project.version" value="${project.version}" />
+- <property name="project.build.profile" value="${project.build.profile}" />
+- <property name="project.build.directory" value="${project.build.directory}" />
+- <property name="build.name" value="raspberry-pi-2" />
+- <property name="target.device" value="raspberry-pi-2" />
+- <property name="native.tag" value="armv6hf" />
+- <property name="kura.os.version" value="raspbian" />
+- <property name="kura.arch" value="armv7_hf" />
+- <property name="service.manager" value="sysv" />
+- <property name="os.base" value="debian" />
+- <property name="kura.mem.size" value="512m" />
+- <property name="kura.install.dir" value="/opt/eclipse" />
+- <ant antfile="${basedir}/src/main/ant/build_equinox_distrib.xml" target="dist-linux" />
+- </target>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.vafer</groupId>
+- <artifactId>jdeb</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <id>raspberry-pi-2-3-deb</id>
+- <phase>package</phase>
+- <goals>
+- <goal>jdeb</goal>
+- </goals>
+- <configuration>
+- <verbose>true</verbose>
+- <deb>${basedir}/target/kura_${project.version}_raspberry-pi-2-3_installer.deb</deb>
+- <controlDir>${basedir}/src/main/deb/control</controlDir>
+- <dataSet>
+- <data>
+- <src>${basedir}/target/kura_${project.version}_raspberry-pi-2.zip</src>
+- <type>file</type>
+- <mapper>
+- <type>perm</type>
+- <prefix>/tmp</prefix>
+- </mapper>
+- </data>
+- </dataSet>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- </plugins>
+- </build>
+- </profile>
+-
+- <profile>
+- <id>raspberry-pi-2-3-nn</id>
+- <properties>
+- <project.raspbian.dependencies.nn>dos2unix, unzip, telnet, bluez-hcidump, java8-runtime-headless | java8-runtime</project.raspbian.dependencies.nn>
+- </properties>
+- <activation>
+- <activeByDefault>true</activeByDefault>
+- </activation>
+- <build>
+- <resources>
+- <resource>
+- <directory>src/main/resources</directory>
+- <filtering>true</filtering>
+- </resource>
+- </resources>
+- <plugins>
+- <plugin>
+- <groupId>org.codehaus.mojo</groupId>
+- <artifactId>buildnumber-maven-plugin</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <phase>validate</phase>
+- <goals>
+- <goal>create-timestamp</goal>
+- </goals>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-antrun-plugin</artifactId>
+- <version>1.7</version>
+- <executions>
+- <execution>
+- <id>raspberry-pi-2-3-nn-jars</id>
+- <phase>prepare-package</phase>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <configuration>
+- <target>
+- <property name="buildNumber" value="buildNumber" />
+- <property name="project.version" value="${project.version}" />
+- <property name="project.build.profile" value="${project.build.profile}" />
+- <property name="project.build.directory" value="${project.build.directory}" />
+- <property name="build.name" value="raspberry-pi-2-nn" />
+- <property name="target.device" value="raspberry-pi-2-nn" />
+- <property name="native.tag" value="armv6hf" />
+- <property name="kura.os.version" value="raspbian" />
+- <property name="kura.arch" value="armv7_hf" />
+- <property name="service.manager" value="sysv" />
+- <property name="os.base" value="debian" />
+- <property name="kura.mem.size" value="512m" />
+- <property name="kura.install.dir" value="/opt/eclipse" />
+- <ant antfile="${basedir}/src/main/ant/build_equinox_distrib.xml" target="dist-linux" />
+- </target>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.vafer</groupId>
+- <artifactId>jdeb</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <id>raspberry-pi-2-3-nn-deb</id>
+- <phase>package</phase>
+- <goals>
+- <goal>jdeb</goal>
+- </goals>
+- <configuration>
+- <verbose>true</verbose>
+- <deb>${basedir}/target/kura_${project.version}_raspberry-pi-2-3-nn_installer.deb</deb>
+- <controlDir>${basedir}/src/main/deb/control_nn</controlDir>
+- <dataSet>
+- <data>
+- <src>${basedir}/target/kura_${project.version}_raspberry-pi-2-nn.zip</src>
+- <type>file</type>
+- <mapper>
+- <type>perm</type>
+- <prefix>/tmp</prefix>
+- </mapper>
+- </data>
+- </dataSet>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- </plugins>
+- </build>
+- </profile>
+- <profile>
+- <id>intel-up2-ubuntu-18</id>
+- <properties>
+- <project.raspbian.dependencies>hostapd, isc-dhcp-server, iw, dos2unix, bind9, unzip, ethtool, telnet, bluez-hcidump,
+- wireless-tools, java8-runtime-headless | java8-runtime</project.raspbian.dependencies>
+- </properties>
+- <activation>
+- <activeByDefault>true</activeByDefault>
+- </activation>
+- <build>
+- <resources>
+- <resource>
+- <directory>src/main/resources</directory>
+- <filtering>true</filtering>
+- </resource>
+- </resources>
+- <plugins>
+- <plugin>
+- <groupId>org.codehaus.mojo</groupId>
+- <artifactId>buildnumber-maven-plugin</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <phase>validate</phase>
+- <goals>
+- <goal>create-timestamp</goal>
+- </goals>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-antrun-plugin</artifactId>
+- <version>1.7</version>
+- <executions>
+- <execution>
+- <id>intel-up2-ubuntu-jars</id>
+- <phase>prepare-package</phase>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <configuration>
+- <target>
+- <property name="buildNumber" value="buildNumber" />
+- <property name="project.version" value="${project.version}" />
+- <property name="project.build.profile" value="${project.build.profile}" />
+- <property name="project.build.directory" value="${project.build.directory}" />
+- <property name="build.name" value="intel-up2-ubuntu-18" />
+- <property name="target.device" value="intel-up2" />
+- <property name="native.tag" value="x86_64" />
+- <property name="kura.os.version" value="ubuntu" />
+- <property name="kura.arch" value="intel-up2-ubuntu-18" />
+- <property name="service.manager" value="sysv" />
+- <property name="os.base" value="debian" />
+- <property name="kura.mem.size" value="1024m" />
+- <property name="kura.install.dir" value="/opt/eclipse" />
+- <ant antfile="${basedir}/src/main/ant/build_equinox_distrib.xml" target="dist-linux" />
+- </target>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.vafer</groupId>
+- <artifactId>jdeb</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <id>intel-up2-ubuntu-deb</id>
+- <phase>package</phase>
+- <goals>
+- <goal>jdeb</goal>
+- </goals>
+- <configuration>
+- <verbose>true</verbose>
+- <deb>${basedir}/target/kura_${project.version}_intel-up2-ubuntu-18_installer.deb</deb>
+- <controlDir>${basedir}/src/main/deb/control</controlDir>
+- <dataSet>
+- <data>
+- <src>${basedir}/target/kura_${project.version}_intel-up2-ubuntu-18.zip</src>
+- <type>file</type>
+- <mapper>
+- <type>perm</type>
+- <prefix>/tmp</prefix>
+- </mapper>
+- </data>
+- </dataSet>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- </plugins>
+- </build>
+- </profile>
+-
+- <profile>
+- <id>intel-up2-centos-7</id>
+- <activation>
+- <activeByDefault>true</activeByDefault>
+- </activation>
+- <build>
+- <resources>
+- <resource>
+- <directory>src/main/resources</directory>
+- <filtering>true</filtering>
+- </resource>
+- </resources>
+- <plugins>
+- <plugin>
+- <groupId>org.codehaus.mojo</groupId>
+- <artifactId>buildnumber-maven-plugin</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <phase>validate</phase>
+- <goals>
+- <goal>create-timestamp</goal>
+- </goals>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-antrun-plugin</artifactId>
+- <version>1.7</version>
+- <executions>
+- <execution>
+- <id>intel-up2-centos-7-jars</id>
+- <phase>prepare-package</phase>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <configuration>
+- <target>
+- <property name="buildNumber" value="buildNumber" />
+- <property name="project.version" value="${project.version}" />
+- <property name="project.build.profile" value="${project.build.profile}" />
+- <property name="project.build.directory" value="${project.build.directory}" />
+- <property name="build.name" value="intel-up2-centos-7" />
+- <property name="target.device" value="intel-up2" />
+- <property name="native.tag" value="x86_64" />
+- <property name="kura.os.version" value="centos" />
+- <property name="kura.arch" value="intel-up2-centos-7" />
+- <property name="service.manager" value="systemd" />
+- <property name="os.base" value="redhat" />
+- <property name="kura.mem.size" value="1024m" />
+- <property name="kura.install.dir" value="/opt/eclipse" />
+- <ant antfile="${basedir}/src/main/ant/build_equinox_distrib.xml" target="dist-linux" />
+- </target>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>de.dentrassi.maven</groupId>
+- <artifactId>rpm</artifactId>
+- <executions>
+- <execution>
+- <id>intel-up2-centos-7-rpm</id>
+- <phase>package</phase>
+- <goals>
+- <goal>rpm</goal>
+- </goals>
+- <configuration>
+- <packageName>kura-intel-up2-centos-7</packageName>
+- <attach>true</attach>
+- <group>Application/Misc</group>
+- <license>EPL 1.0</license>
+- <architecture>x86_64</architecture>
+- <prerequisites>
+- <prerequisite>bash</prerequisite>
+- <prerequisite>sed</prerequisite>
+- <prerequisite>which</prerequisite>
+- <prerequisite>policycoreutils</prerequisite>
+- </prerequisites>
+- <requires>
+- <require>java</require>
+- <require>setserial</require>
+- <require>iptables</require>
+- <require>iptables-services</require>
+- <require>openssl</require>
+- <require>openssh</require>
+- <require>procps</require>
+- <require>iw</require>
+- <require>wireless-tools</require>
+- <require>bind</require>
+- <require>openvpn</require>
+- <require>ppp</require>
+- <require>dhcp</require>
+- <require>dhclient</require>
+- <require>net-tools</require>
+- <require>hostapd</require>
+- <require>wpa_supplicant</require>
+- <require>gzip</require>
+- <require>cronie</require>
+- <require>logrotate</require>
+- <require>telnet</require>
+- <require>bluez</require>
+- <require>socat</require>
+- <require>usbutils</require>
+- <require>iproute</require>
+- <require>unzip</require>
+- <require>psmisc</require>
+- <require>tar</require>
+- <require>dos2unix</require>
+- <require>net-tools</require>
+- </requires>
+- <entries>
+- <entry>
+- <name>/tmp/kura_${project.version}_installer.sh</name>
+- <file>${project.build.directory}/kura_${project.version}_intel-up2-centos-7_installer.sh</file>
+- <user>root</user>
+- <group>root</group>
+- <mode>0755</mode>
+- </entry>
+- </entries>
+- <afterInstallation>
+- <script>/tmp/kura_${project.version}_installer.sh</script>
+- </afterInstallation>
+- <beforeRemoval>
+- <script>
+- systemctl stop kura
+- systemctl disable kura
+- rm -f /usr/lib/systemd/system/kura.service
+- systemctl daemon-reload
+- systemctl reset-failed
+-
+- rm -f /etc/logrotate.d/kura
+- rm -f /var/log/kura*.log
+- rm -rf /tmp/.kura
+- rm -rf /tmp/kura
+-
+- if [ -d "${kura.install.link}" ] ; then
+- PARENT=`readlink -f ${kura.install.link}`
+- rm -rf ${kura.install.link}
+- rm -rf $PARENT
+- fi
+- </script>
+- </beforeRemoval>
+- <skipSigning>true</skipSigning>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- </plugins>
+- </build>
+- </profile>
+-
+- <profile>
+- <id>intel-up2-centos-7-nn</id>
+- <activation>
+- <activeByDefault>true</activeByDefault>
+- </activation>
+- <build>
+- <resources>
+- <resource>
+- <directory>src/main/resources</directory>
+- <filtering>true</filtering>
+- </resource>
+- </resources>
+- <plugins>
+- <plugin>
+- <groupId>org.codehaus.mojo</groupId>
+- <artifactId>buildnumber-maven-plugin</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <phase>validate</phase>
+- <goals>
+- <goal>create-timestamp</goal>
+- </goals>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-antrun-plugin</artifactId>
+- <version>1.7</version>
+- <executions>
+- <execution>
+- <id>intel-up2-centos-7-nn-jars</id>
+- <phase>prepare-package</phase>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <configuration>
+- <target>
+- <property name="buildNumber" value="buildNumber" />
+- <property name="project.version" value="${project.version}" />
+- <property name="project.build.profile" value="${project.build.profile}" />
+- <property name="project.build.directory" value="${project.build.directory}" />
+- <property name="build.name" value="intel-up2-centos-7-nn" />
+- <property name="target.device" value="intel-up2-nn" />
+- <property name="native.tag" value="x86_64" />
+- <property name="kura.os.version" value="centos" />
+- <property name="kura.arch" value="intel-up2-centos-7" />
+- <property name="service.manager" value="systemd" />
+- <property name="os.base" value="redhat" />
+- <property name="kura.mem.size" value="1024m" />
+- <property name="kura.install.dir" value="/opt/eclipse" />
+- <ant antfile="${basedir}/src/main/ant/build_equinox_distrib.xml" target="dist-linux" />
+- </target>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>de.dentrassi.maven</groupId>
+- <artifactId>rpm</artifactId>
+- <executions>
+- <execution>
+- <id>intel-up2-centos-7-nn-rpm</id>
+- <phase>package</phase>
+- <goals>
+- <goal>rpm</goal>
+- </goals>
+- <configuration>
+- <packageName>kura-intel-up2-centos-7-nn</packageName>
+- <attach>true</attach>
+- <group>Application/Misc</group>
+- <license>EPL 1.0</license>
+- <architecture>x86_64</architecture>
+- <prerequisites>
+- <prerequisite>bash</prerequisite>
+- <prerequisite>sed</prerequisite>
+- <prerequisite>which</prerequisite>
+- </prerequisites>
+- <requires>
+- <require>java</require>
+- <require>setserial</require>
+- <require>iptables</require>
+- <require>iptables-services</require>
+- <require>openssl</require>
+- <require>openssh</require>
+- <require>procps</require>
+- <require>gzip</require>
+- <require>cronie</require>
+- <require>logrotate</require>
+- <require>telnet</require>
+- <require>bluez</require>
+- <require>socat</require>
+- <require>usbutils</require>
+- <require>unzip</require>
+- <require>psmisc</require>
+- <require>tar</require>
+- <require>dos2unix</require>
+- <require>net-tools</require>
+- </requires>
+- <entries>
+- <entry>
+- <name>/tmp/kura_${project.version}_installer.sh</name>
+- <file>${project.build.directory}/kura_${project.version}_intel-up2-centos-7-nn_installer.sh</file>
+- <user>root</user>
+- <group>root</group>
+- <mode>0755</mode>
+- </entry>
+- </entries>
+- <afterInstallation>
+- <script>/tmp/kura_${project.version}_installer.sh</script>
+- </afterInstallation>
+- <beforeRemoval>
+- <script>
+- systemctl stop kura
+- systemctl disable kura
+- rm -f /usr/lib/systemd/system/kura.service
+- systemctl daemon-reload
+- systemctl reset-failed
+-
+- rm -f /etc/logrotate.d/kura
+- rm -f /var/log/kura*.log
+- rm -rf /tmp/.kura
+- rm -rf /tmp/kura
+-
+- if [ -d "${kura.install.link}" ] ; then
+- PARENT=`readlink -f ${kura.install.link}`
+- rm -rf ${kura.install.link}
+- rm -rf $PARENT
+- fi
+- </script>
+- </beforeRemoval>
+- <skipSigning>true</skipSigning>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- </plugins>
+- </build>
+- </profile>
+-
+- <profile>
+- <id>rock960-ubuntu-16-nn</id>
+- <properties>
+- <project.raspbian.dependencies.nn>dos2unix, unzip, telnet, bluez-hcidump, java8-runtime-headless | java8-runtime</project.raspbian.dependencies.nn>
+- </properties>
+- <activation>
+- <activeByDefault>true</activeByDefault>
+- </activation>
+- <build>
+- <resources>
+- <resource>
+- <directory>src/main/resources</directory>
+- <filtering>true</filtering>
+- </resource>
+- </resources>
+- <plugins>
+- <plugin>
+- <groupId>org.codehaus.mojo</groupId>
+- <artifactId>buildnumber-maven-plugin</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <phase>validate</phase>
+- <goals>
+- <goal>create-timestamp</goal>
+- </goals>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-antrun-plugin</artifactId>
+- <version>1.7</version>
+- <executions>
+- <execution>
+- <id>rock960-ubuntu-16-nn-jars</id>
+- <phase>prepare-package</phase>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <configuration>
+- <target>
+- <property name="buildNumber" value="buildNumber" />
+- <property name="project.version" value="${project.version}" />
+- <property name="project.build.profile" value="${project.build.profile}" />
+- <property name="project.build.directory" value="${project.build.directory}" />
+- <property name="build.name" value="rock960-ubuntu-16-nn" />
+- <property name="target.device" value="rock960-ubuntu-16-nn" />
+- <property name="native.tag" value="aarch64" />
+- <property name="kura.os.version" value="ubuntu" />
+- <property name="kura.arch" value="rock960-ubuntu-16-nn" />
+- <property name="service.manager" value="sysv" />
+- <property name="os.base" value="debian" />
+- <property name="kura.mem.size" value="1024m" />
+- <property name="kura.install.dir" value="/opt/eclipse" />
+- <ant antfile="${basedir}/src/main/ant/build_equinox_distrib.xml" target="dist-linux" />
+- </target>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.vafer</groupId>
+- <artifactId>jdeb</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <id>rock960-ubuntu-16-nn-deb</id>
+- <phase>package</phase>
+- <goals>
+- <goal>jdeb</goal>
+- </goals>
+- <configuration>
+- <verbose>true</verbose>
+- <deb>${basedir}/target/kura_${project.version}_rock960-ubuntu-16-nn_installer.deb</deb>
+- <controlDir>${basedir}/src/main/deb/control_nn</controlDir>
+- <dataSet>
+- <data>
+- <src>${basedir}/target/kura_${project.version}_rock960-ubuntu-16-nn.zip</src>
+- <type>file</type>
+- <mapper>
+- <type>perm</type>
+- <prefix>/tmp</prefix>
+- </mapper>
+- </data>
+- </dataSet>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- </plugins>
+- </build>
+- </profile>
+-
+- <profile>
+- <id>dev-env</id>
+- <activation>
+- <activeByDefault>true</activeByDefault>
+- </activation>
+- <build>
+- <resources>
+- <resource>
+- <directory>src/main/resources</directory>
+- <filtering>true</filtering>
+- </resource>
+- </resources>
+- <plugins>
+- <plugin>
+- <groupId>org.codehaus.mojo</groupId>
+- <artifactId>buildnumber-maven-plugin</artifactId>
+- <version>1.0</version>
+- <executions>
+- <execution>
+- <phase>validate</phase>
+- <goals>
+- <goal>create-timestamp</goal>
+- </goals>
+- </execution>
+- </executions>
+- </plugin>
+- <plugin>
+- <groupId>org.eclipse.tycho.extras</groupId>
+- <artifactId>tycho-p2-extras-plugin</artifactId>
+- <version>${tycho-version}</version>
+- <executions>
+- <execution>
+- <phase>package</phase>
+- <goals>
+- <goal>publish-features-and-bundles</goal>
+- </goals>
+- </execution>
+- </executions>
+- <configuration>
+- <compress>false</compress>
+- <sourceLocation>${project.build.directory}/staging/target-definition/equinox_3.12.50/repository</sourceLocation>
+- <artifactRepositoryLocation>${project.build.directory}/staging/target-definition/equinox_3.12.50/repository</artifactRepositoryLocation>
+- <metadataRepositoryLocation>${project.build.directory}/staging/target-definition/equinox_3.12.50/repository</metadataRepositoryLocation>
+- </configuration>
+- </plugin>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-antrun-plugin</artifactId>
+- <version>1.7</version>
+- <executions>
+- <execution>
+- <id>prep-tp</id>
+- <phase>prepare-package</phase>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <configuration>
+- <target>
+- <!-- Kura User Workspace -->
+- <echo message="Preparing target platform..." />
+-
+- <!-- Copy the mtoolkit plugin to the target directory -->
+- <copy
+- file="src/main/resources/common/org.tigris.mtoolkit.sdk-3.1.8-20110411-0918.zip"
+- todir="${project.build.directory}" />
+-
+- <!-- Add the deployment agent and core packages to the target platform
+- which is required for the emulator -->
+- <copy todir="${project.build.directory}/staging/target-definition">
+- <fileset dir="../target-definition" />
+- </copy>
+- <!-- Add individual emulator bundles-->
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.emulator.clock_${org.eclipse.kura.emulator.clock.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.emulator.gpio_${org.eclipse.kura.emulator.gpio.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.emulator.net_${org.eclipse.kura.emulator.net.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.emulator.position_${org.eclipse.kura.emulator.position.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.emulator.usb_${org.eclipse.kura.emulator.usb.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.emulator.watchdog_${org.eclipse.kura.emulator.watchdog.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+-
+- <delete file="${project.build.directory}/staging/target-definition/pom.xml" />
+- <delete dir="${project.build.directory}/staging/target-definition/common/source" />
+- <delete
+- file="${project.build.directory}/staging/target-definition/kura-equinox_3.12.50.target" />
+- <delete
+- dir="${project.build.directory}/staging/target-definition/equinox_3.12.50/source" />
+- <delete
+- file="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/artifacts.xml" />
+- <delete
+- file="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/content.xml" />
+- <delete dir="${project.build.directory}/staging/target-definition/target" />
+-
+- <copy overwrite="true"
+- file="src/main/resources/common/projects/target_definition.project" tofile="${project.build.directory}/staging/target-definition/.project" />
+- <copy file="src/main/resources/common/kura-equinox_3.12.50.target" todir="${project.build.directory}/staging/target-definition" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.api_${org.eclipse.kura.api.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.camel_${org.eclipse.kura.camel.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.camel.cloud.factory_${org.eclipse.kura.camel.cloud.factory.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.camel.xml_${org.eclipse.kura.camel.xml.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.core_${org.eclipse.kura.core.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.core.certificates_${org.eclipse.kura.core.certificates.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.core.cloud_${org.eclipse.kura.core.cloud.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.core.comm_${org.eclipse.kura.core.comm.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.core.configuration_${org.eclipse.kura.core.configuration.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.core.crypto_${org.eclipse.kura.core.crypto.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.core.deployment_${org.eclipse.kura.core.deployment.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.core.net_${org.eclipse.kura.core.net.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.deployment.agent_${org.eclipse.kura.deployment.agent.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.core.status_${org.eclipse.kura.core.status.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.linux.bluetooth_${org.eclipse.kura.linux.bluetooth.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.ble.provider_${org.eclipse.kura.ble.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.ble.ibeacon.provider_${org.eclipse.kura.ble.ibeacon.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.ble.eddystone.provider_${org.eclipse.kura.ble.eddystone.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.asset.provider_${org.eclipse.kura.asset.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.asset.cloudlet.provider_${org.eclipse.kura.asset.cloudlet.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.asset.helper.provider_${org.eclipse.kura.asset.helper.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.driver.helper.provider_${org.eclipse.kura.driver.helper.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.localization_${org.eclipse.kura.localization.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.localization.resources_${org.eclipse.kura.localization.resources.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.util_${org.eclipse.kura.util.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.wire.camel_${org.eclipse.kura.wire.camel.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.11.1/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.wire.component.provider_${org.eclipse.kura.wire.component.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.wire.h2db.component.provider_${org.eclipse.kura.wire.h2db.component.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.wire.helper.provider_${org.eclipse.kura.wire.helper.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.wire.provider_${org.eclipse.kura.wire.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.web2_${org.eclipse.kura.web2.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins"
+- failonerror="false" />
+- <!-- Add REST bundles-->
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.rest.provider_${org.eclipse.kura.rest.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.rest.asset.provider_${org.eclipse.kura.rest.asset.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <!-- Add Artemis bundles-->
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.broker.artemis.core_${org.eclipse.kura.broker.artemis.core.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.broker.artemis.simple.mqtt_${org.eclipse.kura.broker.artemis.simple.mqtt.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.broker.artemis.xml_${org.eclipse.kura.broker.artemis.xml.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+-
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.wire.component.conditional.provider_${org.eclipse.kura.wire.component.conditional.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.wire.component.join.provider_${org.eclipse.kura.wire.component.join.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+-
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.json.marshaller.unmarshaller.provider_${org.eclipse.kura.json.marshaller.unmarshaller.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.xml.marshaller.unmarshaller.provider_${org.eclipse.kura.xml.marshaller.unmarshaller.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+-
+- <copy
+- file="${project.build.directory}/plugins/org.eclipse.kura.cloudconnection.eclipseiot.mqtt.provider_${org.eclipse.kura.cloudconnection.eclipseiot.mqtt.provider.version}.jar"
+- todir="${project.build.directory}/staging/target-definition/equinox_3.12.50/repository/plugins" />
+- </target>
+- </configuration>
+- </execution>
+- <execution>
+- <id>dev-env</id>
+- <phase>package</phase>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <configuration>
+- <target>
+- <!-- Stage the emulator -->
+- <copy todir="${project.build.directory}/staging/emulator">
+- <fileset dir="../emulator/org.eclipse.kura.emulator" />
+- </copy>
+- <delete file="${project.build.directory}/staging/emulator/pom.xml" />
+- <delete dir="${project.build.directory}/staging/emulator/bin" />
+- <delete dir="${project.build.directory}/staging/emulator/target" />
+- <delete file="${project.build.directory}/staging/emulator/emulator-assembly.xml" />
+- <delete
+- file="${project.build.directory}/staging/emulator/src/main/resources/Kura_Core_Test.launch" />
+- <delete
+- file="${project.build.directory}/staging/emulator/src/main/resources/Kura_Emulator_Linux.launch" />
+- <delete
+- file="${project.build.directory}/staging/emulator/src/main/resources/Kura_Emulator_OSX.launch" />
+- <copy file="RELEASE_NOTES.txt" todir="${project.build.directory}/staging/emulator/src/main/resources" />
+- <mkdir dir="${project.build.directory}/staging/emulator/launch_configs"/>
+- <copy file="src/main/resources/common/Kura_Emulator_Linux.launch" todir="${project.build.directory}/staging/emulator/launch_configs" />
+- <copy file="src/main/resources/common/Kura_Emulator_OSX.launch" todir="${project.build.directory}/staging/emulator/launch_configs" />
+- <copy file="src/main/resources/common/classpaths/emulator.classpath"
+- tofile="${project.build.directory}/staging/emulator/emulator.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/emulator.project"
+- tofile="${project.build.directory}/staging/emulator/.project" />
+- <replace
+- file="${project.build.directory}/staging/emulator/src/main/resources/kura.properties"
+- token="kura.version=kura_emulator" value="kura.version=KURA_${kura.version}" />
+- <move file="${project.build.directory}/staging/emulator/emulator.classpath"
+- tofile="${project.build.directory}/staging/emulator/.classpath" />
+-
+- <!-- Stage the Demo Heater Project -->
+- <copy todir="${project.build.directory}/staging/demo_heater">
+- <fileset dir="../examples/org.eclipse.kura.demo.heater" />
+- </copy>
+- <delete file="${project.build.directory}/staging/demo_heater/pom.xml" />
+- <delete dir="${project.build.directory}/staging/demo_heater/bin" />
+- <delete dir="${project.build.directory}/staging/demo_heater/target" />
+- <copy file="src/main/resources/common/classpaths/demo_heater.classpath"
+- tofile="${project.build.directory}/staging/demo_heater/demo_heater.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/demo_heater.project"
+- tofile="${project.build.directory}/staging/demo_heater/.project" />
+- <move file="${project.build.directory}/staging/demo_heater/demo_heater.classpath"
+- tofile="${project.build.directory}/staging/demo_heater/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.beacon Project -->
+- <copy todir="${project.build.directory}/staging/beacon">
+- <fileset dir="../examples/org.eclipse.kura.example.beacon" />
+- </copy>
+- <delete file="${project.build.directory}/staging/beacon/pom.xml" />
+- <delete dir="${project.build.directory}/staging/beacon/bin" />
+- <delete dir="${project.build.directory}/staging/beacon/target" />
+- <copy file="src/main/resources/common/classpaths/beacon.classpath" tofile="${project.build.directory}/staging/beacon/beacon.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/beacon.project"
+- tofile="${project.build.directory}/staging/beacon/.project" />
+- <move file="${project.build.directory}/staging/beacon/beacon.classpath"
+- tofile="${project.build.directory}/staging/beacon/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.beacon.scanner Project -->
+- <copy todir="${project.build.directory}/staging/beacon.scanner">
+- <fileset dir="../examples/org.eclipse.kura.example.beacon.scanner" />
+- </copy>
+- <delete file="${project.build.directory}/staging/beacon.scanner/pom.xml" />
+- <delete dir="${project.build.directory}/staging/beacon.scanner/bin" />
+- <delete dir="${project.build.directory}/staging/beacon.scanner/target" />
+- <copy file="src/main/resources/common/classpaths/beacon.scanner.classpath" tofile="${project.build.directory}/staging/beacon.scanner/beacon.scanner.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/beacon.scanner.project"
+- tofile="${project.build.directory}/staging/beacon.scanner/.project" />
+- <move file="${project.build.directory}/staging/beacon.scanner/beacon.scanner.classpath"
+- tofile="${project.build.directory}/staging/beacon.scanner/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.ibeacon.advertiser Project -->
+- <copy todir="${project.build.directory}/staging/ibeacon.advertiser">
+- <fileset dir="../examples/org.eclipse.kura.example.ibeacon.advertiser" />
+- </copy>
+- <delete file="${project.build.directory}/staging/ibeacon.advertiser/pom.xml" />
+- <delete dir="${project.build.directory}/staging/ibeacon.advertiser/bin" />
+- <delete dir="${project.build.directory}/staging/ibeacon.advertiser/target" />
+- <copy file="src/main/resources/common/classpaths/ibeacon.advertiser.classpath" tofile="${project.build.directory}/staging/ibeacon.advertiser/ibeacon.advertiser.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/ibeacon.advertiser.project"
+- tofile="${project.build.directory}/staging/ibeacon.advertiser/.project" />
+- <move file="${project.build.directory}/staging/ibeacon.advertiser/ibeacon.advertiser.classpath"
+- tofile="${project.build.directory}/staging/ibeacon.advertiser/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.ibeacon.scanner Project -->
+- <copy todir="${project.build.directory}/staging/ibeacon.scanner">
+- <fileset dir="../examples/org.eclipse.kura.example.ibeacon.scanner" />
+- </copy>
+- <delete file="${project.build.directory}/staging/ibeacon.scanner/pom.xml" />
+- <delete dir="${project.build.directory}/staging/ibeacon.scanner/bin" />
+- <delete dir="${project.build.directory}/staging/ibeacon.scanner/target" />
+- <copy file="src/main/resources/common/classpaths/ibeacon.scanner.classpath" tofile="${project.build.directory}/staging/ibeacon.scanner/ibeacon.scanner.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/ibeacon.scanner.project"
+- tofile="${project.build.directory}/staging/ibeacon.scanner/.project" />
+- <move file="${project.build.directory}/staging/ibeacon.scanner/ibeacon.scanner.classpath"
+- tofile="${project.build.directory}/staging/ibeacon.scanner/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.eddystone.advertiser Project -->
+- <copy todir="${project.build.directory}/staging/eddystone.advertiser">
+- <fileset dir="../examples/org.eclipse.kura.example.eddystone.advertiser" />
+- </copy>
+- <delete file="${project.build.directory}/staging/eddystone.advertiser/pom.xml" />
+- <delete dir="${project.build.directory}/staging/eddystone.advertiser/bin" />
+- <delete dir="${project.build.directory}/staging/eddystone.advertiser/target" />
+- <copy file="src/main/resources/common/classpaths/eddystone.advertiser.classpath" tofile="${project.build.directory}/staging/eddystone.advertiser/eddystone.advertiser.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/eddystone.advertiser.project"
+- tofile="${project.build.directory}/staging/eddystone.advertiser/.project" />
+- <move file="${project.build.directory}/staging/eddystone.advertiser/eddystone.advertiser.classpath"
+- tofile="${project.build.directory}/staging/eddystone.advertiser/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.eddystone.scanner Project -->
+- <copy todir="${project.build.directory}/staging/eddystone.scanner">
+- <fileset dir="../examples/org.eclipse.kura.example.eddystone.scanner" />
+- </copy>
+- <delete file="${project.build.directory}/staging/eddystone.scanner/pom.xml" />
+- <delete dir="${project.build.directory}/staging/eddystone.scanner/bin" />
+- <delete dir="${project.build.directory}/staging/eddystone.scanner/target" />
+- <copy file="src/main/resources/common/classpaths/eddystone.scanner.classpath" tofile="${project.build.directory}/staging/eddystone.scanner/eddystone.scanner.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/eddystone.scanner.project"
+- tofile="${project.build.directory}/staging/eddystone.scanner/.project" />
+- <move file="${project.build.directory}/staging/eddystone.scanner/eddystone.scanner.classpath"
+- tofile="${project.build.directory}/staging/eddystone.scanner/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.ble.tisensortag Project -->
+- <copy todir="${project.build.directory}/staging/tisensortag">
+- <fileset dir="../examples/org.eclipse.kura.example.ble.tisensortag" />
+- </copy>
+- <delete file="${project.build.directory}/staging/tisensortag/pom.xml" />
+- <delete dir="${project.build.directory}/staging/tisensortag/bin" />
+- <delete dir="${project.build.directory}/staging/tisensortag/target" />
+- <copy file="src/main/resources/common/classpaths/tisensortag.classpath"
+- tofile="${project.build.directory}/staging/tisensortag/tisensortag.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/tisensortag.project"
+- tofile="${project.build.directory}/staging/tisensortag/.project" />
+- <move file="${project.build.directory}/staging/tisensortag/tisensortag.classpath"
+- tofile="${project.build.directory}/staging/tisensortag/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.ble.tisensortag.tinyb Project -->
+- <copy todir="${project.build.directory}/staging/tisensortag.tinyb">
+- <fileset dir="../examples/org.eclipse.kura.example.ble.tisensortag.tinyb" />
+- </copy>
+- <delete file="${project.build.directory}/staging/tisensortag.tinyb/pom.xml" />
+- <delete dir="${project.build.directory}/staging/tisensortag.tinyb/bin" />
+- <delete dir="${project.build.directory}/staging/tisensortag.tinyb/target" />
+- <copy file="src/main/resources/common/classpaths/tisensortag.tinyb.classpath"
+- tofile="${project.build.directory}/staging/tisensortag.tinyb/tisensortag.tinyb.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/tisensortag.tinyb.project"
+- tofile="${project.build.directory}/staging/tisensortag.tinyb/.project" />
+- <move file="${project.build.directory}/staging/tisensortag.tinyb/tisensortag.tinyb.classpath"
+- tofile="${project.build.directory}/staging/tisensortag.tinyb/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.publisher Project -->
+- <copy todir="${project.build.directory}/staging/publisher">
+- <fileset dir="../examples/org.eclipse.kura.example.publisher" />
+- </copy>
+- <delete file="${project.build.directory}/staging/publisher/pom.xml" />
+- <delete dir="${project.build.directory}/staging/publisher/bin" />
+- <delete dir="${project.build.directory}/staging/publisher/target" />
+- <copy file="src/main/resources/common/classpaths/publisher.classpath"
+- tofile="${project.build.directory}/staging/publisher/publisher.classpath" />
+- <copy overwrite="true" file="src/main/resources/common/projects/publisher.project"
+- tofile="${project.build.directory}/staging/publisher/.project" />
+- <move file="${project.build.directory}/staging/publisher/publisher.classpath"
+- tofile="${project.build.directory}/staging/publisher/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.camel.quickstart Project -->
+- <copy todir="${project.build.directory}/staging/camel_quickstart">
+- <fileset dir="../examples/org.eclipse.kura.example.camel.quickstart" />
+- </copy>
+- <delete file="${project.build.directory}/staging/camel_quickstart/pom.xml" />
+- <delete dir="${project.build.directory}/staging/camel_quickstart/bin" />
+- <delete dir="${project.build.directory}/staging/camel_quickstart/target" />
+- <copy file="src/main/resources/common/classpaths/camel_quickstart.classpath"
+- tofile="${project.build.directory}/staging/camel_quickstart/camel_quickstart.classpath" />
+- <copy overwrite="true"
+- file="src/main/resources/common/projects/camel_quickstart.project" tofile="${project.build.directory}/staging/camel_quickstart/.project" />
+- <move
+- file="${project.build.directory}/staging/camel_quickstart/camel_quickstart.classpath"
+- tofile="${project.build.directory}/staging/camel_quickstart/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.camel.publisher Project -->
+- <copy todir="${project.build.directory}/staging/camel_publisher">
+- <fileset dir="../examples/org.eclipse.kura.example.camel.publisher" />
+- </copy>
+- <delete file="${project.build.directory}/staging/camel_publisher/pom.xml" />
+- <delete dir="${project.build.directory}/staging/camel_publisher/bin" />
+- <delete dir="${project.build.directory}/staging/camel_publisher/target" />
+- <copy file="src/main/resources/common/classpaths/camel_publisher.classpath"
+- tofile="${project.build.directory}/staging/camel_publisher/camel_publisher.classpath" />
+- <copy overwrite="true"
+- file="src/main/resources/common/projects/camel_publisher.project" tofile="${project.build.directory}/staging/camel_publisher/.project" />
+- <move
+- file="${project.build.directory}/staging/camel_publisher/camel_publisher.classpath"
+- tofile="${project.build.directory}/staging/camel_publisher/.classpath" />
+-
+- <!-- Stage the org.eclipse.kura.example.camel.aggregation Project -->
+- <copy todir="${project.build.directory}/staging/camel_aggregation">
+- <fileset dir="../examples/org.eclipse.kura.example.camel.aggregation" />
+- </copy>
+- <delete file="${project.build.directory}/staging/camel_aggregation/pom.xml" />
+- <delete dir="${project.build.directory}/staging/camel_aggregation/bin" />
+- <delete dir="${project.build.directory}/staging/camel_aggregation/target" />
+- <copy file="src/main/resources/common/classpaths/camel_aggregation.classpath"
+- tofile="${project.build.directory}/staging/camel_aggregation/camel_aggregation.classpath" />
+- <copy overwrite="true"
+- file="src/main/resources/common/projects/camel_aggregation.project" tofile="${project.build.directory}/staging/camel_aggregation/.project" />
+- <move
+- file="${project.build.directory}/staging/camel_aggregation/camel_aggregation.classpath"
+- tofile="${project.build.directory}/staging/camel_aggregation/.classpath" />
+-
+- <!-- Create the archive file with the components -->
+- <zip destfile="${project.build.directory}/${zip_workspace.prefix}.zip">
+- <zipfileset dir="${project.build.directory}/staging/target-definition/"
+- prefix="target-definition/" />
+- <zipfileset dir="${project.build.directory}/staging/emulator/"
+- prefix="org.eclipse.kura.emulator/" />
+- <zipfileset dir="${project.build.directory}/staging/demo_heater/"
+- prefix="org.eclipse.kura.demo.heater/" />
+- <zipfileset dir="${project.build.directory}/staging/beacon/"
+- prefix="org.eclipse.kura.example.beacon/" />
+- <zipfileset dir="${project.build.directory}/staging/beacon.scanner/"
+- prefix="org.eclipse.kura.example.beacon.scanner/" />
+- <zipfileset dir="${project.build.directory}/staging/ibeacon.advertiser/"
+- prefix="org.eclipse.kura.example.ibeacon.advertiser/" />
+- <zipfileset dir="${project.build.directory}/staging/ibeacon.scanner/"
+- prefix="org.eclipse.kura.example.ibeacon.scanner/" />
+- <zipfileset dir="${project.build.directory}/staging/eddystone.advertiser/"
+- prefix="org.eclipse.kura.example.eddystone.advertiser/" />
+- <zipfileset dir="${project.build.directory}/staging/eddystone.scanner/"
+- prefix="org.eclipse.kura.example.eddystone.scanner/" />
+- <zipfileset dir="${project.build.directory}/staging/tisensortag/"
+- prefix="org.eclipse.kura.example.ble.tisensortag/" />
+- <zipfileset dir="${project.build.directory}/staging/tisensortag.tinyb/"
+- prefix="org.eclipse.kura.example.ble.tisensortag.tinyb/" />
+- <zipfileset dir="${project.build.directory}/staging/publisher/"
+- prefix="org.eclipse.kura.example.publisher/" />
+- <zipfileset dir="${project.build.directory}/staging/camel_quickstart/"
+- prefix="org.eclipse.kura.example.camel.quickstart/" />
+- <zipfileset dir="${project.build.directory}/staging/camel_publisher/"
+- prefix="org.eclipse.kura.example.camel.publisher/" />
+- <zipfileset dir="${project.build.directory}/staging/camel_aggregation/"
+- prefix="org.eclipse.kura.example.camel.aggregation/" />
+- </zip>
+- </target>
+- </configuration>
+- </execution>
+- <execution>
+- <id>post-dev-env</id>
+- <phase>install</phase>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <configuration>
+- <target unless="${org.eclipse.kura.dio.include}">
+- <zip destfile="${project.build.directory}/tmp_ws.zip">
+- <zipfileset src="${project.build.directory}/${zip_workspace.prefix}.zip">
+- <exclude
+- name="target-definition/common/repository/plugins/jdk.dio_${jdk.dio.version}.jar" />
+- <exclude
+- name="target-definition/common/repository/plugins/jdk.dio.*_${jdk.dio.version}.jar" />
+- </zipfileset>
+- </zip>
+- <move file="${project.build.directory}/tmp_ws.zip" tofile="${project.build.directory}/${zip_workspace.prefix}.zip" />
+- </target>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- </plugins>
+- </build>
+- </profile>
+- <profile>
+- <id>core-dp</id>
+- <activation>
+- <activeByDefault>true</activeByDefault>
+- </activation>
+- <build>
+- <plugins>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-dependency-plugin</artifactId>
+- <executions>
+- <execution>
+- <id>core-dp</id>
+- <phase>package</phase>
+- <goals>
+- <goal>copy</goal>
+- </goals>
+- <configuration>
+- <artifactItems>
+- <artifactItem>
+- <groupId>org.eclipse.kura</groupId>
+- <artifactId>org.eclipse.kura.protocol.modbus</artifactId>
+- <version>${org.eclipse.kura.protocol.modbus.version}</version>
+- <type>dp</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.eclipse.kura.feature</groupId>
+- <artifactId>org.eclipse.kura.driver.opcua</artifactId>
+- <version>${org.eclipse.kura.driver.opcua.version}</version>
+- <type>dp</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.eclipse.kura.feature</groupId>
+- <artifactId>org.eclipse.kura.driver.s7plc</artifactId>
+- <version>${org.eclipse.kura.driver.s7plc.version}</version>
+- <type>dp</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.eclipse.kura.feature</groupId>
+- <artifactId>org.eclipse.kura.driver.ble.sensortag</artifactId>
+- <version>${org.eclipse.kura.driver.ble.sensortag.version}</version>
+- <type>dp</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.eclipse.kura.feature</groupId>
+- <artifactId>org.eclipse.kura.driver.eddystone</artifactId>
+- <version>${org.eclipse.kura.driver.eddystone.version}</version>
+- <type>dp</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.eclipse.kura.feature</groupId>
+- <artifactId>org.eclipse.kura.driver.ibeacon</artifactId>
+- <version>${org.eclipse.kura.driver.ibeacon.version}</version>
+- <type>dp</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.eclipse.kura.feature</groupId>
+- <artifactId>org.eclipse.kura.wire.script.filter</artifactId>
+- <version>${org.eclipse.kura.wire.script.filter.version}</version>
+- <type>dp</type>
+- </artifactItem>
+- <artifactItem>
+- <groupId>org.eclipse.kura.feature</groupId>
+- <artifactId>org.eclipse.kura.driver.gpio</artifactId>
+- <version>${org.eclipse.kura.driver.gpio.version}</version>
+- <type>dp</type>
+- </artifactItem>
+- </artifactItems>
+- <outputDirectory>${project.build.directory}</outputDirectory>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- </plugins>
+- </build>
+- </profile>
+- <profile>
+- <id>can-dp</id>
+- <activation>
+- <activeByDefault>true</activeByDefault>
+- </activation>
+- <build>
+- <plugins>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-dependency-plugin</artifactId>
+- <executions>
+- <execution>
+- <id>can-dp</id>
+- <phase>package</phase>
+- <goals>
+- <goal>copy</goal>
+- </goals>
+- <configuration>
+- <skip>${kura.skip.can}</skip>
+- <artifactItems>
+- <artifactItem>
+- <groupId>org.eclipse.kura</groupId>
+- <artifactId>org.eclipse.kura.protocol.can</artifactId>
+- <version>${org.eclipse.kura.protocol.can.version}</version>
+- <type>dp</type>
+- </artifactItem>
+- </artifactItems>
+- <outputDirectory>${project.build.directory}</outputDirectory>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+- </plugins>
+- </build>
+- </profile>
+ </profiles>
+ </project>
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-connectivity/kura/files/jdk.dio.properties.default b/external/meta-iot-cloud/recipes-connectivity/kura/files/jdk.dio.properties.default
new file mode 100644
index 00000000..f623b025
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/kura/files/jdk.dio.properties.default
@@ -0,0 +1,3 @@
+#
+# IO Properties Placeholder
+#
diff --git a/external/meta-iot-cloud/recipes-connectivity/kura/files/kura.properties.default b/external/meta-iot-cloud/recipes-connectivity/kura/files/kura.properties.default
new file mode 100644
index 00000000..f273561e
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/kura/files/kura.properties.default
@@ -0,0 +1,99 @@
+#
+# Copyright (c) 2011, 2019 Eurotech and/or its affiliates
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Eurotech
+#
+
+## -----------------------------------------------------------------------------
+## Kura Properties
+## -----------------------------------------------------------------------------
+kura.name=Eclipse Kura
+kura.version=
+kura.marketplace.compatibility.version=
+kura.company=ECLIPSE
+kura.project=yocto
+kura.platform=%TARGET_SYS%
+kura.device.name=%MACHINE%
+kura.model.id=%MACHINE%
+kura.model.name=%MACHINE%
+kura.bios.version=N/A
+kura.firmware.version=N/A
+# kura.primary.network.interface=N/A
+# kura.mac.address= Fetch from Java
+kura.home={kura.install.dir}/{kura.symlink}
+kura.framework.config={kura.install.dir}/{kura.symlink}/framework
+kura.user.config={kura.install.dir}/{kura.symlink}/user
+kura.plugins={kura.install.dir}/{kura.symlink}/plugins
+kura.packages={kura.install.dir}/{kura.symlink}/data/packages
+kura.data={kura.install.dir}/{kura.symlink}/data
+kura.tmp=/tmp/.kura
+kura.snapshots={kura.install.dir}/{kura.symlink}/user/snapshots
+kura.style.dir={kura.install.dir}/{kura.symlink}/user/console/skin
+kura.have.net.admin=true
+kura.wifi.top.channel=11
+# os.arch= Fetch from Java
+# os.name= Fetch from Java
+# os.version= Fetch from Java
+os.distribution=%DISTRO%
+os.distribution.version=%DISTRO_VERSION%
+# java.version= Fetch from Java
+# java.vendor= Fetch from Java
+# java.vm.name= Fetch from Java
+# java.vm.version= Fetch from Java
+# java.home= Fetch from Java
+# file.separator= Fetch from Java
+
+
+## -----------------------------------------------------------------------------
+## Java Key Store Settings
+## -----------------------------------------------------------------------------
+kura.ssl.keyStorePassword=changeit
+
+
+## -----------------------------------------------------------------------------
+## Remote Configuration Properties
+## -----------------------------------------------------------------------------
+console.device.management.service.ignore=org.eclipse.kura.net.admin.NetworkConfigurationService,org.eclipse.kura.net.admin.FirewallConfigurationService
+
+
+## -----------------------------------------------------------------------------
+## File upload settings
+## -----------------------------------------------------------------------------
+# default 10240
+file.upload.in.memory.size.threshold=10240
+# -1: unlimited (default)
+file.upload.size.max=-1
+file.command.zip.max.size=100
+file.command.zip.max.number=1024
+
+
+## -----------------------------------------------------------------------------
+## Deployment Agent settings
+## -----------------------------------------------------------------------------
+# see copyURLToFile() http://commons.apache.org/proper/commons-io/javadocs/api-2.4/index.html
+dpa.connection.timeout = 60000
+dpa.read.timeout = 60000
+
+
+## -----------------------------------------------------------------------------
+## Cloud Connection Status settings
+## -----------------------------------------------------------------------------
+
+#1. Cloud Connection Status on system log
+#The Cloud Connection Status will be indicated in the log files, and nowere else
+ccs.status.notification.url=ccs:log
+
+#2. Cloud Connection Status on LED
+#The Cloud Connection Status will be indicated by a blinking LED connected to the system GPIOs
+#The URL should indicate the GPIO logic index of the GPIO Pin used for the LED
+#ccs.status.notification.url=ccs:led:16
+
+#3. Cloud Connection Status disabled
+#Disables the Cloud Connection Status service
+#ccs.status.notification.url=ccs:none
diff --git a/external/meta-iot-cloud/recipes-connectivity/kura/files/log4j.xml.default b/external/meta-iot-cloud/recipes-connectivity/kura/files/log4j.xml.default
new file mode 100644
index 00000000..ad35d51e
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/kura/files/log4j.xml.default
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="warn" strict="true" name="KuraConfig" monitorInterval="30">
+
+ <Properties>
+ <Property name="filename">/var/log/kura</Property>
+ </Properties>
+ <Filter type="ThresholdFilter" level="trace"/>
+
+ <Appenders>
+ <RollingFile name="RollingFile" fileName="${filename}.log" filePattern="${filename}-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz">
+ <PatternLayout>
+ <Pattern>%d{ISO8601} [%t] %-5p %c{1.} - %m%n%throwable{full}</Pattern>
+ </PatternLayout>
+ <Policies>
+ <SizeBasedTriggeringPolicy size="20 MB"/>
+ </Policies>
+ <DefaultRolloverStrategy max="10"/>
+ </RollingFile>
+ </Appenders>
+
+ <Loggers>
+ <Logger name="org.eclipse" level="info" additivity="false">
+ <AppenderRef ref="RollingFile"/>
+ </Logger>
+
+ <Root level="info">
+ <AppenderRef ref="RollingFile"/>
+ </Root>
+ </Loggers>
+
+</Configuration>
+
diff --git a/external/meta-iot-cloud/recipes-connectivity/kura/files/snapshot_0.xml.default b/external/meta-iot-cloud/recipes-connectivity/kura/files/snapshot_0.xml.default
new file mode 100644
index 00000000..a114a36a
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/kura/files/snapshot_0.xml.default
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<esf:configurations xmlns:ocd="http://www.osgi.org/xmlns/metatype/v1.2.0" xmlns:esf="http://eurotech.com/esf/2.0">
+ <esf:configuration pid="org.eclipse.kura.watchdog.WatchdogService">
+ <esf:properties>
+ <esf:property name="enabled" array="false" encrypted="false" type="Boolean">
+ <esf:value>false</esf:value>
+ </esf:property>
+ <esf:property name="service.pid" array="false" encrypted="false" type="String">
+ <esf:value>org.eclipse.kura.watchdog.WatchdogService</esf:value>
+ </esf:property>
+ <esf:property name="pingInterval" array="false" encrypted="false" type="Integer">
+ <esf:value>10000</esf:value>
+ </esf:property>
+ </esf:properties>
+ </esf:configuration>
+ <esf:configuration pid="org.eclipse.kura.clock.ClockService">
+ <esf:properties>
+ <esf:property name="enabled" array="false" encrypted="false" type="Boolean">
+ <esf:value>true</esf:value>
+ </esf:property>
+ <esf:property name="clock.ntp.port" array="false" encrypted="false" type="Integer">
+ <esf:value>123</esf:value>
+ </esf:property>
+ <esf:property name="clock.ntp.refresh-interval" array="false" encrypted="false" type="Integer">
+ <esf:value>3600</esf:value>
+ </esf:property>
+ <esf:property name="clock.provider" array="false" encrypted="false" type="String">
+ <esf:value>java-ntp</esf:value>
+ </esf:property>
+ <esf:property name="clock.set.hwclock" array="false" encrypted="false" type="Boolean">
+ <esf:value>true</esf:value>
+ </esf:property>
+ <esf:property name="clock.ntp.timeout" array="false" encrypted="false" type="Integer">
+ <esf:value>10000</esf:value>
+ </esf:property>
+ <esf:property name="clock.ntp.host" array="false" encrypted="false" type="String">
+ <esf:value>0.pool.ntp.org</esf:value>
+ </esf:property>
+ <esf:property name="service.pid" array="false" encrypted="false" type="String">
+ <esf:value>org.eclipse.kura.clock.ClockService</esf:value>
+ </esf:property>
+ </esf:properties>
+ </esf:configuration>
+ <esf:configuration pid="org.eclipse.kura.db.H2DbService">
+ <esf:properties>
+ <esf:property array="false" encrypted="false" name="db.user" type="String">
+ <esf:value>SA</esf:value>
+ </esf:property>
+ <esf:property array="false" encrypted="false" name="db.connection.pool.max.size" type="Integer">
+ <esf:value>10</esf:value>
+ </esf:property>
+ <esf:property array="false" encrypted="false" name="db.connector.url" type="String">
+ <esf:value>jdbc:h2:mem:kuradb</esf:value>
+ </esf:property>
+ <esf:property array="false" encrypted="false" name="service.factoryPid" type="String">
+ <esf:value>org.eclipse.kura.core.db.H2DbService</esf:value>
+ </esf:property>
+ <esf:property array="false" encrypted="false" name="db.checkpoint.interval.seconds" type="Integer">
+ <esf:value>900</esf:value>
+ </esf:property>
+ <esf:property array="false" encrypted="false" name="kura.service.pid" type="String">
+ <esf:value>org.eclipse.kura.db.H2DbService</esf:value>
+ </esf:property>
+ </esf:properties>
+ </esf:configuration>
+ <esf:configuration pid="org.eclipse.kura.core.data.transport.mqtt.MqttDataTransport">
+ <esf:properties>
+ <esf:property name="clean-session" array="false" encrypted="false" type="Boolean">
+ <esf:value>true</esf:value>
+ </esf:property>
+ <esf:property name="username" array="false" encrypted="false" type="String">
+ <esf:value>username</esf:value>
+ </esf:property>
+ <esf:property name="topic.context.account-name" array="false" encrypted="false" type="String">
+ <esf:value>account-name</esf:value>
+ </esf:property>
+ <esf:property name="broker-url" array="false" encrypted="false" type="String">
+ <esf:value>mqtts://broker-url:8883/</esf:value>
+ </esf:property>
+ <esf:property name="lwt.retain" array="false" encrypted="false" type="Boolean">
+ <esf:value>false</esf:value>
+ </esf:property>
+ <esf:property name="in-flight.persistence" array="false" encrypted="false" type="String">
+ <esf:value>memory</esf:value>
+ </esf:property>
+ <esf:property name="lwt.topic" array="false" encrypted="false" type="String">
+ <esf:value>$EDC/#account-name/#client-id/MQTT/LWT</esf:value>
+ </esf:property>
+ <esf:property name="keep-alive" array="false" encrypted="false" type="Integer">
+ <esf:value>30</esf:value>
+ </esf:property>
+ <esf:property name="service.pid" array="false" encrypted="false" type="String">
+ <esf:value>org.eclipse.kura.core.data.transport.mqtt.MqttDataTransport</esf:value>
+ </esf:property>
+ <esf:property name="password" array="false" encrypted="false" type="Password">
+ <esf:value>password</esf:value>
+ </esf:property>
+ <esf:property name="timeout" array="false" encrypted="false" type="Integer">
+ <esf:value>20</esf:value>
+ </esf:property>
+ <esf:property name="lwt.qos" array="false" encrypted="false" type="Integer">
+ <esf:value>0</esf:value>
+ </esf:property>
+ <esf:property name="protocol-version" array="false" encrypted="false" type="Integer">
+ <esf:value>4</esf:value>
+ </esf:property>
+ </esf:properties>
+ </esf:configuration>
+ <esf:configuration pid="org.eclipse.kura.data.DataService">
+ <esf:properties>
+ <esf:property name="in-flight-messages.congestion-timeout" array="false" encrypted="false" type="Integer">
+ <esf:value>0</esf:value>
+ </esf:property>
+ <esf:property name="store.purge-age" array="false" encrypted="false" type="Integer">
+ <esf:value>60</esf:value>
+ </esf:property>
+ <esf:property name="in-flight-messages.republish-on-new-session" array="false" encrypted="false" type="Boolean">
+ <esf:value>true</esf:value>
+ </esf:property>
+ <esf:property name="store.capacity" array="false" encrypted="false" type="Integer">
+ <esf:value>10000</esf:value>
+ </esf:property>
+ <esf:property name="disconnect.quiesce-timeout" array="false" encrypted="false" type="Integer">
+ <esf:value>10</esf:value>
+ </esf:property>
+ <esf:property name="connect.auto-on-startup" array="false" encrypted="false" type="Boolean">
+ <esf:value>false</esf:value>
+ </esf:property>
+ <esf:property name="connect.retry-interval" array="false" encrypted="false" type="Integer">
+ <esf:value>60</esf:value>
+ </esf:property>
+ <esf:property name="service.pid" array="false" encrypted="false" type="String">
+ <esf:value>org.eclipse.kura.data.DataService</esf:value>
+ </esf:property>
+ <esf:property name="in-flight-messages.max-number" array="false" encrypted="false" type="Integer">
+ <esf:value>9</esf:value>
+ </esf:property>
+ <esf:property name="store.housekeeper-interval" array="false" encrypted="false" type="Integer">
+ <esf:value>900</esf:value>
+ </esf:property>
+ </esf:properties>
+ </esf:configuration>
+ <esf:configuration pid="org.eclipse.kura.position.PositionService">
+ <esf:properties>
+ <esf:property name="port" array="false" encrypted="false" type="String">
+ <esf:value>1-3.2</esf:value>
+ </esf:property>
+ <esf:property name="enabled" array="false" encrypted="false" type="Boolean">
+ <esf:value>false</esf:value>
+ </esf:property>
+ <esf:property name="parity" array="false" encrypted="false" type="Integer">
+ <esf:value>0</esf:value>
+ </esf:property>
+ <esf:property name="stopBits" array="false" encrypted="false" type="Integer">
+ <esf:value>1</esf:value>
+ </esf:property>
+ <esf:property name="baudRate" array="false" encrypted="false" type="Integer">
+ <esf:value>115200</esf:value>
+ </esf:property>
+ <esf:property name="service.pid" array="false" encrypted="false" type="String">
+ <esf:value>org.eclipse.kura.position.PositionService</esf:value>
+ </esf:property>
+ <esf:property name="bitsPerWord" array="false" encrypted="false" type="Integer">
+ <esf:value>8</esf:value>
+ </esf:property>
+ </esf:properties>
+ </esf:configuration>
+ <esf:configuration pid="org.eclipse.kura.cloud.CloudService">
+ <esf:properties>
+ <esf:property name="encode.gzip" array="false" encrypted="false" type="Boolean">
+ <esf:value>true</esf:value>
+ </esf:property>
+ <esf:property name="device.custom-name" array="false" encrypted="false" type="String">
+ <esf:value>%MACHINE%</esf:value>
+ </esf:property>
+ </esf:properties>
+ </esf:configuration>
+ <esf:configuration pid="org.eclipse.kura.ssl.SslManagerService">
+ <esf:properties>
+ <esf:property name="ssl.default.protocol" array="false" encrypted="false" type="String">
+ <esf:value>TLSv1.2</esf:value>
+ </esf:property>
+ <esf:property name="ssl.hostname.verification" array="false" encrypted="false" type="Boolean">
+ <esf:value>true</esf:value>
+ </esf:property>
+ <esf:property name="ssl.default.trustStore" array="false" encrypted="false" type="String">
+ <esf:value>/opt/eclipse/kura/user/security/cacerts.ks</esf:value>
+ </esf:property>
+ </esf:properties>
+ </esf:configuration>
+</esf:configurations>
diff --git a/external/meta-iot-cloud/recipes-connectivity/kura/kura_4.1.0.bb b/external/meta-iot-cloud/recipes-connectivity/kura/kura_4.1.0.bb
new file mode 100644
index 00000000..88a3a1f7
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/kura/kura_4.1.0.bb
@@ -0,0 +1,142 @@
+DESCRIPTION = "The extensible open source Java/OSGi IoT Edge Framework"
+HOMEPAGE = "https://www.eclipse.org/kura/"
+LICENSE = "EPL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=52a21f73ac77fd790dc40dc5acda0fc2"
+
+inherit systemd update-rc.d
+
+DEPENDS = "\
+ maven-native \
+ openjdk-8-native \
+ unzip-native \
+"
+
+RDEPENDS_${PN} += "java2-runtime"
+
+SRC_URI = "\
+ git://github.com/eclipse/kura.git;branch=develop;tag=KURA_${PV}_RELEASE \
+"
+
+# Patches
+SRC_URI += "\
+ file://Remove-default-build-profiles.patch \
+ file://Add-Yocto-build-profile.patch \
+ file://Fix-equinox-build.patch \
+ file://Disable-checksum-generation.patch \
+"
+
+# Config
+SRC_URI += "\
+ file://kura.properties.default \
+ file://jdk.dio.properties.default \
+ file://snapshot_0.xml.default \
+ file://log4j.xml.default \
+"
+
+PR = "r0"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/${BPN}_${PV}_yocto"
+
+KURA_MEMSIZE ?= "1024"
+KURA_PROPERTIES ?= "${WORKDIR}/kura.properties.default"
+KURA_DIO_PROPERTIES ?= "${WORKDIR}/jdk.dio.properties.default"
+KURA_SNAPSHOT ?= "${WORKDIR}/snapshot_0.xml.default"
+KURA_LOG4J_CONFIG ?= "${WORKDIR}/log4j.xml.default"
+
+
+do_configure() {
+ # Config
+ sed -i 's|%ARCH%|${TARGET_ARCH}|g' ${S}/kura/distrib/pom.xml
+ sed -i 's|%DISTRO%|${DISTRO}-${DISTRO_VERSION}|g' ${S}/kura/distrib/pom.xml
+ sed -i 's|%MACHINE%|${MACHINE}|g' ${S}/kura/distrib/pom.xml
+ sed -i 's|%MEMSIZE%|${KURA_MEMSIZE}|g' ${S}/kura/distrib/pom.xml
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ sed -i 's|%SERVICE_MANAGER%|systemd|g' ${S}/kura/distrib/pom.xml
+ elif ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
+ sed -i 's|%SERVICE_MANAGER%|sysv|g' ${S}/kura/distrib/pom.xml
+ else
+ sed -i 's|%SERVICE_MANAGER%|none|g' ${S}/kura/distrib/pom.xml
+ fi
+
+ # Snapshot
+ sed -i 's|%MACHINE%|${MACHINE}|g' ${KURA_SNAPSHOT}
+
+ # Properties
+ sed -i 's|%DISTRO%|${DISTRO}|g' ${KURA_PROPERTIES}
+ sed -i 's|%DISTRO_VERSION%|${DISTRO_VERSION}|g' ${KURA_PROPERTIES}
+ sed -i 's|%MACHINE%|${MACHINE}|g' ${KURA_PROPERTIES}
+ sed -i 's|%TARGET_SYS%|${TARGET_SYS}|g' ${KURA_PROPERTIES}
+
+ # Create Yocto resources
+ mkdir -p ${S}/kura/distrib/src/main/resources/yocto
+ cp ${KURA_SNAPSHOT} ${S}/kura/distrib/src/main/resources/yocto/snapshot_0.xml
+ cp ${KURA_DIO_PROPERTIES} ${S}/kura/distrib/src/main/resources/yocto/jdk.dio.properties
+ cp ${KURA_PROPERTIES} ${S}/kura/distrib/src/main/resources/yocto/kura.properties
+ cp ${KURA_LOG4J_CONFIG} ${S}/kura/distrib/src/main/resources/yocto/log4j.xml
+}
+
+do_compile() {
+ export JAVA_HOME="${STAGING_LIBDIR_NATIVE}/jvm/openjdk-8-native"
+ export M3_HOME="${STAGING_DIR_NATIVE}/usr/bin/maven-native"
+
+ cd ${S}
+ mvn -Dmaven.test.skip=true -f target-platform/pom.xml clean install
+ mvn -Dmaven.test.skip=true -f kura/pom.xml clean install
+ mvn -Dmaven.test.skip=true -f kura/distrib/pom.xml clean install
+
+ # Populate build directory
+ unzip -o ${S}/kura/distrib/target/${BPN}_${PV}_yocto.zip -d ${WORKDIR}
+}
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -d ${D}/opt/eclipse/kura
+ install -d ${D}/opt/eclipse/kura/bin
+ install -d ${D}/opt/eclipse/kura/framework
+ install -d ${D}/opt/eclipse/kura/plugins
+ install -d ${D}/opt/eclipse/kura/user
+ install -d ${D}/opt/eclipse/kura/user/snapshots
+ install -d ${D}/opt/eclipse/kura/user/security
+
+ # License
+ install -m 0644 ${B}/*.html ${D}/opt/eclipse/kura/
+
+ # Startup Scripts
+ install -m 0755 ${B}/bin/*.sh ${D}/opt/eclipse/kura/bin
+ ln -s /opt/eclipse/kura/bin/start_kura.sh ${D}${bindir}/kura
+
+ # Framework
+ install -m 0644 ${B}/framework/* ${D}/opt/eclipse/kura/framework/
+
+ # Plugins
+ install -m 0644 ${B}/plugins/*.jar ${D}/opt/eclipse/kura/plugins/
+
+ # User
+ install -m 0644 ${B}/user/log4j.xml ${D}/opt/eclipse/kura/user/
+ install -m 0644 ${B}/user/kura_custom.properties ${D}/opt/eclipse/kura/user/
+ install -m 0644 ${B}/user/security/cacerts.ks ${D}/opt/eclipse/kura/user/security/
+ install -m 0644 ${B}/user/snapshots/*.xml ${D}/opt/eclipse/kura/user/snapshots/
+
+ # Systemd Service
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${B}/install/kura.service ${D}${systemd_unitdir}/system
+
+ # Sysvinit Service
+ install -d ${D}/${INIT_D_DIR}
+ install -m 0755 ${B}/install/kura.init.yocto ${D}/${INIT_D_DIR}/kura
+
+}
+
+SYSTEMD_SERVICE_${PN} = "kura.service"
+SYSTEMD_AUTO_ENABLE ?= "enable"
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME_${PN} = "kura"
+
+FILES_${PN} = "\
+ ${bindir} \
+ ${INIT_D_DIR} \
+ ${systemd_unitdir}/system \
+ /opt/eclipse/kura \
+"
diff --git a/external/meta-iot-cloud/recipes-connectivity/rclone/rclone_1.50.2.bb b/external/meta-iot-cloud/recipes-connectivity/rclone/rclone_1.50.2.bb
new file mode 100644
index 00000000..ebb85e9b
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/rclone/rclone_1.50.2.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Rclone - rsync for cloud storage. "
+DESCRIPTION = "Sync files to and from many cloud storage providers like AWS S3, Google Cloud, Azure and many more"
+AUTHOR = "Nishant Poorswani <nishantpoorswani@gmail.com>"
+HOMEPAGE = "https://rclone.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://src/github.com/rclone/rclone/COPYING;md5=bed161b82a1ecab65ff7ba3c3b960439"
+
+RDEPENDS_${PN}-dev = "\
+ bash \
+ python3-core \
+"
+
+inherit go
+
+GO_IMPORT = "github.com/rclone/rclone"
+
+SRC_URI = "git://${GO_IMPORT};branch=v1.50-fixes;tag=v${PV}"
+
+PR = "r0"
+
+do_install_prepend(){
+ rm -f ${B}/${GO_BUILD_BINDIR}/gen
+ rm -f ${B}/${GO_BUILD_BINDIR}/test_all
+ rm -f ${B}/${GO_BUILD_BINDIR}/test_vfs
+}
diff --git a/external/meta-iot-cloud/recipes-connectivity/restic/restic_0.9.6.bb b/external/meta-iot-cloud/recipes-connectivity/restic/restic_0.9.6.bb
new file mode 100644
index 00000000..f094cd84
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-connectivity/restic/restic_0.9.6.bb
@@ -0,0 +1,18 @@
+SUMMARY = "restic is a backup program that is fast, efficient and secure."
+DESCRIPTION = "Restic can backup and sync data to AWS S3, Google Cloud, Azure, SFTP servers and many more"
+AUTHOR = "Nishant Poorswani <nishantpoorswani@gmail.com>"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://src/github.com/restic/restic/LICENSE;md5=d267ffee32f3f73928409ee59c2c9667"
+
+inherit go
+
+GO_IMPORT = "github.com/restic/restic"
+
+SRC_URI = "git://${GO_IMPORT};tag=v${PV}"
+
+PR = "r0"
+
+do_install_prepend(){
+ rm -f ${B}/${GO_BUILD_BINDIR}/build-release-binaries
+ rm -f ${B}/${GO_BUILD_BINDIR}/prepare-release
+}
diff --git a/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-aws_0.15.bb b/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-aws_0.15.bb
new file mode 100644
index 00000000..5a0ce944
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-aws_0.15.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Packages for Amazon Web Services."
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PR = "r0"
+
+PACKAGES = "${PN}"
+
+PACKAGECONFIG ??= "python cpp"
+
+PACKAGECONFIG[python] = "\
+ , \
+ , \
+ , \
+ python3-aws-iot-device-sdk-python \
+ python3-awscli \
+"
+
+PACKAGECONFIG[cpp] = "\
+ , \
+ , \
+ , \
+ aws-iot-device-sdk-cpp \
+ aws-iot-device-sdk-cpp-dev \
+"
diff --git a/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-azure_0.19.bb b/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-azure_0.19.bb
new file mode 100644
index 00000000..9d5d04b9
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-azure_0.19.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "Packages for Microsoft Azure IoT."
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PR = "r0"
+
+PACKAGES = "${PN}"
+
+PACKAGECONFIG ??= "c node-red python"
+
+PACKAGECONFIG[c] = "\
+ , \
+ , \
+ , \
+ azure-iot-sdk-c \
+ azure-iot-sdk-c-dev \
+"
+
+PACKAGECONFIG[node-red] = "\
+ , \
+ , \
+ , \
+ node-red-contrib-azureiothubnode \
+"
+
+PACKAGECONFIG[python] = "\
+ , \
+ , \
+ , \
+ python3-azure-iot-device \
+"
diff --git a/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-google_0.5.bb b/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-google_0.5.bb
new file mode 100644
index 00000000..2201f6ba
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-google_0.5.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Packages for the Google Cloud Platform."
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PR = "r0"
+
+PACKAGES = "${PN}"
+
+PACKAGECONFIG ??= "cli node-red python"
+
+PACKAGECONFIG[node-red] = "\
+ , \
+ , \
+ , \
+ node-red-contrib-google-cloud \
+"
+
+PACKAGECONFIG[cli] = "\
+ , \
+ , \
+ , \
+ google-cloud-sdk \
+"
+
+PACKAGECONFIG[python] = "\
+ , \
+ , \
+ , \
+ python3-google-cloud-pubsub \
+"
diff --git a/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-ibm_0.8.bb b/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-ibm_0.8.bb
new file mode 100644
index 00000000..055a2f2a
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-ibm_0.8.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Packages for IBM Cloud & Watson platforms."
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PR = "r0"
+
+PACKAGES = "${PN}"
+
+PACKAGECONFIG ??= "c python node-red"
+
+PACKAGECONFIG[c] = "\
+ , \
+ , \
+ , \
+ ibm-iotf-embeddedc \
+ ibm-iotf-embeddedc-dev \
+ ibm-iotf-embeddedc-samples \
+"
+
+PACKAGECONFIG[python] = "\
+ , \
+ , \
+ , \
+ python3-ibmiotf \
+"
+
+PACKAGECONFIG[node-red] = "\
+ , \
+ , \
+ , \
+ node-red-contrib-ibm-watson-iot \
+"
diff --git a/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-oisp_0.1.bb b/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-oisp_0.1.bb
new file mode 100644
index 00000000..4996bd95
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-core/packagegroups/packagegroup-cloud-oisp_0.1.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Packages for the Open IoT Service Platform."
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PR = "r0"
+
+PACKAGES = "${PN}"
+
+PACKAGECONFIG ??= "cli python"
+
+PACKAGECONFIG[cli] = "\
+ , \
+ , \
+ , \
+ oisp-cli \
+"
+
+PACKAGECONFIG[python] = "\
+ , \
+ , \
+ , \
+ python3-oisp \
+"
diff --git a/external/meta-iot-cloud/recipes-devtools/dotnet/dotnet_3.0.0.bb b/external/meta-iot-cloud/recipes-devtools/dotnet/dotnet_3.0.0.bb
new file mode 100644
index 00000000..3bde323f
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/dotnet/dotnet_3.0.0.bb
@@ -0,0 +1,105 @@
+DESCRIPTION = ".NET Core Runtime, SDK & CLI tools"
+HOMEPAGE = "https://www.microsoft.com/net/core"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9fc642ff452b28d62ab19b7eea50dfb9"
+
+COMPATIBLE_HOST ?= "(x86_64|aarch64).*-linux"
+
+DEPENDS += "\
+ curl \
+ zlib \
+ util-linux \
+ icu \
+ openssl \
+ libunwind \
+"
+
+RDEPENDS_${PN}_class-target += "\
+ lttng-ust \
+ libcurl \
+ krb5 \
+ libgssapi-krb5 \
+ libicuuc \
+ libicui18n \
+"
+
+HOST_FXR = "3.0.0"
+SHARED_FRAMEWORK = "3.0.0"
+SDK = "3.0.100"
+
+PR = "r1"
+
+python __anonymous () {
+ import re
+
+ target_arch = d.getVar('TARGET_ARCH')
+
+ if re.match('x86_64$', target_arch):
+ d.setVar('SRC_FETCH_ID', '886b4a4c-30af-454b-8bec-81c72b7b4e1f/d1a0c8de9abb36d8535363ede4a15de6')
+ d.setVarFlag('SRC_URI', 'md5sum', '15a8ea8c61b8e3f90968bbfe515ca784')
+ d.setVarFlag('SRC_URI', 'sha256sum', '12098fe29d5c857fd6093b1fd63eda9f91b92798e3748fcedc0e0727f1ac01c2')
+ d.setVar('DOTNET_ARCH', 'x64')
+ elif re.match('arm64$', target_arch):
+ d.setVar('SRC_FETCH_ID', 'cbc83a0e-895c-4959-99d9-21cd11596e64/b0e59c2ba2bd3ef0f592acbeae7ab27d')
+ d.setVarFlag('SRC_URI', 'md5sum', '3fe1e83251456e7afc6aeb43f44e8740')
+ d.setVarFlag('SRC_URI', 'sha256sum', 'ffcd9db434dab9f068bbf229a4e20f935cab0b48b28e4a83c114c6c1f0f5f6f6')
+ d.setVar('DOTNET_ARCH', 'arm64')
+}
+
+SRC_URI = "https://download.visualstudio.microsoft.com/download/pr/${SRC_FETCH_ID}/${BPN}-sdk-${SDK}-linux-${DOTNET_ARCH}.tar.gz"
+
+S = "${WORKDIR}"
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+python do_install () {
+ bb.build.exec_func("shell_do_install", d)
+ oe.path.make_relative_symlink(d.expand("${D}${bindir}/dotnet"))
+}
+
+shell_do_install() {
+ install -d ${D}${bindir}
+ install -d ${D}${datadir}/dotnet
+ install -d ${D}${datadir}/dotnet/host/fxr
+ install -d ${D}${datadir}/dotnet/sdk
+ install -d ${D}${datadir}/dotnet/shared/Microsoft.NETCore.App
+
+ install -m 0755 ${S}/dotnet ${D}${datadir}/dotnet
+ install -m 0644 ${S}/LICENSE.txt ${D}${datadir}/dotnet
+ install -m 0644 ${S}/ThirdPartyNotices.txt ${D}${datadir}/dotnet
+
+ cp -r ${S}/sdk/${SDK} ${D}${datadir}/dotnet/sdk
+ cp -r ${S}/host/fxr/${HOST_FXR} ${D}${datadir}/dotnet/host/fxr
+ cp -r ${S}/shared/Microsoft.NETCore.App/${SHARED_FRAMEWORK} ${D}${datadir}/dotnet/shared/Microsoft.NETCore.App
+ cp -r ${S}/templates ${D}${datadir}/dotnet
+
+ # Symlinks
+ ln -s ${D}${datadir}/dotnet/dotnet ${D}${bindir}/dotnet
+}
+
+FILES_${PN} = "\
+ ${bindir} \
+ ${datadir}/dotnet/dotnet \
+ ${datadir}/dotnet/*.txt \
+ ${datadir}/dotnet/host \
+ ${datadir}/dotnet/shared \
+"
+
+FILES_${PN}-dev = "\
+ ${datadir}/dotnet/sdk \
+ ${datadir}/dotnet/templates \
+"
+
+RRECOMMENDS_dotnet-dev[nodeprrecs] = "1"
+
+INSANE_SKIP_${PN} = "already-stripped staticdev ldflags libdir"
+INSANE_SKIP_${PN}-dev = "libdir"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+BBCLASSEXTEND = "native"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-argcomplete.inc b/external/meta-iot-cloud/recipes-devtools/python/python-argcomplete.inc
new file mode 100644
index 00000000..a1a2d097
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-argcomplete.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Bash tab completion for argparse"
+AUTHOR = "Andrey Kislyuk"
+HOMEPAGE = "https://github.com/kislyuk/argcomplete"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-misc \
+ ${PYTHON_PN}-shell \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "9bb3b61a849f84723e63051240f74014"
+SRC_URI[sha256sum] = "06c8a54ffaa6bfc9006314498742ec8843601206a3b94212f82657673662ecf1" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-cbor.inc b/external/meta-iot-cloud/recipes-devtools/python/python-cbor.inc
new file mode 100644
index 00000000..f84cfaae
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-cbor.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "RFC 7049 - Concise Binary Object Representation"
+AUTHOR = "Brian Olson"
+HOMEPAGE = "https://bitbucket.org/bodhisnarkva/cbor"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=2;endline=14;md5=1298a5e04a7217757186fe28ea9d603c"
+
+PR = "r0"
+
+RDEPENDS_${PN} = "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-math \
+"
+
+SRC_URI[md5sum] = "22b03b59784fd78cb6c27aa498af0db6"
+SRC_URI[sha256sum] = "13225a262ddf5615cbd9fd55a76a0d53069d18b07d2e9f19c39e6acb8609bbb6"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-cheroot.inc b/external/meta-iot-cloud/recipes-devtools/python/python-cheroot.inc
new file mode 100644
index 00000000..ea37ab6c
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-cheroot.inc
@@ -0,0 +1,28 @@
+DESCRIPTION = "Highly-optimized, pure-python HTTP server"
+HOMEPAGE = "https://github.com/cherrypy/cheroot"
+AUTHOR = "CherryPy Team"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=beeffd9dfcc746ed5a91921f1acc2746"
+
+DEPENDS += "\
+ ${PYTHON_PN}-setuptools-scm-native \
+ ${PYTHON_PN}-setuptools-scm-git-archive-native \
+"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-email \
+ ${PYTHON_PN}-fcntl \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-unixadmin \
+"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-pyopenssl \
+ ${PYTHON_PN}-six \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "3606d3101486791f198b72389ac99f4a"
+SRC_URI[sha256sum] = "4fa28eef11bb7bb6a532fb0d51338ff631709e8527b7002d59edd4108f1e345a"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-cherrypy.inc b/external/meta-iot-cloud/recipes-devtools/python/python-cherrypy.inc
new file mode 100644
index 00000000..9a270055
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-cherrypy.inc
@@ -0,0 +1,46 @@
+DESCRIPTION = "Object-Oriented HTTP framework"
+HOMEPAGE = "https://www.cherrypy.org/"
+AUTHOR = "CherryPy Team"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=beeffd9dfcc746ed5a91921f1acc2746"
+
+PYPI_PACKAGE = "CherryPy"
+
+DEPENDS += "\
+ ${PYTHON_PN}-setuptools-scm-native \
+"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-compression \
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-email \
+ ${PYTHON_PN}-fcntl \
+ ${PYTHON_PN}-html \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-netserver \
+ ${PYTHON_PN}-profile \
+ ${PYTHON_PN}-pydoc \
+ ${PYTHON_PN}-xml \
+ ${PYTHON_PN}-unixadmin \
+"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-cheroot \
+ ${PYTHON_PN}-contextlib2 \
+ ${PYTHON_PN}-memcached \
+ ${PYTHON_PN}-portend \
+ ${PYTHON_PN}-pyopenssl \
+ ${PYTHON_PN}-routes \
+ ${PYTHON_PN}-simplejson \
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-zc-lockfile \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "67a01707c3c432403b663201d031a288"
+SRC_URI[sha256sum] = "c3e4d76232ade4c47666b9008f92556465df517b8dca833ece3bed027028ae7d"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-dicttoxml.inc b/external/meta-iot-cloud/recipes-devtools/python/python-dicttoxml.inc
new file mode 100644
index 00000000..d1365771
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-dicttoxml.inc
@@ -0,0 +1,12 @@
+SUMMARY = "Converts a Python dictionary or other native data type into a valid XML string."
+AUTHOR = "Ryan McGreal"
+HOMEPAGE = "https://github.com/quandyfactory/dicttoxml"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=8c6f370c9073badc24ad75afa6822bcb"
+
+PR = "r0"
+
+SRC_URI = "git://github.com/quandyfactory/dicttoxml.git"
+SRCREV = "2016fe9817ad03b26aa5f1a475f5b79ad6757b96"
+
+S = "${WORKDIR}/git"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-dill.inc b/external/meta-iot-cloud/recipes-devtools/python/python-dill.inc
new file mode 100644
index 00000000..1664cd20
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-dill.inc
@@ -0,0 +1,12 @@
+DESCRIPTION = "Serialize all of python"
+HOMEPAGE = "http://www.cacr.caltech.edu/~mmckerns/dill.htm"
+AUTHOR = "Mike McKerns"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ca6e0344ddc8af7ac5897ed5f5cc0cc2"
+
+PR = "r0"
+
+SRC_URI = "git://github.com/uqfoundation/dill.git"
+SRCREV = "afaeb815ecae56e9de6fe19f376deecdc272e32f"
+
+S = "${WORKDIR}/git" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-entrypoints.inc b/external/meta-iot-cloud/recipes-devtools/python/python-entrypoints.inc
new file mode 100644
index 00000000..7060a396
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-entrypoints.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Discover and load entry points from installed packages."
+AUTHOR = "Thomas Kluyver"
+HOMEPAGE = "https://github.com/takluyver/entrypoints"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b6f7f5bd22a5dc0397c806c4e5f8cbd3"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "0d3ad1b0130d91e3596ef3a59f25a56c"
+SRC_URI[sha256sum] = "d2d587dde06f99545fb13a383d2cd336a8ff1f359c5839ce3a64c917d10c029f"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-compression \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-pprint \
+ ${PYTHON_PN}-shell \
+" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-fire.inc b/external/meta-iot-cloud/recipes-devtools/python/python-fire.inc
new file mode 100644
index 00000000..e7441752
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-fire.inc
@@ -0,0 +1,15 @@
+SUMMARY = "A library for automatically generating command line interfaces"
+AUTHOR = "David Bieber <dbieber@google.com>"
+HOMEPAGE = "https://github.com/google/python-fire"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ab892b2b62f951d424bdb712a72584cc"
+
+SRC_URI[md5sum] = "9f3a91c285b50351d039b6f0bb91aac3"
+SRC_URI[sha256sum] = "6865fefc6981a713d2ce56a2a2c92c56c729269f74a6cddd6f4b94d16ae084c9"
+
+inherit pypi
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-termcolor \
+"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-httplib2.inc b/external/meta-iot-cloud/recipes-devtools/python/python-httplib2.inc
new file mode 100644
index 00000000..d4c80b3c
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-httplib2.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "A comprehensive HTTP client library."
+AUTHOR = "Joe Gregorio"
+HOMEPAGE = "https://github.com/httplib2/httplib2"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${BPN}-${PV}-license;md5=56e5e931172b6164b62dc7c4aba6c8cf"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-compression \
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-email \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-math \
+ ${PYTHON_PN}-netclient \
+"
+
+SRC_URI += "${HOMEPAGE}/raw/v${PV}/LICENSE;downloadfilename=${BPN}-${PV}-license;name=license"
+SRC_URI[license.md5sum] = "56e5e931172b6164b62dc7c4aba6c8cf"
+SRC_URI[license.sha256sum] = "589eec38f72df2be203711d3b8cbece9b908c5e7ff00bc3cab7f63bae9e366b4"
+
+SRC_URI[md5sum] = "9aa3e074da9a235cd675dd65e1fbcf39"
+SRC_URI[sha256sum] = "e71daed9a0e6373642db61166fa70beecc9bf04383477f84671348c02a04cbdf"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-jaraco-functools.inc b/external/meta-iot-cloud/recipes-devtools/python/python-jaraco-functools.inc
new file mode 100644
index 00000000..96e0bef8
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-jaraco-functools.inc
@@ -0,0 +1,21 @@
+SUMMARY = "Additional functools in the spirit of stdlib’s functools."
+AUTHOR = "Jason R. Coombs"
+HOMEPAGE = "https://github.com/jaraco/jaraco.functools"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a33f38bbf47d48c70fe0d40e5f77498e"
+
+PYPI_PACKAGE = "jaraco.functools"
+
+DEPENDS += "\
+ ${PYTHON_PN}-setuptools-scm-native \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-more-itertools \
+ ${PYTHON_PN}-six \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "7e82490c7705e6ed69934d35d5ac1d19"
+SRC_URI[sha256sum] = "bad775f06e58bb8de5563bc2a8bf704168919e6779d6e849b1ca58b443e97f3b"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-jeepney.inc b/external/meta-iot-cloud/recipes-devtools/python/python-jeepney.inc
new file mode 100644
index 00000000..12dbf256
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-jeepney.inc
@@ -0,0 +1,21 @@
+DESCRIPTION = "Low-level, pure Python DBus protocol wrapper."
+AUTHOR = "Thomas Kluyver"
+HOMEPAGE = "https://gitlab.com/takluyver/jeepney"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aad69c93f605003e3342b174d9b0708c"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-asyncio \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-typing \
+ ${PYTHON_PN}-xml \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-tornado \
+"
+
+SRC_URI[md5sum] = "d888c2f46d2b117eb683c04bc998572c"
+SRC_URI[sha256sum] = "a6f2aa72e61660248d4d524dfccb6405f17c693b69af5d60dd7f2bab807d907e" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-jmespath.inc b/external/meta-iot-cloud/recipes-devtools/python/python-jmespath.inc
new file mode 100644
index 00000000..db1d8f83
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-jmespath.inc
@@ -0,0 +1,16 @@
+SUMMARY = "JSON Matching Expressions"
+AUTHOR = "James Saryerwinnie"
+HOMEPAGE = "https://github.com/jmespath/jmespath.py"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2683790f5fabb41a3f75b70558799eb4"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-math \
+ ${PYTHON_PN}-pprint \
+"
+
+SRC_URI[md5sum] = "37a906c06de62bed25ec5cf99cee04a6"
+SRC_URI[sha256sum] = "6a81d4c9aa62caf061cb517b4d9ad1dd300374cd4706997aff9cd6aedd61fc64" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-keyring.inc b/external/meta-iot-cloud/recipes-devtools/python/python-keyring.inc
new file mode 100644
index 00000000..88791a1b
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-keyring.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "Store and access your passwords safely."
+AUTHOR = "Kang Zhang"
+HOMEPAGE = "https://github.com/jaraco/keyring"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a33f38bbf47d48c70fe0d40e5f77498e"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "f004a044737676031cd80e20deeb08ae"
+SRC_URI[sha256sum] = "971699318f8a882da4193f0c2f87ae974e34c777fdfb59f89b50105cd678f4d9"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-pickle \
+ ${PYTHON_PN}-unixadmin \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-dbus \
+ ${PYTHON_PN}-entrypoints \
+ ${PYTHON_PN}-secretstorage \
+"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-knack.inc b/external/meta-iot-cloud/recipes-devtools/python/python-knack.inc
new file mode 100644
index 00000000..1ac9e8a0
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-knack.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "A Python command line interface framework"
+HOMEPAGE = "https://github.com/microsoft/knack"
+AUTHOR = "Microsoft Corporation"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${BPN}-${PV}-license;md5=261d8686a7cf1ce9570cdc99746659f8"
+
+PR = "r0"
+
+SRC_URI += "https://github.com/Microsoft/knack/raw/${PV}/LICENSE;downloadfilename=${BPN}-${PV}-license;name=license"
+SRC_URI[md5sum] = "a5096a7df315ae563f7a0eb9fe81498f"
+SRC_URI[sha256sum] = "ba45fd69c2faf91fd3d6e95cec1c0ef7e0f4362e33c59bf5a260216ffcb859a0"
+SRC_URI[license.md5sum] = "261d8686a7cf1ce9570cdc99746659f8"
+SRC_URI[license.sha256sum] = "a096a435e19bb6b631da46992c011a39be563e97ce7366879ad516c772904632"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-distutils \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-unixadmin \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-argcomplete \
+ ${PYTHON_PN}-colorama \
+ ${PYTHON_PN}-jmespath \
+ ${PYTHON_PN}-pygments \
+ ${PYTHON_PN}-pyyaml \
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-tabulate \
+"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-memcached.inc b/external/meta-iot-cloud/recipes-devtools/python/python-memcached.inc
new file mode 100644
index 00000000..b06837c2
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-memcached.inc
@@ -0,0 +1,26 @@
+DESCRIPTION = "Pure python memcached client"
+HOMEPAGE = "https://github.com/linsomniac/python-memcached"
+AUTHOR = "Sean Reifschneider"
+SECTION = "devel/python"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${BPN}-${PV}-license;md5=7dd786e8594f1e787da94a946557b40e"
+
+PYPI_PACKAGE = "python-memcached"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-doctest \
+ ${PYTHON_PN}-io \
+"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-six \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "fe5a7c66da01b0c4f5223a4db8cb8659"
+SRC_URI[sha256sum] = "a2e28637be13ee0bf1a8b6843e7490f9456fd3f2a4cb60471733c7b5d5557e4f"
+
+SRC_URI += "https://github.com/linsomniac/${PYPI_PACKAGE}/raw/${PV}/PSF.LICENSE;name=license;downloadfilename=${BPN}-${PV}-license"
+SRC_URI[license.md5sum] = "7dd786e8594f1e787da94a946557b40e"
+SRC_URI[license.sha256sum] = "b3e6e40afa4c7b8a1bf71fe56051326c1a287f16c543a0b94d0acbe5899d8ab1"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-paramiko.inc b/external/meta-iot-cloud/recipes-devtools/python/python-paramiko.inc
new file mode 100644
index 00000000..f248b7b8
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-paramiko.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "SSH2 protocol library"
+HOMEPAGE = "https://github.com/paramiko/paramiko/"
+AUTHOR = "Jeff Forcier"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fd0120fc2e9f841c73ac707a30389af5"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-fcntl \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-shell \
+ ${PYTHON_PN}-unixadmin \
+"
+
+# No support for GSS-API / SSPI and Ed25519 keys
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-cryptography \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "f9fa1204f706767b6c179effa7c0fb9e"
+SRC_URI[sha256sum] = "33e36775a6c71790ba7692a73f948b329cf9295a72b0102144b031114bd2a4f3" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-portend.inc b/external/meta-iot-cloud/recipes-devtools/python/python-portend.inc
new file mode 100644
index 00000000..d4554ff2
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-portend.inc
@@ -0,0 +1,22 @@
+SUMMARY = "TCP port monitoring utilities"
+HOMEPAGE = "https://github.com/jaraco/portend"
+AUTHOR = "Jason R. Coombs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a33f38bbf47d48c70fe0d40e5f77498e"
+
+DEPENDS += "\
+ ${PYTHON_PN}-setuptools-scm-native \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-io \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-tempora \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "c1f36f2126da940ca5192dd1488b4f28"
+SRC_URI[sha256sum] = "b7ce7d35ea262415297cbfea86226513e77b9ee5f631d3baa11992d663963719"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-pydocumentdb.inc b/external/meta-iot-cloud/recipes-devtools/python/python-pydocumentdb.inc
new file mode 100644
index 00000000..b6b91656
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-pydocumentdb.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "Azure DocumentDB Python SDK"
+AUTHOR = "Microsoft"
+HOMEPAGE = "https://github.com/Azure/azure-documentdb-python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=17f4c916859f94d1524ed9f5804c6727"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-numbers \
+ ${PYTHON_PN}-threading \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-requests \
+ ${PYTHON_PN}-six \
+"
+
+SRC_URI[md5sum] = "5fb3c9d55443501546b834478d19a7f1"
+SRC_URI[sha256sum] = "6704e16b7eb69b5fa8da7636d1926d9952aa43acf2fabdb1ed0a128987139eee" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-repoze-lru.inc b/external/meta-iot-cloud/recipes-devtools/python/python-repoze-lru.inc
new file mode 100644
index 00000000..e9409dc1
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-repoze-lru.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "A tiny LRU cache implementation and decorator"
+HOMEPAGE = "http://www.repoze.org"
+AUTHOR = "Agendaless Consulting"
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2c33cdbc6bc9ae6e5d64152fdb754292"
+
+PR = "r0"
+
+SRC_URI = "git://github.com/repoze/repoze.lru.git"
+SRCREV = "29c8281dee7fe8dae8c66c7c40ce7c058ec2ab0f"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-requests-toolbelt.inc b/external/meta-iot-cloud/recipes-devtools/python/python-requests-toolbelt.inc
new file mode 100644
index 00000000..be4c41e5
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-requests-toolbelt.inc
@@ -0,0 +1,18 @@
+DESCRIPTION = "A utility belt for advanced users of python-requests."
+HOMEPAGE = "https://toolbelt.readthedocs.org"
+AUTHOR = "Ian Cordasco, Cory Benfield"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=71760e0f1dda8cff91b0bc9246caf571"
+
+SRC_URI = "git://github.com/sigmavirus24/requests-toolbelt.git"
+SRCREV = "94870f3f8e4e3507218a07f9d730c38abc42c219"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-requests \
+"
+
+PR = "r0"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-routes.inc b/external/meta-iot-cloud/recipes-devtools/python/python-routes.inc
new file mode 100644
index 00000000..834960ea
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-routes.inc
@@ -0,0 +1,28 @@
+DESCRIPTION = "Routing Recognition and Generation Tools"
+HOMEPAGE = "http://python-requests.org"
+AUTHOR = "Ben Bangert"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=90976c1a0e3029278f882cfe2e84a6ae"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-repoze-lru \
+"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-webob \
+"
+
+RPROVIDES_${PN} += "routes"
+RREPLACES_${PN} += "routes"
+RCONFLICTS_${PN} += "routes"
+
+PR = "r2"
+
+SRC_URI = "git://github.com/bbangert/routes.git"
+SRCREV = "0900d346e5569018644dcee850d679de3c915efb"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-rsa.inc b/external/meta-iot-cloud/recipes-devtools/python/python-rsa.inc
new file mode 100644
index 00000000..916b88e7
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-rsa.inc
@@ -0,0 +1,24 @@
+SUMMARY = "Pure-Python RSA implementation"
+AUTHOR = "Sybren A. Stuvel"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c403f6882d4f97a9cd927df987d55634"
+
+PR = "r1"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-compression \
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-doctest \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-math \
+ ${PYTHON_PN}-multiprocessing \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-pickle \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-pyasn1 \
+"
+
+SRC_URI[md5sum] = "b315f47882c24030ee6b5aad628cccdb"
+SRC_URI[sha256sum] = "25df4e10c263fb88b5ace923dd84bf9aa7f5019687b5e55382ffcdb8bede9db5" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-scandir.inc b/external/meta-iot-cloud/recipes-devtools/python/python-scandir.inc
new file mode 100644
index 00000000..ebc6049e
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-scandir.inc
@@ -0,0 +1,12 @@
+SUMMARY = "A better directory iterator and faster os.walk()"
+HOMEPAGE = "https://github.com/benhoyt/scandir"
+AUTHOR = "Ben Hoyt"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=482ee62da51806409d432a80eed4e3ea"
+
+PR = "r0"
+
+SRC_URI = "git://github.com/benhoyt/scandir.git"
+SRCREV = "edbae30f83f370f9d2f1e43d02e3793081e1cd25"
+
+S = "${WORKDIR}/git"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-scp.inc b/external/meta-iot-cloud/recipes-devtools/python/python-scp.inc
new file mode 100644
index 00000000..bc16c730
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-scp.inc
@@ -0,0 +1,14 @@
+SUMMARY = "SCP module for Paramiko"
+HOMEPAGE = "https://github.com/jbardin/scp.py"
+AUTHOR = "James Bardin"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fc264c65fb17b7db5237cf7ce1780769"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-io \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "9874e188a4d6aa5c849f7a09feecbdb9"
+SRC_URI[sha256sum] = "ea095dd1d0e131874bc9930c3965bce3d1d70be5adb2a30d811fcaea4708a9ee" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-secretstorage.inc b/external/meta-iot-cloud/recipes-devtools/python/python-secretstorage.inc
new file mode 100644
index 00000000..877765b9
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-secretstorage.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Python bindings to FreeDesktop.org Secret Service API"
+AUTHOR = "Dmitry Shachnev"
+HOMEPAGE = "https://github.com/mitya57/secretstorage"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-math \
+ ${PYTHON_PN}-netclient \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-cryptography \
+"
+
+PYPI_PACKAGE = "SecretStorage"
+
+inherit pypi \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-setuptools-scm-git-archive.inc b/external/meta-iot-cloud/recipes-devtools/python/python-setuptools-scm-git-archive.inc
new file mode 100644
index 00000000..187451d2
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-setuptools-scm-git-archive.inc
@@ -0,0 +1,22 @@
+SUMMARY = "setuptools_scm plugin for git archives"
+HOMEPAGE = "https://github.com/Changaco/setuptools_scm_git_archive/"
+AUTHOR = "Changaco"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=838c366f69b72c5df05c96dff79b35f2"
+
+PYPI_PACKAGE = "setuptools_scm_git_archive"
+
+DEPENDS += "\
+ ${PYTHON_PN}-setuptools-scm-native \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-setuptools-scm \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "cb4ca99e97edea548117fe0d80cbd089"
+SRC_URI[sha256sum] = "52425f905518247c685fc64c5fdba6e1e74443c8562e141c8de56059be0e31da"
+
+BBCLASSEXTEND = "native"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-sshtunnel.inc b/external/meta-iot-cloud/recipes-devtools/python/python-sshtunnel.inc
new file mode 100644
index 00000000..1eabce24
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-sshtunnel.inc
@@ -0,0 +1,22 @@
+DESCRIPTION = "Pure python SSH tunnels"
+HOMEPAGE = "https://github.com/pahaz/sshtunnel"
+AUTHOR = "Pahaz Blinov"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=099ee2b925d98c72f52684df6fa3ac9f"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-netserver \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-unixadmin \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-paramiko \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "fb16cf0aec60451369ce23a0491c8b9b"
+SRC_URI[sha256sum] = "f29ae41a1bd3afa64e9a31029bece2966e4be9a9641e8262372741e691c40d76" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-tabulate.inc b/external/meta-iot-cloud/recipes-devtools/python/python-tabulate.inc
new file mode 100644
index 00000000..65066f3f
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-tabulate.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Pretty-print tabular data in Python, a library and a command-line utility"
+AUTHOR = "Sergey Astanin"
+HOMEPAGE = "https://bitbucket.org/astanin/python-tabulate"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d66f6ca88dd4fcb1818a28e3c63c1d2e"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-wcwidth \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "9bbaa53754356d837343740fdc70c074"
+SRC_URI[sha256sum] = "e4ca13f26d0a6be2a2915428dc21e732f1e44dad7f76d7030b2ef1ec251cf7f2" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-tempora.inc b/external/meta-iot-cloud/recipes-devtools/python/python-tempora.inc
new file mode 100644
index 00000000..6113d846
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-tempora.inc
@@ -0,0 +1,26 @@
+SUMMARY = "Objects and routines pertaining to date and time"
+AUTHOR = "Jason R. Coombs"
+HOMEPAGE = "https://github.com/jaraco/tempora"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a33f38bbf47d48c70fe0d40e5f77498e"
+
+DEPENDS += "\
+ ${PYTHON_PN}-setuptools-scm-native \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-math \
+ ${PYTHON_PN}-numbers \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-jaraco-functools \
+ ${PYTHON_PN}-pytz \
+ ${PYTHON_PN}-six \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "ab9bb719151aba1aee8a52128d1444d1"
+SRC_URI[sha256sum] = "4848df474c9d7ad9515fbeaadc88e48843176b4b90393652156ccff613bcaeb1"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-vsts-cd-manager.inc b/external/meta-iot-cloud/recipes-devtools/python/python-vsts-cd-manager.inc
new file mode 100644
index 00000000..44dd5939
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-vsts-cd-manager.inc
@@ -0,0 +1,22 @@
+DESCRIPTION = "Python wrapper around some of the VSTS APIs"
+AUTHOR = "Microsoft Corporation"
+HOMEPAGE = "https://github.com/Microsoft/vsts-cd-manager"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${BPN}-${PV}-license;md5=27e94c0280987ab296b0b8dd02ab9fe5"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-netclient \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-msrest \
+"
+
+SRC_URI += "https://github.com/Microsoft/vsts-cd-manager/raw/2649d236be94d119b13e0ac607964c94a9e51fde/LICENSE;downloadfilename=${BPN}-${PV}-license;name=license"
+SRC_URI[license.md5sum] = "27e94c0280987ab296b0b8dd02ab9fe5"
+SRC_URI[license.sha256sum] = "dea9265341829002e2c23a7372393eb2ed6e26085fb623f38a4ba0af833f30a6"
+
+SRC_URI[md5sum] = "22919a67395dda301810b35263b82ac5"
+SRC_URI[sha256sum] = "0bb09059cd553e1c206e92ef324cb0dcf92334846d646c44c684f6256b86447b"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-webob.inc b/external/meta-iot-cloud/recipes-devtools/python/python-webob.inc
new file mode 100644
index 00000000..c99d84e6
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-webob.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "WSGI request and response object"
+HOMEPAGE = "http://webob.org/"
+AUTHOR = "Pylons Project"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://docs/license.txt;md5=8ed3584bcc78c16da363747ccabc5af5"
+
+PR = "r0"
+
+SRC_URI = "git://github.com/Pylons/webob.git;branch=1.7-branch"
+SRCREV = "c4cee625e5b0b0f410e22ca60f701eff98f288d0"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-webrtcvad.inc b/external/meta-iot-cloud/recipes-devtools/python/python-webrtcvad.inc
new file mode 100644
index 00000000..dd6103e3
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-webrtcvad.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Python interface to the Google WebRTC Voice Activity Detector (VAD)"
+HOMEPAGE = "https://github.com/wiseman/py-webrtcvad"
+AUTHOR = "John Wiseman"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=425b45e5a79ac786f2f8e977a3beaad4"
+
+PR = "r0"
+
+SRC_URI = "git://github.com/wiseman/py-webrtcvad.git"
+SRCREV = "bb429dac1a686807c69b916f03dd843fa10b0927"
+
+S = "${WORKDIR}/git"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-xmltodict.inc b/external/meta-iot-cloud/recipes-devtools/python/python-xmltodict.inc
new file mode 100644
index 00000000..a14690ae
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-xmltodict.inc
@@ -0,0 +1,15 @@
+SUMMARY = "Makes working with XML feel like you are working with JSON"
+AUTHOR = "Martin Blech"
+HOMEPAGE = "https://github.com/martinblech/xmltodict"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=01441d50dc74476db58a41ac10cb9fa2"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-xml \
+"
+
+SRC_URI[md5sum] = "9f955947db085485873ac68154e88069"
+SRC_URI[sha256sum] = "8f8d7d40aa28d83f4109a7e8aa86e67a4df202d9538be40c0cb1d70da527b0df"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python-zc-lockfile.inc b/external/meta-iot-cloud/recipes-devtools/python/python-zc-lockfile.inc
new file mode 100644
index 00000000..77a4c93d
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python-zc-lockfile.inc
@@ -0,0 +1,18 @@
+SUMMARY = "Basic inter-process locks"
+AUTHOR = "Zope Foundation"
+HOMEPAGE = "http://www.python.org/pypi/zc.lockfile"
+LICENSE = "ZPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=78ccb3640dc841e1baecb3e27a6966b2"
+
+PYPI_PACKAGE = "zc.lockfile"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-fcntl \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-logging \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "6624ae27089c3c52894ade444d3655b1"
+SRC_URI[sha256sum] = "96cb13769e042988ea25d23d44cf09342ea0f887083d0f9736968f3617665853"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-argcomplete_1.9.4.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-argcomplete_1.9.4.bb
new file mode 100644
index 00000000..0acfa380
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-argcomplete_1.9.4.bb
@@ -0,0 +1,14 @@
+inherit pypi setuptools3 update-alternatives
+require python-argcomplete.inc
+
+ALTERNATIVE_${PN} = "\
+ activate-global-python-argcomplete \
+ python-argcomplete-check-easy-install-script \
+ register-python-argcomplete \
+"
+
+ALTERNATIVE_LINK_NAME[activate-global-python-argcomplete] = "${bindir}/activate-global-python-argcomplete"
+ALTERNATIVE_LINK_NAME[python-argcomplete-check-easy-install-script] = "${bindir}/python-argcomplete-check-easy-install-script"
+ALTERNATIVE_LINK_NAME[register-python-argcomplete] = "${bindir}/register-python-argcomplete"
+
+ALTERNATIVE_PRIORITY = "30"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-cbor_1.0.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-cbor_1.0.0.bb
new file mode 100644
index 00000000..32f7220c
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-cbor_1.0.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-cbor.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-cheroot_6.4.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-cheroot_6.4.0.bb
new file mode 100644
index 00000000..36dd5358
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-cheroot_6.4.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-cheroot.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-cherrypy_17.3.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-cherrypy_17.3.0.bb
new file mode 100644
index 00000000..e925d1f4
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-cherrypy_17.3.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-cherrypy.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-dicttoxml_1.7.4.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-dicttoxml_1.7.4.bb
new file mode 100644
index 00000000..3e08a4cd
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-dicttoxml_1.7.4.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-dicttoxml.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-dill_0.2.6.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-dill_0.2.6.bb
new file mode 100644
index 00000000..4ca5fa4c
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-dill_0.2.6.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-dill.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-docutils_%.bbappend b/external/meta-iot-cloud/recipes-devtools/python/python3-docutils_%.bbappend
new file mode 100644
index 00000000..72bd2f45
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-docutils_%.bbappend
@@ -0,0 +1,31 @@
+inherit update-alternatives
+
+ALTERNATIVE_${PN} = "\
+ rst2html \
+ rst2html4 \
+ rst2html5 \
+ rst2latex \
+ rst2man \
+ rst2odt \
+ rst2odt_prepstyles \
+ rst2pseudoxml \
+ rst2s5 \
+ rst2xetex \
+ rst2xml \
+ rstpep2html \
+"
+
+ALTERNATIVE_LINK_NAME[rst2html] = "${bindir}/rst2html.py"
+ALTERNATIVE_LINK_NAME[rst2html4] = "${bindir}/rst2html4.py"
+ALTERNATIVE_LINK_NAME[rst2html5] = "${bindir}/rst2html5.py"
+ALTERNATIVE_LINK_NAME[rst2latex] = "${bindir}/rst2latex.py"
+ALTERNATIVE_LINK_NAME[rst2man] = "${bindir}/rst2man.py"
+ALTERNATIVE_LINK_NAME[rst2odt] = "${bindir}/rst2odt.py"
+ALTERNATIVE_LINK_NAME[rst2odt_prepstyles] = "${bindir}/rst2odt_prepstyles.py"
+ALTERNATIVE_LINK_NAME[rst2pseudoxml] = "${bindir}/rst2pseudoxml.py"
+ALTERNATIVE_LINK_NAME[rst2s5] = "${bindir}/rst2s5.py"
+ALTERNATIVE_LINK_NAME[rst2xetex] = "${bindir}/rst2xetex.py"
+ALTERNATIVE_LINK_NAME[rst2xml] = "${bindir}/rst2xml.py"
+ALTERNATIVE_LINK_NAME[rstpep2html] = "${bindir}/rstpep2html.py"
+
+ALTERNATIVE_PRIORITY = "30"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-entrypoints_0.2.3.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-entrypoints_0.2.3.bb
new file mode 100644
index 00000000..8541f484
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-entrypoints_0.2.3.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-entrypoints.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-fire_0.2.1.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-fire_0.2.1.bb
new file mode 100644
index 00000000..5c61781f
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-fire_0.2.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-fire.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-httplib2_0.11.3.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-httplib2_0.11.3.bb
new file mode 100644
index 00000000..949e87dd
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-httplib2_0.11.3.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-httplib2.inc \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-janus_0.4.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-janus_0.4.0.bb
new file mode 100644
index 00000000..f8fa41fb
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-janus_0.4.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Mixed sync-async queue to interoperate between asyncio tasks and classic threads"
+AUTHOR = "Andrew Svetlov"
+HOMEPAGE = "https://github.com/aio-libs/janus/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=23878c357ebb4c8ce1109be365043349"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-asyncio \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-typing \
+"
+
+PR = "r0"
+
+SRC_URI[sha256sum] = "cfc221683160b91b35bae1917e2957b78dad10a2e634f4f8ed119ed72e2a88ef"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-jaraco-functools_1.20.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-jaraco-functools_1.20.bb
new file mode 100644
index 00000000..bcc69e90
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-jaraco-functools_1.20.bb
@@ -0,0 +1,6 @@
+inherit pypi setuptools3
+require python-jaraco-functools.inc
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-lang \
+"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-jeepney_0.3.1.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-jeepney_0.3.1.bb
new file mode 100644
index 00000000..aa650355
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-jeepney_0.3.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-jeepney.inc \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-jmespath_0.9.3.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-jmespath_0.9.3.bb
new file mode 100644
index 00000000..6f68011d
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-jmespath_0.9.3.bb
@@ -0,0 +1,12 @@
+inherit pypi setuptools3 update-alternatives
+require python-jmespath.inc
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-stringold \
+"
+
+ALTERNATIVE_${PN} = "jmespath"
+ALTERNATIVE_LINK_NAME[jmespath] = "${bindir}/jp.py"
+ALTERNATIVE_PRIORITY = "30"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-keyring_13.1.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-keyring_13.1.0.bb
new file mode 100644
index 00000000..db8ed6e6
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-keyring_13.1.0.bb
@@ -0,0 +1,6 @@
+inherit pypi setuptools3 update-alternatives
+require python-keyring.inc
+
+ALTERNATIVE_${PN} = "keyring"
+ALTERNATIVE_LINK_NAME[keyring] = "${bindir}/keyring"
+ALTERNATIVE_PRIORITY = "30"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-knack_0.4.1.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-knack_0.4.1.bb
new file mode 100644
index 00000000..b34fdba0
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-knack_0.4.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-knack.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-mapbox_0.18.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-mapbox_0.18.0.bb
new file mode 100644
index 00000000..652710f1
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-mapbox_0.18.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "A Python client for Mapbox services"
+HOMEPAGE = "https://pypi.org/project/mapbox/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+SRC_URI[md5sum] = "7e5a55af6054f9d0681313855814512c"
+SRC_URI[sha256sum] = "3e9a098524a6b855f39fd5e773fb21526ef9660291f12b147e98fd44c7573e0b"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "\
+ python3-boto3 \
+ python3-cachecontrol \
+ python3-dateutil \
+ python3-iso3166 \
+ python3-polyline \
+ python3-requests \
+ python3-uritemplate \
+"
+
+RDEPENDS_${PN} += "python3-core python3-json python3-netclient python3-numbers"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-memcached_1.59.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-memcached_1.59.bb
new file mode 100644
index 00000000..6e704003
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-memcached_1.59.bb
@@ -0,0 +1,6 @@
+inherit pypi setuptools3
+require python-memcached.inc
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-compression \
+"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-paramiko_2.4.1.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-paramiko_2.4.1.bb
new file mode 100644
index 00000000..0ffcc115
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-paramiko_2.4.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-paramiko.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-portend_2.3.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-portend_2.3.bb
new file mode 100644
index 00000000..478b411c
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-portend_2.3.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-portend.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-pydocumentdb_2.3.2.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-pydocumentdb_2.3.2.bb
new file mode 100644
index 00000000..5a02b72c
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-pydocumentdb_2.3.2.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-pydocumentdb.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-pyjwt_%.bbappend b/external/meta-iot-cloud/recipes-devtools/python/python3-pyjwt_%.bbappend
new file mode 100644
index 00000000..f904e343
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-pyjwt_%.bbappend
@@ -0,0 +1,5 @@
+inherit update-alternatives
+
+ALTERNATIVE_${PN} = "pyjwt"
+ALTERNATIVE_LINK_NAME[pyjwt] = "${bindir}/pyjwt"
+ALTERNATIVE_PRIORITY = "30"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-repoze-lru_0.6.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-repoze-lru_0.6.bb
new file mode 100644
index 00000000..c152fd00
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-repoze-lru_0.6.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-repoze-lru.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-requests-toolbelt_0.8.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-requests-toolbelt_0.8.0.bb
new file mode 100644
index 00000000..0a673a7b
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-requests-toolbelt_0.8.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-requests-toolbelt.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-requests-unixsocket_0.2.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-requests-unixsocket_0.2.0.bb
new file mode 100644
index 00000000..587d6d21
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-requests-unixsocket_0.2.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Use requests to talk HTTP via a UNIX domain socket"
+HOMEPAGE = "https://github.com/msabramo/requests-unixsocket"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+
+inherit pypi setuptools3
+
+DEPENDS += "\
+ python3-pbr-native \
+"
+
+RDEPENDS_${PN} += "\
+ python3-requests \
+ python3-urllib3 \
+"
+
+RDEPENDS_${PN} += " \
+ python3-io \
+"
+
+SRC_URI[sha256sum] = "9e5c1a20afc3cf786197ae59c79bcdb0e7565f218f27df5f891307ee8817c1ea"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-routes_2.4.1.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-routes_2.4.1.bb
new file mode 100644
index 00000000..06dd1ad7
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-routes_2.4.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-routes.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-rsa_3.4.2.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-rsa_3.4.2.bb
new file mode 100644
index 00000000..05d0e74f
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-rsa_3.4.2.bb
@@ -0,0 +1,22 @@
+inherit pypi setuptools3 update-alternatives
+require python-rsa.inc
+
+ALTERNATIVE_${PN} = "\
+ pyrsa-decrypt \
+ pyrsa-decrypt-bigfile \
+ pyrsa-encrypt \
+ pyrsa-encrypt-bigfile \
+ pyrsa-keygen \
+ pyrsa-priv2pub \
+ pyrsa-sign \
+ pyrsa-verify \
+"
+ALTERNATIVE_LINK_NAME[pyrsa-decrypt] = "${bindir}/pyrsa-decrypt"
+ALTERNATIVE_LINK_NAME[pyrsa-decrypt-bigfile] = "${bindir}/pyrsa-decrypt-bigfile"
+ALTERNATIVE_LINK_NAME[pyrsa-encrypt] = "${bindir}/pyrsa-encrypt"
+ALTERNATIVE_LINK_NAME[pyrsa-encrypt-bigfile] = "${bindir}/pyrsa-encrypt-bigfile"
+ALTERNATIVE_LINK_NAME[pyrsa-keygen] = "${bindir}/pyrsa-keygen"
+ALTERNATIVE_LINK_NAME[pyrsa-priv2pub] = "${bindir}/pyrsa-priv2pub"
+ALTERNATIVE_LINK_NAME[pyrsa-sign] = "${bindir}/pyrsa-sign"
+ALTERNATIVE_LINK_NAME[pyrsa-verify] = "${bindir}/pyrsa-verify"
+ALTERNATIVE_PRIORITY = "30"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-scandir_1.5.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-scandir_1.5.bb
new file mode 100644
index 00000000..2f4fb20b
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-scandir_1.5.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-scandir.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-scp_0.11.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-scp_0.11.0.bb
new file mode 100644
index 00000000..fe77e463
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-scp_0.11.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-scp.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-secretstorage_3.0.1.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-secretstorage_3.0.1.bb
new file mode 100644
index 00000000..300e04cc
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-secretstorage_3.0.1.bb
@@ -0,0 +1,12 @@
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c49a7ec562572351456ea021b15dc882"
+
+inherit setuptools3
+require python-secretstorage.inc
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-jeepney \
+"
+
+SRC_URI[md5sum] = "a30efe5f34e3f6c522ff2b3826f567ba"
+SRC_URI[sha256sum] = "819087ca89c0d6c5711692f41fb26f786af9dcc5bb89d567722a66edfbb2a689" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-setuptools-scm-git-archive_1.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-setuptools-scm-git-archive_1.0.bb
new file mode 100644
index 00000000..4efd9529
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-setuptools-scm-git-archive_1.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-setuptools-scm-git-archive.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-sshtunnel_0.1.4.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-sshtunnel_0.1.4.bb
new file mode 100644
index 00000000..a5fa51f0
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-sshtunnel_0.1.4.bb
@@ -0,0 +1,6 @@
+inherit pypi setuptools3 update-alternatives
+require python-sshtunnel.inc
+
+ALTERNATIVE_${PN} = "sshtunnel"
+ALTERNATIVE_LINK_NAME[sshtunnel] = "${bindir}/sshtunnel"
+ALTERNATIVE_PRIORITY = "30"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-tabulate_0.8.2.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-tabulate_0.8.2.bb
new file mode 100644
index 00000000..87755892
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-tabulate_0.8.2.bb
@@ -0,0 +1,6 @@
+inherit pypi setuptools3 update-alternatives
+require python-tabulate.inc
+
+ALTERNATIVE_${PN} = "tabulate"
+ALTERNATIVE_LINK_NAME[tabulate] = "${bindir}/tabulate"
+ALTERNATIVE_PRIORITY = "30"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-tempora_1.13.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-tempora_1.13.bb
new file mode 100644
index 00000000..ce42a589
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-tempora_1.13.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-tempora.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-transitions_0.8.1.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-transitions_0.8.1.bb
new file mode 100644
index 00000000..107e98c6
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-transitions_0.8.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "A lightweight, object-oriented Python state machine implementation with many extensions."
+AUTHOR = "Tal Yarkoni"
+HOMEPAGE = "http://github.com/pytransitions/transitions"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8734a2c2e13bbf9c2fd1b6cb64af8219"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-six \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-asyncio \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-numbers \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-typing \
+"
+
+PR = "r0"
+
+SRC_URI[sha256sum] = "2b8cf2078ed189ffbb0f29421798d7a63ff0d7823682a0d69c01bd8240363cac"
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-vsts-cd-manager_1.0.2.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-vsts-cd-manager_1.0.2.bb
new file mode 100644
index 00000000..91b6c614
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-vsts-cd-manager_1.0.2.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-vsts-cd-manager.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-webob_1.7.2.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-webob_1.7.2.bb
new file mode 100644
index 00000000..18e087c2
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-webob_1.7.2.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-webob.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-webrtcvad_2.0.10.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-webrtcvad_2.0.10.bb
new file mode 100644
index 00000000..717ed6bd
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-webrtcvad_2.0.10.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-webrtcvad.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-xmltodict_0.11.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-xmltodict_0.11.0.bb
new file mode 100644
index 00000000..a593d010
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-xmltodict_0.11.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-xmltodict.inc
diff --git a/external/meta-iot-cloud/recipes-devtools/python/python3-zc-lockfile_1.3.0.bb b/external/meta-iot-cloud/recipes-devtools/python/python3-zc-lockfile_1.3.0.bb
new file mode 100644
index 00000000..2b73b60d
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-devtools/python/python3-zc-lockfile_1.3.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-zc-lockfile.inc
diff --git a/external/meta-iot-cloud/recipes-google-cloud/google-cloud-sdk/google-cloud-sdk.inc b/external/meta-iot-cloud/recipes-google-cloud/google-cloud-sdk/google-cloud-sdk.inc
new file mode 100644
index 00000000..be187f1f
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/google-cloud-sdk/google-cloud-sdk.inc
@@ -0,0 +1,54 @@
+RDEPENDS_${PN} = "\
+ bash \
+ python3 \
+ python3-grpcio \
+"
+
+# Default packages
+PACKAGES = "\
+ ${PN} \
+"
+
+do_compile[noexec] = "1"
+
+do_configure() {
+ # Disable updater
+ sed -i 's|"disable_updater": false|"disable_updater": true|g' ${S}/lib/googlecloudsdk/core/config.json
+}
+
+# Remove non-arch independent dependencies
+do_install_prepend() {
+ rm -rf ${S}/lib/third_party/grpc
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -d ${D}${libdir}/${BPN}
+ install -d ${D}${sysconfdir}/bash_completion.d
+
+ install -m 0644 ${S}/completion.bash.inc ${D}${libdir}/${BPN}
+ install -m 0644 ${S}/properties ${D}${libdir}/${BPN}
+ install -m 0644 ${S}/README ${D}${libdir}/${BPN}
+ install -m 0644 ${S}/RELEASE_NOTES ${D}${libdir}/${BPN}
+ install -m 0644 ${S}/VERSION ${D}${libdir}/${BPN}
+
+ cp -r ${S}/.install ${D}${libdir}/${BPN}
+ cp -r ${S}/bin ${D}${libdir}/${BPN}
+ cp -r ${S}/data ${D}${libdir}/${BPN}
+ cp -r ${S}/lib ${D}${libdir}/${BPN}
+ cp -r ${S}/platform ${D}${libdir}/${BPN}
+
+ # Symlinks
+ ln -s ${libdir}/${BPN}/completion.bash.inc ${D}${sysconfdir}/bash_completion.d/gcloud
+ ln -s ${libdir}/${BPN}/bin/bq ${D}${bindir}/bq
+ ln -s ${libdir}/${BPN}/bin/docker-credential-gcloud ${D}${bindir}/docker-credential-gcloud
+ ln -s ${libdir}/${BPN}/bin/gcloud ${D}${bindir}/gcloud
+ ln -s ${libdir}/${BPN}/bin/git-credential-gcloud.sh ${D}${bindir}/git-credential-gcloud.sh
+ ln -s ${libdir}/${BPN}/bin/gsutil ${D}${bindir}/gsutil
+}
+
+FILES_${PN} = "\
+ ${bindir} \
+ ${libdir}/${BPN} \
+ ${sysconfdir}/bash_completion.d \
+"
diff --git a/external/meta-iot-cloud/recipes-google-cloud/google-cloud-sdk/google-cloud-sdk_277.0.0.bb b/external/meta-iot-cloud/recipes-google-cloud/google-cloud-sdk/google-cloud-sdk_277.0.0.bb
new file mode 100644
index 00000000..2341db83
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/google-cloud-sdk/google-cloud-sdk_277.0.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Command-line interface for Google Cloud Platform products and services"
+HOMEPAGE = "https://cloud.google.com/sdk/"
+AUTHOR = "Google Cloud Platform"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d02c4ee3b2a6ba87eea7b6756fd43895"
+
+SRC_URI = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${BPN}-${PV}-linux-x86_64.tar.gz"
+SRC_URI[md5sum] = "653aa306f499b9bf44beb52655403935"
+SRC_URI[sha256sum] = "b158894c427712d006fac235daf8d288db110ecfbcf649ed11cdf36ac2b2ff2a"
+
+PR = "r0"
+
+S = "${WORKDIR}/${BPN}"
+
+require google-cloud-sdk.inc
diff --git a/external/meta-iot-cloud/recipes-google-cloud/node-red-contrib-google-cloud/node-red-contrib-google-cloud/npm-shrinkwrap.json b/external/meta-iot-cloud/recipes-google-cloud/node-red-contrib-google-cloud/node-red-contrib-google-cloud/npm-shrinkwrap.json
new file mode 100644
index 00000000..5c6bd409
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/node-red-contrib-google-cloud/node-red-contrib-google-cloud/npm-shrinkwrap.json
@@ -0,0 +1,5163 @@
+{
+ "name": "node-red-contrib-google-cloud",
+ "version": "0.0.12",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz",
+ "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ },
+ "@google-cloud/bigquery": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/bigquery/-/bigquery-4.7.0.tgz",
+ "integrity": "sha512-u3VN1VUWcbVaW2vH5v2t0Zn5RSC4Hj3VCpf6sUO5xqcNTcHQyrjSd21aIBk28HgQO1H+9Gd1E0tGBfknGNONHw==",
+ "requires": {
+ "@google-cloud/common": "^2.0.0",
+ "@google-cloud/paginator": "^2.0.0",
+ "@google-cloud/promisify": "^1.0.0",
+ "arrify": "^2.0.1",
+ "big.js": "^5.2.2",
+ "duplexify": "^4.0.0",
+ "extend": "^3.0.2",
+ "is": "^3.3.0",
+ "stream-events": "^1.0.5",
+ "string-format-obj": "^1.1.1",
+ "uuid": "^3.3.2"
+ }
+ },
+ "@google-cloud/common": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-2.3.0.tgz",
+ "integrity": "sha512-nmIyi3q/FL2j6ZJ61xK/863DoJEZayI2/W/iCgwrCYUYsem277XO45MBTAimjgiKBCA0c9InmQyfT48h/IK4jg==",
+ "requires": {
+ "@google-cloud/projectify": "^1.0.0",
+ "@google-cloud/promisify": "^1.0.0",
+ "arrify": "^2.0.0",
+ "duplexify": "^3.6.0",
+ "ent": "^2.2.0",
+ "extend": "^3.0.2",
+ "google-auth-library": "^5.5.0",
+ "retry-request": "^4.0.0",
+ "teeny-request": "^6.0.0"
+ },
+ "dependencies": {
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ }
+ }
+ },
+ "@google-cloud/dlp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/dlp/-/dlp-2.0.0.tgz",
+ "integrity": "sha512-opMiNRWrNM4DPnwQH7FiIfRBnHRrFZuopFHl6r+Kry/MQNn8t0hQqytKZblPQ6fLo8f6OMQ0V38m7tShVv34jQ==",
+ "requires": {
+ "google-gax": "^1.9.0",
+ "protobufjs": "^6.8.0"
+ }
+ },
+ "@google-cloud/firestore": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-3.4.1.tgz",
+ "integrity": "sha512-k3PPcLvP9wr4yyA0djzfPdj2ZewburifhpcFACa0wiXvjXj3Ob68MORcPC3a3wyonX73TY72RsEGPk4Ult0Dyw==",
+ "requires": {
+ "deep-equal": "^2.0.0",
+ "functional-red-black-tree": "^1.0.1",
+ "google-gax": "^1.13.0",
+ "readable-stream": "^3.4.0",
+ "through2": "^3.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+ "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "@google-cloud/language": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/@google-cloud/language/-/language-3.7.1.tgz",
+ "integrity": "sha512-yA96htfUvIyMccaD9JoVc5nZf22OZ6NCYvKc+ZcXwpP2a4UhNX90LlMjWq487lLwlyKesOOeMu3d72E+4yIpHg==",
+ "requires": {
+ "google-gax": "^1.9.0"
+ }
+ },
+ "@google-cloud/logging": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/logging/-/logging-7.1.0.tgz",
+ "integrity": "sha512-0E2ywYYcR/6aZdaPjjX4qe6EN4DciZQMhtAeSZJl3tJZ+L/BUZajodhadwXm3AJ0syEzsqmsOeEBNEBLEtD8XQ==",
+ "requires": {
+ "@google-cloud/common": "^2.2.2",
+ "@google-cloud/paginator": "^2.0.0",
+ "@google-cloud/projectify": "^1.0.0",
+ "@google-cloud/promisify": "^1.0.0",
+ "@opencensus/propagation-stackdriver": "0.0.19",
+ "arrify": "^2.0.0",
+ "dot-prop": "^5.1.0",
+ "eventid": "^1.0.0",
+ "extend": "^3.0.2",
+ "gcp-metadata": "^3.1.0",
+ "google-auth-library": "^5.2.2",
+ "google-gax": "^1.11.0",
+ "is": "^3.3.0",
+ "on-finished": "^2.3.0",
+ "pumpify": "^2.0.0",
+ "snakecase-keys": "^3.0.0",
+ "stream-events": "^1.0.4",
+ "through2": "^3.0.0",
+ "type-fest": "^0.9.0"
+ }
+ },
+ "@google-cloud/monitoring": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/monitoring/-/monitoring-1.7.0.tgz",
+ "integrity": "sha512-CcCiX1WwY+iPOTRxguMSC8X3ys+yvUDrPJA2Aq2xeNI1bRcfhL/GzZq5/Jljv4qpxCWjq4P/3wQx6DoMPFIaBg==",
+ "requires": {
+ "google-gax": "^1.7.5"
+ }
+ },
+ "@google-cloud/paginator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-2.0.3.tgz",
+ "integrity": "sha512-kp/pkb2p/p0d8/SKUu4mOq8+HGwF8NPzHWkj+VKrIPQPyMRw8deZtrO/OcSiy9C/7bpfU5Txah5ltUNfPkgEXg==",
+ "requires": {
+ "arrify": "^2.0.0",
+ "extend": "^3.0.2"
+ }
+ },
+ "@google-cloud/precise-date": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-1.0.3.tgz",
+ "integrity": "sha512-wWnDGh9y3cJHLuVEY8t6un78vizzMWsS7oIWKeFtPj+Ndy+dXvHW0HTx29ZUhen+tswSlQYlwFubvuRP5kKdzQ=="
+ },
+ "@google-cloud/projectify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-1.0.4.tgz",
+ "integrity": "sha512-ZdzQUN02eRsmTKfBj9FDL0KNDIFNjBn/d6tHQmA/+FImH5DO6ZV8E7FzxMgAUiVAUq41RFAkb25p1oHOZ8psfg=="
+ },
+ "@google-cloud/promisify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-1.0.4.tgz",
+ "integrity": "sha512-VccZDcOql77obTnFh0TbNED/6ZbbmHDf8UMNnzO1d5g9V0Htfm4k5cllY8P1tJsRKC3zWYGRLaViiupcgVjBoQ=="
+ },
+ "@google-cloud/pubsub": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-1.4.1.tgz",
+ "integrity": "sha512-WDUrGisO6Xiy9+N00dzOvgc0ZV8hgwEzYQCacYwLU3DAlDm6ad/QR6TubJE2OHQ6VcCtzKQPMMi7yt1iCu75NA==",
+ "requires": {
+ "@google-cloud/paginator": "^2.0.0",
+ "@google-cloud/precise-date": "^1.0.0",
+ "@google-cloud/projectify": "^1.0.0",
+ "@google-cloud/promisify": "^1.0.0",
+ "@types/duplexify": "^3.6.0",
+ "@types/long": "^4.0.0",
+ "arrify": "^2.0.0",
+ "async-each": "^1.0.1",
+ "extend": "^3.0.2",
+ "google-auth-library": "^5.5.0",
+ "google-gax": "^1.7.5",
+ "is-stream-ended": "^0.1.4",
+ "lodash.snakecase": "^4.1.1",
+ "p-defer": "^3.0.0",
+ "protobufjs": "^6.8.1"
+ }
+ },
+ "@google-cloud/speech": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/speech/-/speech-3.6.0.tgz",
+ "integrity": "sha512-ddnuXLhgVDONjYz66adqmWLBytCYGlQDkt0jiSszOHzCe36aCCaS92f87Txf8u4y9BZk34nOspIFxN2O7o8kfQ==",
+ "requires": {
+ "@google-cloud/common": "^2.0.0",
+ "@types/pumpify": "^1.4.1",
+ "google-gax": "^1.11.1",
+ "protobufjs": "^6.8.6",
+ "pumpify": "^2.0.0",
+ "stream-events": "^1.0.4"
+ }
+ },
+ "@google-cloud/storage": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-4.3.0.tgz",
+ "integrity": "sha512-ph0jsUsZ9FPtN40V5eIkKPLUmxnTpxqBDkWxStW/kbQZgoNVGW9vJcbsYSyE4ath7jQIpM4OHu6aqmPFX1OnGw==",
+ "requires": {
+ "@google-cloud/common": "^2.1.1",
+ "@google-cloud/paginator": "^2.0.0",
+ "@google-cloud/promisify": "^1.0.0",
+ "arrify": "^2.0.0",
+ "compressible": "^2.0.12",
+ "concat-stream": "^2.0.0",
+ "date-and-time": "^0.12.0",
+ "duplexify": "^3.5.0",
+ "extend": "^3.0.2",
+ "gaxios": "^2.0.1",
+ "gcs-resumable-upload": "^2.2.4",
+ "hash-stream-validation": "^0.2.2",
+ "mime": "^2.2.0",
+ "mime-types": "^2.0.8",
+ "onetime": "^5.1.0",
+ "p-limit": "^2.2.0",
+ "pumpify": "^2.0.0",
+ "readable-stream": "^3.4.0",
+ "snakeize": "^0.1.0",
+ "stream-events": "^1.0.1",
+ "through2": "^3.0.0",
+ "xdg-basedir": "^4.0.0"
+ },
+ "dependencies": {
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+ "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "@google-cloud/tasks": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@google-cloud/tasks/-/tasks-1.7.2.tgz",
+ "integrity": "sha512-W34uIKgBAW0VeTHzmqsrjA+tEhII9RFBBiQQC4jPFO1iovMICvn2GdJF/fNLvHkrEvkKZpkn9Avy9koXrPeU+w==",
+ "requires": {
+ "google-gax": "^1.9.0"
+ }
+ },
+ "@google-cloud/translate": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@google-cloud/translate/-/translate-5.1.5.tgz",
+ "integrity": "sha512-c5cdEd9MQrrNj1nvE+X5Q1T1+QJvhZZj/daMgCLYUcZWdsgPxWFOigFNAwDd3OJuOKIeXkM1y20gPOxhHcs5Gw==",
+ "requires": {
+ "@google-cloud/common": "^2.0.0",
+ "@google-cloud/promisify": "^1.0.0",
+ "arrify": "^2.0.0",
+ "extend": "^3.0.2",
+ "google-gax": "^1.11.1",
+ "is": "^3.2.1",
+ "is-html": "^2.0.0",
+ "protobufjs": "^6.8.8"
+ }
+ },
+ "@google-cloud/vision": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@google-cloud/vision/-/vision-1.8.0.tgz",
+ "integrity": "sha512-MNWogL5xI8VJEJIdIFbQKjLarNkeezi5RcnHRZPXOh+D0Dp3EBavWtDGm6FtdXWG5iqZ3vjIIRyM24QAV7G3wA==",
+ "requires": {
+ "@google-cloud/promisify": "^1.0.0",
+ "google-gax": "^1.7.5",
+ "is": "^3.2.1"
+ }
+ },
+ "@grpc/grpc-js": {
+ "version": "0.6.16",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-0.6.16.tgz",
+ "integrity": "sha512-TckwrK2duWTeqE/fYQ5JaLMDwqLuun0B/yswf8Bb9Pb7vb5xGd3iulmcnnaA2RDVd/abQTHnkSAjfRibYU24eQ==",
+ "requires": {
+ "semver": "^6.2.0"
+ }
+ },
+ "@grpc/proto-loader": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.3.tgz",
+ "integrity": "sha512-8qvUtGg77G2ZT2HqdqYoM/OY97gQd/0crSG34xNmZ4ZOsv3aQT/FQV9QfZPazTGna6MIoyUd+u6AxsoZjJ/VMQ==",
+ "requires": {
+ "lodash.camelcase": "^4.3.0",
+ "protobufjs": "^6.8.6"
+ }
+ },
+ "@node-red/editor-api": {
+ "version": "0.20.8",
+ "resolved": "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-0.20.8.tgz",
+ "integrity": "sha512-VaetYYU/gu4CgUs80ymiBg9BVw4Ge4kYF4NPgs4S8t/c1BRz2ZZd5idCDw7MaN602eDiYnspx3QMH8X3sqYsTQ==",
+ "dev": true,
+ "requires": {
+ "@node-red/editor-client": "0.20.8",
+ "@node-red/util": "0.20.8",
+ "bcrypt": "3.0.6",
+ "bcryptjs": "2.4.3",
+ "body-parser": "1.19.0",
+ "clone": "2.1.2",
+ "cors": "2.8.5",
+ "express": "4.17.1",
+ "express-session": "1.16.2",
+ "memorystore": "1.6.1",
+ "mime": "2.4.4",
+ "mustache": "3.0.1",
+ "oauth2orize": "1.11.0",
+ "passport": "0.4.0",
+ "passport-http-bearer": "1.0.1",
+ "passport-oauth2-client-password": "0.1.2",
+ "when": "3.7.8",
+ "ws": "6.2.1"
+ }
+ },
+ "@node-red/editor-client": {
+ "version": "0.20.8",
+ "resolved": "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-0.20.8.tgz",
+ "integrity": "sha512-TyZ+ma0jRU/T0BChpl17hHa0cMOnPX9DYFbpyT8p5ghRHIHYYL/3rFFflwB+5bAwbK1Y8Z2LKB7dngzL7jzpTQ==",
+ "dev": true
+ },
+ "@node-red/nodes": {
+ "version": "0.20.8",
+ "resolved": "https://registry.npmjs.org/@node-red/nodes/-/nodes-0.20.8.tgz",
+ "integrity": "sha512-yR+kNSkUQowQLHpk7buY36Pz5utA3q3n/49LvgvyxxRwgOPUBv4KNaFLDipUjqgD2spaznh+VTAMT8UUO0xeig==",
+ "dev": true,
+ "requires": {
+ "ajv": "6.10.0",
+ "body-parser": "1.19.0",
+ "cheerio": "0.22.0",
+ "content-type": "1.0.4",
+ "cookie": "0.4.0",
+ "cookie-parser": "1.4.4",
+ "cors": "2.8.5",
+ "cron": "1.7.1",
+ "denque": "1.4.1",
+ "fs-extra": "8.1.0",
+ "fs.notify": "0.0.4",
+ "hash-sum": "2.0.0",
+ "https-proxy-agent": "2.2.1",
+ "iconv-lite": "0.5.0",
+ "is-utf8": "0.2.1",
+ "js-yaml": "3.13.1",
+ "media-typer": "1.1.0",
+ "mqtt": "2.18.8",
+ "multer": "1.4.1",
+ "mustache": "3.0.1",
+ "on-headers": "1.0.2",
+ "raw-body": "2.4.1",
+ "request": "2.88.0",
+ "ws": "6.2.1",
+ "xml2js": "0.4.19"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+ "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+ "dev": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ }
+ },
+ "ajv": {
+ "version": "6.10.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
+ "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
+ "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
+ "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
+ "dev": true,
+ "requires": {
+ "agent-base": "^4.1.0",
+ "debug": "^3.1.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz",
+ "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "media-typer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
+ "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz",
+ "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.3",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ }
+ }
+ }
+ }
+ },
+ "@node-red/registry": {
+ "version": "0.20.8",
+ "resolved": "https://registry.npmjs.org/@node-red/registry/-/registry-0.20.8.tgz",
+ "integrity": "sha512-3B5wYJOAWNLa3qhzdFZYqHa8X2+U4mdno6f0GQ2vzaNMdcxM9VvkpXLvmnThcQJsYqbxAiwuaUZUL1mX0KePsA==",
+ "dev": true,
+ "requires": {
+ "@node-red/util": "0.20.8",
+ "semver": "6.2.0",
+ "uglify-js": "3.6.0",
+ "when": "3.7.8"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
+ "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
+ "dev": true
+ }
+ }
+ },
+ "@node-red/runtime": {
+ "version": "0.20.8",
+ "resolved": "https://registry.npmjs.org/@node-red/runtime/-/runtime-0.20.8.tgz",
+ "integrity": "sha512-R7X3E8VXGlzXbYd0hTqhgU8rzyc2uNXDb3u37C3rduCViotcKWrQho4n/UdQS4H+T1Bu0H6Zoo+1EGAsQ92nGA==",
+ "dev": true,
+ "requires": {
+ "@node-red/registry": "0.20.8",
+ "@node-red/util": "0.20.8",
+ "clone": "2.1.2",
+ "express": "4.17.1",
+ "fs-extra": "8.1.0",
+ "json-stringify-safe": "5.0.1",
+ "when": "3.7.8"
+ }
+ },
+ "@node-red/util": {
+ "version": "0.20.8",
+ "resolved": "https://registry.npmjs.org/@node-red/util/-/util-0.20.8.tgz",
+ "integrity": "sha512-tid1o8fy94b6XU6/8cVDm5Kn9tNWm1AoaLPrhfDxJaObtrcHC6KtEhJJxPq61nhzZxJOuT/DHqBUGwTXTKg7Zg==",
+ "dev": true,
+ "requires": {
+ "clone": "2.1.2",
+ "i18next": "15.1.0",
+ "json-stringify-safe": "5.0.1",
+ "jsonata": "1.6.5",
+ "when": "3.7.8"
+ }
+ },
+ "@opencensus/core": {
+ "version": "0.0.19",
+ "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.19.tgz",
+ "integrity": "sha512-Y5QXa7vggMU0+jveLcworfX9jNnztix7x1NraAV0uGkTp4y46HrFl0DnNcnNxUDvBu/cYeWRwlmhiWlr9+adOQ==",
+ "requires": {
+ "continuation-local-storage": "^3.2.1",
+ "log-driver": "^1.2.7",
+ "semver": "^6.0.0",
+ "shimmer": "^1.2.0",
+ "uuid": "^3.2.1"
+ }
+ },
+ "@opencensus/propagation-stackdriver": {
+ "version": "0.0.19",
+ "resolved": "https://registry.npmjs.org/@opencensus/propagation-stackdriver/-/propagation-stackdriver-0.0.19.tgz",
+ "integrity": "sha512-TTL9KIOkvTpd+DT2gj3R3JP7XqOAf69ab/wzxIwpBlFqfRiIFBkOALyC/Gy4pKooAe5DemDhXZuRtIa0PgfoZQ==",
+ "requires": {
+ "@opencensus/core": "^0.0.19",
+ "hex2dec": "^1.0.1",
+ "uuid": "^3.2.1"
+ }
+ },
+ "@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78="
+ },
+ "@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
+ },
+ "@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
+ },
+ "@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
+ },
+ "@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
+ "requires": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
+ },
+ "@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
+ },
+ "@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
+ },
+ "@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
+ },
+ "@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
+ },
+ "@sinonjs/commons": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.0.tgz",
+ "integrity": "sha512-qbk9AP+cZUsKdW1GJsBpxPKFmCJ0T8swwzVje3qFd+AkQb74Q/tiuzrdfFg8AD2g5HH/XbE/I8Uc1KYHVYWfhg==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/formatio": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz",
+ "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==",
+ "dev": true,
+ "requires": {
+ "samsam": "1.3.0"
+ }
+ },
+ "@sinonjs/samsam": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz",
+ "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.3.0",
+ "array-from": "^2.1.1",
+ "lodash": "^4.17.15"
+ }
+ },
+ "@sinonjs/text-encoding": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
+ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
+ "dev": true
+ },
+ "@types/duplexify": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz",
+ "integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/fs-extra": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.0.1.tgz",
+ "integrity": "sha512-J00cVDALmi/hJOYsunyT52Hva5TnJeKP5yd1r+mH/ZU0mbYZflR0Z5kw5kITtKTRYMhm1JMClOFYdHnQszEvqw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/long": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
+ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
+ },
+ "@types/node": {
+ "version": "10.17.14",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.14.tgz",
+ "integrity": "sha512-G0UmX5uKEmW+ZAhmZ6PLTQ5eu/VPaT+d/tdLd5IFsKRPcbe6lPxocBtcYBFSaLaCW8O60AX90e91Nsp8lVHCNw=="
+ },
+ "@types/pumpify": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@types/pumpify/-/pumpify-1.4.1.tgz",
+ "integrity": "sha512-l7u/Dnh1OG9T7VH6TvulR0g8oE8hgIW5409mSUKi8Vxw2+JV18aTa06Sv5bvNjrD0zbsB/cuZ/iTFQgFNfzIuw==",
+ "requires": {
+ "@types/duplexify": "*",
+ "@types/node": "*"
+ }
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "requires": {
+ "event-target-shim": "^5.0.0"
+ }
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "addressparser": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz",
+ "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=",
+ "dev": true
+ },
+ "agent-base": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
+ "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g=="
+ },
+ "ajv": {
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
+ "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "append-field": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
+ "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=",
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "array-from": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz",
+ "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=",
+ "dev": true
+ },
+ "array-indexofobject": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz",
+ "integrity": "sha1-qqEo5iybPDWAlFaMIZ/2T+SJ1Co=",
+ "dev": true
+ },
+ "arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug=="
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "async": {
+ "version": "0.1.22",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
+ "dev": true
+ },
+ "async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "dev": true
+ },
+ "async-listener": {
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz",
+ "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==",
+ "requires": {
+ "semver": "^5.3.0",
+ "shimmer": "^1.1.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+ },
+ "aws4": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
+ "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base64-js": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
+ },
+ "basic-auth": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
+ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "bcrypt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-3.0.6.tgz",
+ "integrity": "sha512-taA5bCTfXe7FUjKroKky9EXpdhkVvhE5owfxfLYodbrAR1Ul3juLmIQmIQBK4L9a5BuUcE6cqmwT+Da20lF9tg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "2.13.2",
+ "node-pre-gyp": "0.12.0"
+ }
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bcryptjs": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
+ "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=",
+ "dev": true
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
+ },
+ "bignumber.js": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
+ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ=="
+ },
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
+ }
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "busboy": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
+ "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
+ "dev": true,
+ "requires": {
+ "dicer": "0.2.5",
+ "readable-stream": "1.1.x"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "dev": true
+ },
+ "callback-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz",
+ "integrity": "sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "> 1.0.0 < 3.0.0"
+ }
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "cheerio": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
+ "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=",
+ "dev": true,
+ "requires": {
+ "css-select": "~1.2.0",
+ "dom-serializer": "~0.1.0",
+ "entities": "~1.1.1",
+ "htmlparser2": "^3.9.1",
+ "lodash.assignin": "^4.0.9",
+ "lodash.bind": "^4.1.4",
+ "lodash.defaults": "^4.0.1",
+ "lodash.filter": "^4.4.0",
+ "lodash.flatten": "^4.2.0",
+ "lodash.foreach": "^4.3.0",
+ "lodash.map": "^4.4.0",
+ "lodash.merge": "^4.4.0",
+ "lodash.pick": "^4.2.1",
+ "lodash.reduce": "^4.4.0",
+ "lodash.reject": "^4.4.0",
+ "lodash.some": "^4.4.0"
+ }
+ },
+ "chownr": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
+ "dev": true,
+ "optional": true
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
+ "dev": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "commist": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz",
+ "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==",
+ "dev": true,
+ "requires": {
+ "leven": "^2.1.0",
+ "minimist": "^1.1.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "requires": {
+ "mime-db": ">= 1.43.0 < 2"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+ "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "configstore": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.0.tgz",
+ "integrity": "sha512-eE/hvMs7qw7DlcB5JPRnthmrITuHMmACUJAp89v6PT6iOqzoLS7HRWhBtuHMlhNHo2AhUSA/3Dh1bKNJHcublQ==",
+ "requires": {
+ "dot-prop": "^5.1.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^3.0.0",
+ "unique-string": "^2.0.0",
+ "write-file-atomic": "^3.0.0",
+ "xdg-basedir": "^4.0.0"
+ }
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true
+ },
+ "continuation-local-storage": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz",
+ "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==",
+ "requires": {
+ "async-listener": "^0.6.0",
+ "emitter-listener": "^1.1.1"
+ }
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+ "dev": true
+ },
+ "cookie-parser": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz",
+ "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==",
+ "dev": true,
+ "requires": {
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+ "dev": true
+ }
+ }
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "cookiejar": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
+ "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "cron": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/cron/-/cron-1.7.1.tgz",
+ "integrity": "sha512-gmMB/pJcqUVs/NklR1sCGlNYM7TizEw+1gebz20BMc/8bTm/r7QUp3ZPSPlG8Z5XRlvb7qhjEjq/+bdIfUCL2A==",
+ "dev": true,
+ "requires": {
+ "moment-timezone": "^0.5.x"
+ }
+ },
+ "crypto-random-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-what": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+ "dev": true
+ },
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dev": true,
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "d64": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/d64/-/d64-1.0.0.tgz",
+ "integrity": "sha1-QAKofoUMv8n52XBrYPymE6MzbpA="
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "date-and-time": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-0.12.0.tgz",
+ "integrity": "sha512-n2RJIAp93AucgF/U/Rz5WRS2Hjg5Z+QxscaaMCi6pVZT1JpJKRH+C08vyH/lRR1kxNXnPxgo3lWfd+jCb/UcuQ=="
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.1.tgz",
+ "integrity": "sha512-7Et6r6XfNW61CPPCIYfm1YPGSmh6+CliYeL4km7GWJcpX5LTAflGF8drLLR+MZX+2P3NZfAfSduutBbSWqER4g==",
+ "requires": {
+ "es-abstract": "^1.16.3",
+ "es-get-iterator": "^1.0.1",
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "isarray": "^2.0.5",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0",
+ "side-channel": "^1.0.1",
+ "which-boxed-primitive": "^1.0.1",
+ "which-collection": "^1.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ }
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true,
+ "optional": true
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true,
+ "optional": true
+ },
+ "denque": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz",
+ "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "dev": true,
+ "optional": true
+ },
+ "dicer": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
+ "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "1.1.x",
+ "streamsearch": "0.1.2"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
+ },
+ "dom-serializer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "entities": "^1.1.1"
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "dot-prop": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
+ "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
+ "requires": {
+ "is-obj": "^2.0.0"
+ }
+ },
+ "duplexify": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz",
+ "integrity": "sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA==",
+ "requires": {
+ "end-of-stream": "^1.4.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+ "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "emitter-listener": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz",
+ "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==",
+ "requires": {
+ "shimmer": "^1.2.0"
+ }
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "encoding-japanese": {
+ "version": "1.0.30",
+ "resolved": "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-1.0.30.tgz",
+ "integrity": "sha512-bd/DFLAoJetvv7ar/KIpE3CNO8wEuyrt9Xuw6nSMiZ+Vrz/Q21BPsMHvARL2Wz6IKHKXgb+DWZqtRg1vql9cBg==",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "ent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
+ "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0="
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ }
+ },
+ "es-get-iterator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz",
+ "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==",
+ "requires": {
+ "es-abstract": "^1.17.4",
+ "has-symbols": "^1.0.1",
+ "is-arguments": "^1.0.4",
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-string": "^1.0.5",
+ "isarray": "^2.0.5"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-set": "~0.1.5",
+ "es6-symbol": "~3.1.1",
+ "event-emitter": "~0.3.5"
+ }
+ },
+ "es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
+ "dev": true
+ },
+ "es6-promisify": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+ "dev": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ }
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "~0.3.5"
+ },
+ "dependencies": {
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ }
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "dev": true,
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
+ },
+ "eventid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/eventid/-/eventid-1.0.0.tgz",
+ "integrity": "sha512-4upSDsvpxhWPsmw4fsJCp0zj8S7I0qh1lCDTmZXP8V3TtryQKDI8CgQPN+e5JakbWwzaAX3lrdp2b3KSoMSUpw==",
+ "requires": {
+ "d64": "^1.0.0",
+ "uuid": "^3.0.1"
+ }
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
+ }
+ }
+ },
+ "express-session": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.16.2.tgz",
+ "integrity": "sha512-oy0sRsdw6n93E9wpCNWKRnSsxYnSDX9Dnr9mhZgqUEEorzcq5nshGYSZ4ZReHFhKQ80WI5iVUUSPW7u3GaKauw==",
+ "dev": true,
+ "requires": {
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~2.0.0",
+ "on-headers": "~1.0.2",
+ "parseurl": "~1.3.3",
+ "safe-buffer": "5.1.2",
+ "uid-safe": "~2.1.5"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "ext": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+ "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+ "dev": true,
+ "requires": {
+ "type": "^2.0.0"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz",
+ "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "fast-deep-equal": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "fast-text-encoding": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.0.tgz",
+ "integrity": "sha512-R9bHCvweUxxwkDwhjav5vxpFvdPGlVngtqmx4pIZfSUhM/Q4NiIUHB456BAf+Q1Nwu3HEZYONtu+Rya+af4jiQ=="
+ },
+ "feedparser": {
+ "version": "2.2.9",
+ "resolved": "https://registry.npmjs.org/feedparser/-/feedparser-2.2.9.tgz",
+ "integrity": "sha1-kTgZfa/a4F/K3eADa+6vYGbCxek=",
+ "dev": true,
+ "requires": {
+ "addressparser": "^1.0.1",
+ "array-indexofobject": "~0.0.1",
+ "lodash.assign": "^4.2.0",
+ "lodash.get": "^4.4.2",
+ "lodash.has": "^4.5.2",
+ "lodash.uniq": "^4.5.0",
+ "mri": "^1.1.0",
+ "readable-stream": "^2.2.2",
+ "sax": "^1.2.4"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "formidable": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
+ "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==",
+ "dev": true
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs-minipass": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.6.0"
+ }
+ },
+ "fs.notify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/fs.notify/-/fs.notify-0.0.4.tgz",
+ "integrity": "sha1-YyhNRaNLUs5gCIpt2+xbd208AT0=",
+ "dev": true,
+ "requires": {
+ "async": "~0.1.22",
+ "retry": "~0.6.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "gaxios": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.0.tgz",
+ "integrity": "sha512-VgC4JKJQAAAGK5rFZbPcS5mXsdIYVMIUJOxMjSOkYdfhB74R0L6y8PFQDdS0r1ObG6hdP11e71EjHh3xbI+6fQ==",
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "extend": "^3.0.2",
+ "https-proxy-agent": "^4.0.0",
+ "is-stream": "^2.0.0",
+ "node-fetch": "^2.3.0"
+ }
+ },
+ "gcp-metadata": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.3.1.tgz",
+ "integrity": "sha512-RrASg1HaVAxoB9Q/8sYfJ++v9PMiiqIgOrOxZeagMgS4osZtICT1lKBx2uvzYgwetxj8i6K99Z0iuKMg7WraTg==",
+ "requires": {
+ "gaxios": "^2.1.0",
+ "json-bigint": "^0.3.0"
+ }
+ },
+ "gcs-resumable-upload": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-2.3.2.tgz",
+ "integrity": "sha512-OPS0iAmPCV+r7PziOIhyxmQOzsazFCy76yYDOS/Z80O/7cuny1KMfqDQa2T0jLaL8EreTU7EMZG5pUuqBKgzHA==",
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "configstore": "^5.0.0",
+ "gaxios": "^2.0.0",
+ "google-auth-library": "^5.0.0",
+ "pumpify": "^2.0.0",
+ "stream-events": "^1.0.4"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "glob-stream": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
+ "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
+ "dev": true,
+ "requires": {
+ "extend": "^3.0.0",
+ "glob": "^7.1.1",
+ "glob-parent": "^3.1.0",
+ "is-negated-glob": "^1.0.0",
+ "ordered-read-streams": "^1.0.0",
+ "pumpify": "^1.3.5",
+ "readable-stream": "^2.1.5",
+ "remove-trailing-separator": "^1.0.1",
+ "to-absolute-glob": "^2.0.0",
+ "unique-stream": "^2.0.2"
+ },
+ "dependencies": {
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dev": true,
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ }
+ }
+ },
+ "google-auth-library": {
+ "version": "5.9.2",
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.9.2.tgz",
+ "integrity": "sha512-rBE1YTOZ3/Hu6Mojkr+UUmbdc/F28hyMGYEGxjyfVA9ZFmq12oqS3AeftX4h9XpdVIcxPooSo8hECYGT6B9XqQ==",
+ "requires": {
+ "arrify": "^2.0.0",
+ "base64-js": "^1.3.0",
+ "fast-text-encoding": "^1.0.0",
+ "gaxios": "^2.1.0",
+ "gcp-metadata": "^3.3.0",
+ "gtoken": "^4.1.0",
+ "jws": "^4.0.0",
+ "lru-cache": "^5.0.0"
+ }
+ },
+ "google-gax": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-1.14.1.tgz",
+ "integrity": "sha512-lAvILUMnXL+BVSSlbzwpGzs3ZP2r+b1l44zeDTRWceejDgyZORKdPEEhtUw49x9CVwxpPx02+v0yktqnRhUD1A==",
+ "requires": {
+ "@grpc/grpc-js": "^0.6.12",
+ "@grpc/proto-loader": "^0.5.1",
+ "@types/fs-extra": "^8.0.1",
+ "@types/long": "^4.0.0",
+ "abort-controller": "^3.0.0",
+ "duplexify": "^3.6.0",
+ "google-auth-library": "^5.0.0",
+ "is-stream-ended": "^0.1.4",
+ "lodash.at": "^4.6.0",
+ "lodash.has": "^4.5.2",
+ "node-fetch": "^2.6.0",
+ "protobufjs": "^6.8.8",
+ "retry-request": "^4.0.0",
+ "semver": "^6.0.0",
+ "walkdir": "^0.4.0"
+ },
+ "dependencies": {
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ }
+ }
+ },
+ "google-p12-pem": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.4.tgz",
+ "integrity": "sha512-S4blHBQWZRnEW44OcR7TL9WR+QCqByRvhNDZ/uuQfpxywfupikf/miba8js1jZi6ZOGv5slgSuoshCWh6EMDzg==",
+ "requires": {
+ "node-forge": "^0.9.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
+ },
+ "gtoken": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz",
+ "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==",
+ "requires": {
+ "gaxios": "^2.1.0",
+ "google-p12-pem": "^2.0.0",
+ "jws": "^4.0.0",
+ "mime": "^2.2.0"
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "dev": true,
+ "optional": true
+ },
+ "hash-stream-validation": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.2.tgz",
+ "integrity": "sha512-cMlva5CxWZOrlS/cY0C+9qAzesn5srhFA8IT1VPiHc9bWWBLkJfEUIZr7MWoi89oOOGmpg8ymchaOjiArsGu5A==",
+ "requires": {
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "hash-sum": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
+ "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==",
+ "dev": true
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "help-me": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz",
+ "integrity": "sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y=",
+ "dev": true,
+ "requires": {
+ "callback-stream": "^1.0.2",
+ "glob-stream": "^6.1.0",
+ "through2": "^2.0.1",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "hex2dec": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/hex2dec/-/hex2dec-1.1.2.tgz",
+ "integrity": "sha512-Yu+q/XWr2fFQ11tHxPq4p4EiNkb2y+lAacJNhAdRXVfRIcDH6gi7htWFnnlIzvqHMHoWeIsfXlNAjZInpAOJDA=="
+ },
+ "hosted-git-info": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
+ "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
+ "dev": true
+ },
+ "html-tags": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz",
+ "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg=="
+ },
+ "html-to-text": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-5.1.1.tgz",
+ "integrity": "sha512-Bci6bD/JIfZSvG4s0gW/9mMKwBRoe/1RWLxUME/d6WUSZCdY7T60bssf/jFf7EYXRyqU4P5xdClVqiYU0/ypdA==",
+ "dev": true,
+ "requires": {
+ "he": "^1.2.0",
+ "htmlparser2": "^3.10.1",
+ "lodash": "^4.17.11",
+ "minimist": "^1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+ "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
+ }
+ },
+ "http-proxy-agent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.0.tgz",
+ "integrity": "sha512-GX0FA6+IcDf4Oxc/FBWgYj4zKgo/DnZrksaG9jyuQLExs6xlX+uI5lcA8ymM3JaZTRrF/4s2UX19wJolyo7OBA==",
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz",
+ "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==",
+ "requires": {
+ "debug": "4"
+ }
+ }
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
+ "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
+ "requires": {
+ "agent-base": "5",
+ "debug": "4"
+ }
+ },
+ "i18next": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-15.1.0.tgz",
+ "integrity": "sha512-7cCrVn/BcoSOGJwTilAjGgWWzUDg4scTLX1sIBMWq6QjYYBrT+ChSAvmgVyQxkHinaIcswC04XK6l15RxM4Dkg==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.3.1"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
+ "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "imap": {
+ "version": "0.8.19",
+ "resolved": "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz",
+ "integrity": "sha1-NniHOTSrCc6mukh0HyhNoq9Z2NU=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "1.1.x",
+ "utf7": ">=1.0.2"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "dev": true,
+ "optional": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+ "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
+ "dev": true
+ },
+ "is": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz",
+ "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg=="
+ },
+ "is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "dev": true,
+ "requires": {
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
+ }
+ },
+ "is-arguments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
+ "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA=="
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-bigint": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.0.tgz",
+ "integrity": "sha512-t5mGUXC/xRheCK431ylNiSkGGpBp8bHENBcENTkDT6ppwPzEVxNGZRvgvmOEfbWkFhA7D2GEuE2mmQTr78sl2g=="
+ },
+ "is-boolean-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz",
+ "integrity": "sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ=="
+ },
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q=="
+ },
+ "is-date-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
+ "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ },
+ "is-html": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-html/-/is-html-2.0.0.tgz",
+ "integrity": "sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==",
+ "requires": {
+ "html-tags": "^3.0.0"
+ }
+ },
+ "is-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz",
+ "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw=="
+ },
+ "is-negated-glob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
+ "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=",
+ "dev": true
+ },
+ "is-number-object": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz",
+ "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw=="
+ },
+ "is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
+ },
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "dev": true,
+ "requires": {
+ "is-unc-path": "^1.0.0"
+ }
+ },
+ "is-set": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz",
+ "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA=="
+ },
+ "is-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="
+ },
+ "is-stream-ended": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz",
+ "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw=="
+ },
+ "is-string": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
+ "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ=="
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "dev": true,
+ "requires": {
+ "unc-path-regex": "^0.1.2"
+ }
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-weakmap": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA=="
+ },
+ "is-weakset": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz",
+ "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw=="
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ },
+ "json-bigint": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz",
+ "integrity": "sha1-DM2RLEuCcNBfBW+9E4FLU9OCWx4=",
+ "requires": {
+ "bignumber.js": "^7.0.0"
+ }
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "jsonata": {
+ "version": "1.6.5",
+ "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.6.5.tgz",
+ "integrity": "sha512-iRx9U6AkvsjrRdFf9MMbQmGVAL3bXVANR12vbVxjgXouMPU9VJQEcFnLWUCaW8IDmOzdxsaxK4Xe7SGlBYr5Bg==",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "just-extend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz",
+ "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==",
+ "dev": true
+ },
+ "jwa": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
+ "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==",
+ "requires": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "jws": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
+ "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
+ "requires": {
+ "jwa": "^2.0.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
+ "dev": true
+ },
+ "libbase64": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-1.2.1.tgz",
+ "integrity": "sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==",
+ "dev": true
+ },
+ "libmime": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/libmime/-/libmime-4.2.1.tgz",
+ "integrity": "sha512-09y7zjSc5im1aNsq815zgo4/G3DnIzym3aDOHsGq4Ee5vrX4PdgQRybAsztz9Rv0NhO+J5C0llEUloa3sUmjmA==",
+ "dev": true,
+ "requires": {
+ "encoding-japanese": "1.0.30",
+ "iconv-lite": "0.5.0",
+ "libbase64": "1.2.1",
+ "libqp": "1.1.0"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz",
+ "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ }
+ }
+ },
+ "libqp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz",
+ "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=",
+ "dev": true
+ },
+ "linkify-it": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
+ "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
+ "dev": true,
+ "requires": {
+ "uc.micro": "^1.0.1"
+ }
+ },
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "dev": true
+ },
+ "lodash.assign": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
+ "dev": true
+ },
+ "lodash.assignin": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
+ "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=",
+ "dev": true
+ },
+ "lodash.at": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.at/-/lodash.at-4.6.0.tgz",
+ "integrity": "sha1-k83OZk8KGZTqM9181A4jr9EbD/g="
+ },
+ "lodash.bind": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
+ "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=",
+ "dev": true
+ },
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
+ },
+ "lodash.defaults": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=",
+ "dev": true
+ },
+ "lodash.filter": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
+ "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=",
+ "dev": true
+ },
+ "lodash.flatten": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
+ "dev": true
+ },
+ "lodash.foreach": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=",
+ "dev": true
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "dev": true
+ },
+ "lodash.has": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz",
+ "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI="
+ },
+ "lodash.map": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
+ "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=",
+ "dev": true
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "lodash.pick": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=",
+ "dev": true
+ },
+ "lodash.reduce": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
+ "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=",
+ "dev": true
+ },
+ "lodash.reject": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
+ "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=",
+ "dev": true
+ },
+ "lodash.snakecase": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
+ "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40="
+ },
+ "lodash.some": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
+ "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=",
+ "dev": true
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "log-driver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz",
+ "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg=="
+ },
+ "lolex": {
+ "version": "2.7.5",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz",
+ "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==",
+ "dev": true
+ },
+ "long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "mailparser": {
+ "version": "2.7.7",
+ "resolved": "https://registry.npmjs.org/mailparser/-/mailparser-2.7.7.tgz",
+ "integrity": "sha512-FcVkXYm+zIg59HNPINGQw99eMTvcAkmQZHmabF8aSeMZ6/vWkx0HdT6FpXApelfe5IKRk6nWEg+YAuuXZl9+Fg==",
+ "dev": true,
+ "requires": {
+ "encoding-japanese": "1.0.30",
+ "he": "1.2.0",
+ "html-to-text": "5.1.1",
+ "iconv-lite": "0.5.0",
+ "libmime": "4.2.1",
+ "linkify-it": "2.2.0",
+ "mailsplit": "4.6.2",
+ "nodemailer": "6.4.0",
+ "tlds": "1.207.0"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz",
+ "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "nodemailer": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.0.tgz",
+ "integrity": "sha512-UBqPOfQGD1cM3HnjhuQe+0u3DWx47WWK7lBjG5UtPnGOysr7oDK5lNCzcjK6zzeBSdTk4m1tGx1xNbWFZQmMNA==",
+ "dev": true
+ }
+ }
+ },
+ "mailsplit": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/mailsplit/-/mailsplit-4.6.2.tgz",
+ "integrity": "sha512-7Bw2R0QfORXexGGQCEK64EeShHacUNyU5kV5F5sj4jPQB3ITe2v9KRqxD40wpuue6W/sBJlSNBZ0AypIeTGQMQ==",
+ "dev": true,
+ "requires": {
+ "libbase64": "1.2.1",
+ "libmime": "4.2.1",
+ "libqp": "1.1.0"
+ }
+ },
+ "make-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz",
+ "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==",
+ "requires": {
+ "semver": "^6.0.0"
+ }
+ },
+ "map-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz",
+ "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g=="
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "memorystore": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.1.tgz",
+ "integrity": "sha512-rYRjVukgBR9sptGI3IfpAjZc4SkupddhAenUhPTGprnqM8Qh863PxfXxXWlfvHpMIAkJCok28Bm7ZlOKB4U+MA==",
+ "dev": true,
+ "requires": {
+ "debug": "3.1.0",
+ "lru-cache": "^4.0.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ }
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "mime": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+ "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="
+ },
+ "mime-db": {
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
+ },
+ "mime-types": {
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+ "requires": {
+ "mime-db": "1.43.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.9.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
+ "dev": true
+ },
+ "moment-timezone": {
+ "version": "0.5.27",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.27.tgz",
+ "integrity": "sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw==",
+ "dev": true,
+ "requires": {
+ "moment": ">= 2.9.0"
+ }
+ },
+ "mqtt": {
+ "version": "2.18.8",
+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-2.18.8.tgz",
+ "integrity": "sha512-3h6oHlPY/yWwtC2J3geraYRtVVoRM6wdI+uchF4nvSSafXPZnaKqF8xnX+S22SU/FcgEAgockVIlOaAX3fkMpA==",
+ "dev": true,
+ "requires": {
+ "commist": "^1.0.0",
+ "concat-stream": "^1.6.2",
+ "end-of-stream": "^1.4.1",
+ "es6-map": "^0.1.5",
+ "help-me": "^1.0.1",
+ "inherits": "^2.0.3",
+ "minimist": "^1.2.0",
+ "mqtt-packet": "^5.6.0",
+ "pump": "^3.0.0",
+ "readable-stream": "^2.3.6",
+ "reinterval": "^1.1.0",
+ "split2": "^2.1.1",
+ "websocket-stream": "^5.1.2",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "mqtt-packet": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-5.6.1.tgz",
+ "integrity": "sha512-eaF9rO2uFrIYEHomJxziuKTDkbWW5psLBaIGCazQSKqYsTaB3n4SpvJ1PexKaDBiPnMLPIFWBIiTYT3IfEJfww==",
+ "dev": true,
+ "requires": {
+ "bl": "^1.2.1",
+ "inherits": "^2.0.3",
+ "process-nextick-args": "^2.0.0",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "mri": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
+ "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "multer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.1.tgz",
+ "integrity": "sha512-zzOLNRxzszwd+61JFuAo0fxdQfvku12aNJgnla0AQ+hHxFmfc/B7jBVuPr5Rmvu46Jze/iJrFpSOsD7afO8SDw==",
+ "dev": true,
+ "requires": {
+ "append-field": "^1.0.0",
+ "busboy": "^0.2.11",
+ "concat-stream": "^1.5.2",
+ "mkdirp": "^0.5.1",
+ "object-assign": "^4.1.1",
+ "on-finished": "^2.3.0",
+ "type-is": "^1.6.4",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ }
+ }
+ },
+ "mustache": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.0.1.tgz",
+ "integrity": "sha512-jFI/4UVRsRYdUbuDTKT7KzfOp7FiD5WzYmmwNwXyUVypC0xjoTL78Fqc0jHUPIvvGD+6DQSPHIt1NE7D1ArsqA==",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.13.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
+ "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
+ "dev": true,
+ "optional": true
+ },
+ "needle": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.3.2.tgz",
+ "integrity": "sha512-DUzITvPVDUy6vczKKYTnWc/pBZ0EnjMJnQ3y+Jo5zfKFimJs7S3HFCxCRZYB9FUZcrzUQr3WsmvZgddMEIZv6w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
+ "nise": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz",
+ "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/formatio": "^3.2.1",
+ "@sinonjs/text-encoding": "^0.7.1",
+ "just-extend": "^4.0.2",
+ "lolex": "^5.0.1",
+ "path-to-regexp": "^1.7.0"
+ },
+ "dependencies": {
+ "@sinonjs/formatio": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz",
+ "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1",
+ "@sinonjs/samsam": "^3.1.0"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "lolex": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz",
+ "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "dev": true,
+ "requires": {
+ "isarray": "0.0.1"
+ }
+ }
+ }
+ },
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ },
+ "node-forge": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.1.tgz",
+ "integrity": "sha512-G6RlQt5Sb4GMBzXvhfkeFmbqR6MzhtnT7VTHuLadjkii3rdYHNdw0m8zA4BTxVIh68FicCQ2NSUANpsqkr9jvQ=="
+ },
+ "node-pre-gyp": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz",
+ "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "node-red": {
+ "version": "0.20.8",
+ "resolved": "https://registry.npmjs.org/node-red/-/node-red-0.20.8.tgz",
+ "integrity": "sha512-+i2SHPo8AQED0lyf7xoGcWAs142Nc5zvCTzmuncslgxVt/fl6XADEEY4yT/eDVNOwRrf9TZMjhSxBM9ScJJu7Q==",
+ "dev": true,
+ "requires": {
+ "@node-red/editor-api": "0.20.8",
+ "@node-red/nodes": "0.20.8",
+ "@node-red/runtime": "0.20.8",
+ "@node-red/util": "0.20.8",
+ "basic-auth": "2.0.1",
+ "bcrypt": "3.0.6",
+ "bcryptjs": "2.4.3",
+ "express": "4.17.1",
+ "fs-extra": "8.1.0",
+ "node-red-node-email": "^1.6.2",
+ "node-red-node-feedparser": "^0.1.14",
+ "node-red-node-rbe": "^0.2.4",
+ "node-red-node-sentiment": "^0.1.3",
+ "node-red-node-tail": "^0.0.2",
+ "node-red-node-twitter": "^1.1.5",
+ "nopt": "4.0.1",
+ "semver": "6.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
+ "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
+ "dev": true
+ }
+ }
+ },
+ "node-red-node-email": {
+ "version": "1.7.6",
+ "resolved": "https://registry.npmjs.org/node-red-node-email/-/node-red-node-email-1.7.6.tgz",
+ "integrity": "sha512-N9BiirLah51bOu4E08CssYFcK2dv+Pygv8JL7HUdWFvsYL7lK+UC/s6ualcrikZrex86cXcjS6VTwAwcX7Y9Vg==",
+ "dev": true,
+ "requires": {
+ "imap": "^0.8.19",
+ "mailparser": "^2.7.7",
+ "nodemailer": "^6.4.2",
+ "poplib": "^0.1.7"
+ }
+ },
+ "node-red-node-feedparser": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/node-red-node-feedparser/-/node-red-node-feedparser-0.1.15.tgz",
+ "integrity": "sha512-FMjP0zn+94WmYhZDX55YQa2Fss4UX96rIuMZConfnVWHH6e8cJHEkYYGinTiZbx0JEJAIm54Y4qxTyVziGFVjQ==",
+ "dev": true,
+ "requires": {
+ "feedparser": "^2.2.9",
+ "request": "^2.88.0"
+ }
+ },
+ "node-red-node-rbe": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.2.8.tgz",
+ "integrity": "sha512-v2pZOn/raE87JLB86l5fH2JkU7uthqzV3lLI9WcL+fA+vDlg5iN2p/eQfhUy1DhgEmqmGrLu03h5efv+Sly5Vg==",
+ "dev": true
+ },
+ "node-red-node-sentiment": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/node-red-node-sentiment/-/node-red-node-sentiment-0.1.6.tgz",
+ "integrity": "sha512-u0+5U51/cHCGtREwqbOHtkwPB9lTejvQ/Q2ZTNf2acbFUujzcZf8UvQGTTil0yiVspL4Su2JTCa/Ng7b1vfdQg==",
+ "dev": true,
+ "requires": {
+ "sentiment": "2.1.0"
+ }
+ },
+ "node-red-node-tail": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/node-red-node-tail/-/node-red-node-tail-0.0.2.tgz",
+ "integrity": "sha512-+92kgY+SOW6Oq7GfH3x9HC/9YBAg5UmdZBl426nFg0K4x9oegLqCqW2S0/fBAgyDBQQF8eHmn/GjHeO32R0aRg==",
+ "dev": true,
+ "requires": {
+ "tail": "^2.0.0"
+ }
+ },
+ "node-red-node-test-helper": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/node-red-node-test-helper/-/node-red-node-test-helper-0.2.3.tgz",
+ "integrity": "sha512-N9/Fcrmbco3TSJNyLriM3L7tRd14nSjMQAseo2sgMaJi1rS+2+wXc8ka2RFYYH8EqI2MEeYbS2GPa+kfXEdrUg==",
+ "dev": true,
+ "requires": {
+ "express": "4.17.1",
+ "read-pkg-up": "3.0.0",
+ "semver": "6.2.0",
+ "should": "^13.2.3",
+ "should-sinon": "0.0.6",
+ "sinon": "5.0.3",
+ "stoppable": "1.1.0",
+ "supertest": "3.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
+ "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
+ "dev": true
+ }
+ }
+ },
+ "node-red-node-twitter": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/node-red-node-twitter/-/node-red-node-twitter-1.1.6.tgz",
+ "integrity": "sha512-iljiN/wIGxHXg5GEEOyjBxccU0ahLVac6b90jZ3uzrZfjORa+lj/zSP3BN+kr4A4JNV/7zecty4Syuwoq0LL4w==",
+ "dev": true,
+ "requires": {
+ "request": "^2.88.0",
+ "twitter-ng": "0.6.2"
+ }
+ },
+ "nodemailer": {
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.2.tgz",
+ "integrity": "sha512-g0n4nH1ONGvqYo1v72uSWvF/MRNnnq1LzmSzXb/6EPF3LFb51akOhgG3K2+aETAsJx90/Q5eFNTntu4vBCwyQQ==",
+ "dev": true
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "npm-bundled": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz",
+ "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
+ "dev": true
+ },
+ "npm-packlist": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz",
+ "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1",
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth": {
+ "version": "0.9.15",
+ "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
+ "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ },
+ "oauth2orize": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.0.tgz",
+ "integrity": "sha1-eTzvJR1F696sMq5AqLaBT6qx1IM=",
+ "dev": true,
+ "requires": {
+ "debug": "2.x.x",
+ "uid2": "0.0.x",
+ "utils-merge": "1.x.x"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="
+ },
+ "object-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
+ "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ=="
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "dev": true,
+ "requires": {
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
+ }
+ },
+ "ordered-read-streams": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
+ "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "p-defer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz",
+ "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw=="
+ },
+ "p-limit": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ },
+ "dependencies": {
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ }
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "passport": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz",
+ "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=",
+ "dev": true,
+ "requires": {
+ "passport-strategy": "1.x.x",
+ "pause": "0.0.1"
+ }
+ },
+ "passport-http-bearer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz",
+ "integrity": "sha1-FHRp6jZp4qhMYWfvmdu3fh8AmKg=",
+ "dev": true,
+ "requires": {
+ "passport-strategy": "1.x.x"
+ }
+ },
+ "passport-oauth2-client-password": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz",
+ "integrity": "sha1-TzeLZ4uS0W270jOmxwZSAJPlYbo=",
+ "dev": true,
+ "requires": {
+ "passport-strategy": "1.x.x"
+ }
+ },
+ "passport-strategy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
+ "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=",
+ "dev": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "poplib": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/poplib/-/poplib-0.1.7.tgz",
+ "integrity": "sha1-L0tYtVkpcjUM2X9IKrpo+OBVdLw=",
+ "dev": true,
+ "requires": {
+ "optimist": "*"
+ }
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "protobufjs": {
+ "version": "6.8.8",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz",
+ "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==",
+ "requires": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/long": "^4.0.0",
+ "@types/node": "^10.1.0",
+ "long": "^4.0.0"
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+ "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+ "dev": true,
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.0"
+ }
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "psl": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
+ "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz",
+ "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==",
+ "requires": {
+ "duplexify": "^4.1.1",
+ "inherits": "^2.0.3",
+ "pump": "^3.0.0"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ },
+ "random-bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
+ "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=",
+ "dev": true
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+ "dev": true
+ },
+ "regexp.prototype.flags": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
+ "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1"
+ }
+ },
+ "reinterval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz",
+ "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc=",
+ "dev": true
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "resolve": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "retry": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.6.1.tgz",
+ "integrity": "sha1-/ckO7ZQ/3hG4k1VLjMY9DombqRg=",
+ "dev": true
+ },
+ "retry-request": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.1.1.tgz",
+ "integrity": "sha512-BINDzVtLI2BDukjWmjAIRZ0oglnCAkpP2vQjM3jdLhmT62h0xnQgciPwBRDAvHqpkPT2Wo1XuUyLyn6nbGrZQQ==",
+ "requires": {
+ "debug": "^4.1.1",
+ "through2": "^3.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "samsam": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz",
+ "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==",
+ "dev": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ }
+ }
+ },
+ "sentiment": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/sentiment/-/sentiment-2.1.0.tgz",
+ "integrity": "sha1-MyeRAMNcOFGcpeQ1JFGGxRL+D9w=",
+ "dev": true
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true,
+ "optional": true
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+ "dev": true
+ },
+ "shimmer": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
+ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="
+ },
+ "should": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz",
+ "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==",
+ "dev": true,
+ "requires": {
+ "should-equal": "^2.0.0",
+ "should-format": "^3.0.3",
+ "should-type": "^1.4.0",
+ "should-type-adaptors": "^1.0.1",
+ "should-util": "^1.0.0"
+ }
+ },
+ "should-equal": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz",
+ "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==",
+ "dev": true,
+ "requires": {
+ "should-type": "^1.4.0"
+ }
+ },
+ "should-format": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz",
+ "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=",
+ "dev": true,
+ "requires": {
+ "should-type": "^1.3.0",
+ "should-type-adaptors": "^1.0.1"
+ }
+ },
+ "should-sinon": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/should-sinon/-/should-sinon-0.0.6.tgz",
+ "integrity": "sha512-ScBOH5uW5QVFaONmUnIXANSR6z5B8IKzEmBP3HE5sPOCDuZ88oTMdUdnKoCVQdLcCIrRrhRLPS5YT+7H40a04g==",
+ "dev": true
+ },
+ "should-type": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz",
+ "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=",
+ "dev": true
+ },
+ "should-type-adaptors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz",
+ "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==",
+ "dev": true,
+ "requires": {
+ "should-type": "^1.3.0",
+ "should-util": "^1.0.0"
+ }
+ },
+ "should-util": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz",
+ "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==",
+ "dev": true
+ },
+ "side-channel": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz",
+ "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==",
+ "requires": {
+ "es-abstract": "^1.17.0-next.1",
+ "object-inspect": "^1.7.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+ },
+ "sinon": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-5.0.3.tgz",
+ "integrity": "sha512-kzBkET1Hf0r0J4uVnlicuAEiq9nnhPrEHZWS0mds+5EaB9rA0XoliIkLaqkBNU9lwPuJACo/velUQQOmTRJtUw==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/formatio": "^2.0.0",
+ "diff": "^3.1.0",
+ "lodash.get": "^4.4.2",
+ "lolex": "^2.2.0",
+ "nise": "^1.2.0",
+ "supports-color": "^5.1.0",
+ "type-detect": "^4.0.5"
+ }
+ },
+ "snakecase-keys": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-3.1.2.tgz",
+ "integrity": "sha512-NrzHj8ctStnd1LYx3+L4buS7yildFum7WAbQQxkhPCNi3Qeqv7hoBne2c9n++HWxDG9Nv23pNEyyLCITZTv24Q==",
+ "requires": {
+ "map-obj": "^4.0.0",
+ "to-snake-case": "^1.0.0"
+ }
+ },
+ "snakeize": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/snakeize/-/snakeize-0.1.0.tgz",
+ "integrity": "sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+ "dev": true
+ },
+ "split2": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
+ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
+ "dev": true,
+ "requires": {
+ "through2": "^2.0.2"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
+ },
+ "stoppable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
+ "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==",
+ "dev": true
+ },
+ "stream-events": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz",
+ "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==",
+ "requires": {
+ "stubs": "^3.0.0"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
+ },
+ "streamsearch": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
+ "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=",
+ "dev": true
+ },
+ "string-format-obj": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string-format-obj/-/string-format-obj-1.1.1.tgz",
+ "integrity": "sha512-Mm+sROy+pHJmx0P/0Bs1uxIX6UhGJGj6xDGQZ5zh9v/SZRmLGevp+p0VJxV7lirrkAmQ2mvva/gHKpnF/pTb+Q=="
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true,
+ "optional": true
+ },
+ "stubs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz",
+ "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls="
+ },
+ "superagent": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
+ "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
+ "dev": true,
+ "requires": {
+ "component-emitter": "^1.2.0",
+ "cookiejar": "^2.1.0",
+ "debug": "^3.1.0",
+ "extend": "^3.0.0",
+ "form-data": "^2.3.1",
+ "formidable": "^1.2.0",
+ "methods": "^1.1.1",
+ "mime": "^1.4.1",
+ "qs": "^6.5.1",
+ "readable-stream": "^2.3.5"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true
+ }
+ }
+ },
+ "supertest": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/supertest/-/supertest-3.0.0.tgz",
+ "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=",
+ "dev": true,
+ "requires": {
+ "methods": "~1.1.2",
+ "superagent": "^3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "tail": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tail/-/tail-2.0.3.tgz",
+ "integrity": "sha512-s9NOGkLqqiDEtBttQZI7acLS8ycYK5sTlDwNjGnpXG9c8AWj0cfAtwEIzo/hVRMMiC5EYz+bXaJWC1u1u0GPpQ==",
+ "dev": true
+ },
+ "tar": {
+ "version": "4.4.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+ "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ }
+ },
+ "teeny-request": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-6.0.1.tgz",
+ "integrity": "sha512-TAK0c9a00ELOqLrZ49cFxvPVogMUFaWY8dUsQc/0CuQPGF+BOxOQzXfE413BAk2kLomwNplvdtMpeaeGWmoc2g==",
+ "requires": {
+ "http-proxy-agent": "^4.0.0",
+ "https-proxy-agent": "^4.0.0",
+ "node-fetch": "^2.2.0",
+ "stream-events": "^1.0.5",
+ "uuid": "^3.3.2"
+ }
+ },
+ "through2": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
+ "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
+ "requires": {
+ "readable-stream": "2 || 3"
+ }
+ },
+ "through2-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+ "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+ "dev": true,
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "tlds": {
+ "version": "1.207.0",
+ "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.207.0.tgz",
+ "integrity": "sha512-k7d7Q1LqjtAvhtEOs3yN14EabsNO8ZCoY6RESSJDB9lst3bTx3as/m1UuAeCKzYxiyhR1qq72ZPhpSf+qlqiwg==",
+ "dev": true
+ },
+ "to-absolute-glob": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
+ "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
+ "dev": true,
+ "requires": {
+ "is-absolute": "^1.0.0",
+ "is-negated-glob": "^1.0.0"
+ }
+ },
+ "to-no-case": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/to-no-case/-/to-no-case-1.0.2.tgz",
+ "integrity": "sha1-xyKQcWTvaxeBMsjmmTAhLRtKoWo="
+ },
+ "to-snake-case": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-snake-case/-/to-snake-case-1.0.0.tgz",
+ "integrity": "sha1-znRpE4l5RgGah+Yu366upMYIq4w=",
+ "requires": {
+ "to-space-case": "^1.0.0"
+ }
+ },
+ "to-space-case": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz",
+ "integrity": "sha1-sFLar7Gysp3HcM6gFj5ewOvJ/Bc=",
+ "requires": {
+ "to-no-case": "^1.0.0"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ }
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "twitter-ng": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/twitter-ng/-/twitter-ng-0.6.2.tgz",
+ "integrity": "sha1-E3BxFd0Eyb0fLGRtqXZYm+TWS8Q=",
+ "dev": true,
+ "requires": {
+ "oauth": ">=0.9.9"
+ }
+ },
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
+ "dev": true
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.9.0.tgz",
+ "integrity": "sha512-j55pzONIdg7rdtJTRZPKIbV0FosUqYdhHK1aAYJIrUvejv1VVyBokrILE8KQDT4emW/1Ev9tx+yZG+AxuSBMmA=="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "uc.micro": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
+ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
+ "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
+ "dev": true,
+ "requires": {
+ "commander": "~2.20.0",
+ "source-map": "~0.6.1"
+ }
+ },
+ "uid-safe": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
+ "dev": true,
+ "requires": {
+ "random-bytes": "~1.0.0"
+ }
+ },
+ "uid2": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
+ "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=",
+ "dev": true
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+ "dev": true
+ },
+ "unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
+ "dev": true
+ },
+ "unique-stream": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+ "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+ "dev": true,
+ "requires": {
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "through2-filter": "^3.0.0"
+ }
+ },
+ "unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "requires": {
+ "crypto-random-string": "^2.0.0"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "utf7": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz",
+ "integrity": "sha1-lV9JCq5lO6IguUVqCod2wZk2CZE=",
+ "dev": true,
+ "requires": {
+ "semver": "~5.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "walkdir": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz",
+ "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ=="
+ },
+ "websocket-stream": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.5.0.tgz",
+ "integrity": "sha512-EXy/zXb9kNHI07TIMz1oIUIrPZxQRA8aeJ5XYg5ihV8K4kD1DuA+FY6R96HfdIHzlSzS8HiISAfrm+vVQkZBug==",
+ "dev": true,
+ "requires": {
+ "duplexify": "^3.5.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.3",
+ "safe-buffer": "^5.1.2",
+ "ws": "^3.2.0",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ }
+ }
+ },
+ "when": {
+ "version": "3.7.8",
+ "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
+ "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=",
+ "dev": true
+ },
+ "which-boxed-primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.1.tgz",
+ "integrity": "sha512-7BT4TwISdDGBgaemWU0N0OU7FeAEJ9Oo2P1PHRm/FCWoEi2VLWC9b6xvxAA3C/NMpxg3HXVgi0sMmGbNUbNepQ==",
+ "requires": {
+ "is-bigint": "^1.0.0",
+ "is-boolean-object": "^1.0.0",
+ "is-number-object": "^1.0.3",
+ "is-string": "^1.0.4",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "which-collection": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
+ "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "requires": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "wordwrap": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write-file-atomic": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz",
+ "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==",
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "ws": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+ "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "xdg-basedir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
+ },
+ "xml2js": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
+ "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
+ "dev": true,
+ "requires": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~9.0.1"
+ }
+ },
+ "xmlbuilder": {
+ "version": "9.0.7",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ }
+ }
+}
diff --git a/external/meta-iot-cloud/recipes-google-cloud/node-red-contrib-google-cloud/node-red-contrib-google-cloud_0.0.12.bb b/external/meta-iot-cloud/recipes-google-cloud/node-red-contrib-google-cloud/node-red-contrib-google-cloud_0.0.12.bb
new file mode 100644
index 00000000..afefba21
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/node-red-contrib-google-cloud/node-red-contrib-google-cloud_0.0.12.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Node-RED nodes for Google Cloud Platform"
+AUTHOR = "Cloud Partner Engineering"
+HOMEPAGE = "https://github.com/GoogleCloudPlatform/node-red-contrib-google-cloud.git"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+inherit npm
+
+RDEPENDS_${PN} = "\
+ bash \
+ node-red \
+"
+
+SRC_URI = "\
+ npm://registry.npmjs.org;package=${BPN};version=${PV} \
+ npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
+"
+
+PR = "r0"
+
+S = "${WORKDIR}/npm"
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python-google-api-core.inc b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-api-core.inc
new file mode 100644
index 00000000..3a343e8d
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-api-core.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "Google API client core library"
+HOMEPAGE = "https://github.com/GoogleCloudPlatform/google-cloud-python"
+AUTHOR = "Google LLC"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-math \
+ ${PYTHON_PN}-pkgutil \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-googleapis-common-protos \
+ ${PYTHON_PN}-google-auth \
+ ${PYTHON_PN}-grpcio \
+ ${PYTHON_PN}-protobuf \
+ ${PYTHON_PN}-pytz \
+ ${PYTHON_PN}-six \
+"
+
+SRC_URI[md5sum] = "a23d02db3f49f350bcf530fa52713cf1"
+SRC_URI[sha256sum] = "f45d74aef41e1de49ceadebf382e1291ddcbe431a8b533aff8a1140a35531465"
+
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python-google-auth.inc b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-auth.inc
new file mode 100644
index 00000000..4a22b234
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-auth.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Google Authentication Library"
+HOMEPAGE = "https://github.com/GoogleCloudPlatform/google-auth-library-python"
+AUTHOR = "Google Cloud Platform"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-pkgutil \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-cachetools \
+ ${PYTHON_PN}-certifi \
+ ${PYTHON_PN}-cryptography \
+ ${PYTHON_PN}-grpcio \
+ ${PYTHON_PN}-pyasn1-modules \
+ ${PYTHON_PN}-requests \
+ ${PYTHON_PN}-rsa \
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-urllib3 \
+"
+
+SRC_URI[md5sum] = "0440718247cc4531422e2a8f4f012e8b"
+SRC_URI[sha256sum] = "0f7c6a64927d34c1a474da92cfc59e552a5d3b940d3266606c6a28b72888b9e4"
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-core.inc b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-core.inc
new file mode 100644
index 00000000..9f44e08f
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-core.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "Google Cloud API client core library"
+HOMEPAGE = "https://github.com/GoogleCloudPlatform/google-cloud-python"
+AUTHOR = "Google LLC"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-pickle \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-googleapis-common-protos \
+ ${PYTHON_PN}-google-api-core \
+ ${PYTHON_PN}-google-auth \
+ ${PYTHON_PN}-grpcio \
+ ${PYTHON_PN}-protobuf \
+ ${PYTHON_PN}-six \
+"
+
+SRC_URI[md5sum] = "cbc42a01af32bd31323db111e827d3f3"
+SRC_URI[sha256sum] = "10750207c1a9ad6f6e082d91dbff3920443bdaf1c344a782730489a9efa802f1"
+
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-pubsub.inc b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-pubsub.inc
new file mode 100644
index 00000000..ec42600d
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-pubsub.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Google Cloud Pub/Sub API client library"
+HOMEPAGE = "https://github.com/GoogleCloudPlatform/google-cloud-python"
+AUTHOR = "Google LLC"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7b7e367c7e1664e6565ee7d16cccc58a"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-math \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-pkgutil \
+ ${PYTHON_PN}-threading \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-googleapis-common-protos \
+ ${PYTHON_PN}-google-api-core \
+ ${PYTHON_PN}-google-auth \
+ ${PYTHON_PN}-grpc-google-iam-v1 \
+ ${PYTHON_PN}-grpcio \
+ ${PYTHON_PN}-protobuf \
+ ${PYTHON_PN}-six \
+"
+
+SRC_URI[md5sum] = "a0d46582749e14057da796c9404f466a"
+SRC_URI[sha256sum] = "f295d14120f10e638ab4990268707d39f9460bc472145ae05b112f5f144854f0"
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-storage.inc b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-storage.inc
new file mode 100644
index 00000000..9fa4a138
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-cloud-storage.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Google Cloud Storage API client library"
+HOMEPAGE = "https://github.com/GoogleCloudPlatform/google-cloud-python"
+AUTHOR = "Google LLC"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-google-cloud-core \
+ ${PYTHON_PN}-google-resumable-media \
+"
+
+SRC_URI[md5sum] = "0a8c52d5aa1392657066a34d0c52d604"
+SRC_URI[sha256sum] = "2e7e2435978bda1c209b70a9a00b8cbc53c3b00d6f09eb2c991ebba857babf24"
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python-google-resumable-media.inc b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-resumable-media.inc
new file mode 100644
index 00000000..431e7aae
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python-google-resumable-media.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "Utilities for Google Media Downloads and Resumable Uploads"
+AUTHOR = "Google LLC"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+"
+
+SRC_URI[md5sum] = "b2da7a191fae26b5c5c62f7780916bb0"
+SRC_URI[sha256sum] = "cdeb8fbb3551a665db921023603af2f0d6ac59ad8b48259cb510b8799505775f"
+
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python-googleapis-common-protos.inc b/external/meta-iot-cloud/recipes-google-cloud/python/python-googleapis-common-protos.inc
new file mode 100644
index 00000000..821383fb
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python-googleapis-common-protos.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Common protobufs used in Google APIs"
+HOMEPAGE = "https://github.com/googleapis/googleapis"
+AUTHOR = "Google LLC"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2deedbf0e737771f60166811e74a6a92"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-protobuf \
+"
+
+SRC_URI[md5sum] = "128dd2c9c1d64657113673d3cd344eff"
+SRC_URI[sha256sum] = "e61b8ed5e36b976b487c6e7b15f31bb10c7a0ca7bd5c0e837f4afab64b53a0c6"
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python-grpc-google-iam-v1.inc b/external/meta-iot-cloud/recipes-google-cloud/python/python-grpc-google-iam-v1.inc
new file mode 100644
index 00000000..53df30e2
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python-grpc-google-iam-v1.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "GRPC library for the google-iam-v1 service"
+HOMEPAGE = "https://github.com/googleapis/googleapis"
+AUTHOR = "Google Inc"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2deedbf0e737771f60166811e74a6a92"
+
+PR = "r0"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-googleapis-common-protos \
+ ${PYTHON_PN}-grpcio \
+ ${PYTHON_PN}-protobuf \
+"
+
+SRC_URI[md5sum] = "8ead45e8fc38ade73896b98802c9c84f"
+SRC_URI[sha256sum] = "5009e831dcec22f3ff00e89405249d6a838d1449a46ac8224907aa5b0e0b1aec"
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-api-core_1.13.0.bb b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-api-core_1.13.0.bb
new file mode 100644
index 00000000..14ada3c6
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-api-core_1.13.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-google-api-core.inc
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-auth_1.6.3.bb b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-auth_1.6.3.bb
new file mode 100644
index 00000000..da98c981
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-auth_1.6.3.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-google-auth.inc
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-core_1.0.3.bb b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-core_1.0.3.bb
new file mode 100644
index 00000000..eaf1ce5a
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-core_1.0.3.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-google-cloud-core.inc
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-pubsub_0.42.1.bb b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-pubsub_0.42.1.bb
new file mode 100644
index 00000000..d85667d3
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-pubsub_0.42.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-google-cloud-pubsub.inc
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-storage_1.20.0.bb b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-storage_1.20.0.bb
new file mode 100644
index 00000000..2221597b
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-cloud-storage_1.20.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-google-cloud-storage.inc
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-resumable-media_0.4.1.bb b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-resumable-media_0.4.1.bb
new file mode 100644
index 00000000..c5b3e651
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python3-google-resumable-media_0.4.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-google-resumable-media.inc
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python3-googleapis-common-protos_1.6.0.bb b/external/meta-iot-cloud/recipes-google-cloud/python/python3-googleapis-common-protos_1.6.0.bb
new file mode 100644
index 00000000..2adf3dab
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python3-googleapis-common-protos_1.6.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-googleapis-common-protos.inc
diff --git a/external/meta-iot-cloud/recipes-google-cloud/python/python3-grpc-google-iam-v1_0.11.4.bb b/external/meta-iot-cloud/recipes-google-cloud/python/python3-grpc-google-iam-v1_0.11.4.bb
new file mode 100644
index 00000000..c74dbe07
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-google-cloud/python/python3-grpc-google-iam-v1_0.11.4.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-grpc-google-iam-v1.inc
diff --git a/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Add-additional-options-to-sample-apps.patch b/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Add-additional-options-to-sample-apps.patch
new file mode 100644
index 00000000..de0522bf
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Add-additional-options-to-sample-apps.patch
@@ -0,0 +1,77 @@
+From 796c934b3294871cb8ccb566ff6a9ae78d3ea4df Mon Sep 17 00:00:00 2001
+From: Vivek Chandra <vivek.chandrax.amancha@intel.com>
+Date: Wed, 21 Mar 2018 19:45:48 +0530
+Subject: [PATCH] Add additional options to sample apps
+
+---
+ samples/sampleDevice.c | 15 +++++++++------
+ samples/sampleGateway.c | 14 ++++++++++----
+ 2 files changed, 19 insertions(+), 10 deletions(-)
+
+diff --git a/samples/sampleDevice.c b/samples/sampleDevice.c
+index e1d78ea..5af14a2 100644
+--- a/samples/sampleDevice.c
++++ b/samples/sampleDevice.c
+@@ -40,7 +40,6 @@ int main(int argc, char const *argv[])
+ int rc = -1;
+
+ iotfclient client;
+-
+ //catch interrupt signal
+ signal(SIGINT, sigHandler);
+ signal(SIGTERM, sigHandler);
+@@ -48,16 +47,20 @@ int main(int argc, char const *argv[])
+ char* configFilePath;
+
+ if(isEMBDCHomeDefined()){
+-
+ getSamplesPath(&configFilePath);
+ configFilePath = realloc(configFilePath,strlen(configFilePath)+15);
+ strcat(configFilePath,"device.cfg");
+ }
+- else{
+- printf("IOT_EMBDC_HOME is not defined\n");
+- printf("Define IOT_EMBDC_HOME to client library path to execute samples\n");
++ //to handle if EMBDCHome not defined
++ else if(argc > 1) {
++ configFilePath = (char*)malloc(sizeof(char)*(strlen(argv[1])+3));
++ strcpy(configFilePath,argv[1]);
++ }
++ else {
++ printf("Pass the absolute path of the config file as command line argument ex: ./sampleDevice <path-to-config>/<config-file-name> or ");
++ printf("Please define IOT_EMBDC_HOME\n");
+ return -1;
+- }
++ }
+
+ rc = initialize_configfile(&client, configFilePath,0);
+ free(configFilePath);
+diff --git a/samples/sampleGateway.c b/samples/sampleGateway.c
+index 0d98f53..202ad45 100644
+--- a/samples/sampleGateway.c
++++ b/samples/sampleGateway.c
+@@ -55,11 +55,17 @@ int main(int argc, char const *argv[])
+ configFilePath = realloc(configFilePath,strlen(configFilePath)+15);
+ strcat(configFilePath,"gateway.cfg");
+ }
+- else{
+- printf("IOT_EMBDC_HOME is not defined\n");
+- printf("Define IOT_EMBDC_HOME to client library path to execute samples\n");
++ //to handle if EMBDCHome not defined
++ else if(argc > 1) {
++ configFilePath = (char*)malloc(sizeof(char)*(strlen(argv[1])+3));
++ strcpy(configFilePath,argv[1]);
++ }
++ else {
++ printf("Pass the absolute path of the config file as command line argument ex: ./sampleGateway <path-to-config>/<config-file-name> or ");
++ printf("Define IOT_EMBDC_HOME to client library path to execute samples\n");
+ return -1;
+- }
++ }
++
+
+ rc = initialize_configfile(&client, configFilePath,1);
+ free(configFilePath);
+--
+2.7.4
+
diff --git a/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Fix-cjson-library.patch b/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Fix-cjson-library.patch
new file mode 100644
index 00000000..f6312990
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Fix-cjson-library.patch
@@ -0,0 +1,36 @@
+From af7f5b885d5807b46bdcdb91f78a9dff689b6af8 Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Thu, 13 Apr 2017 22:51:10 +0100
+Subject: [PATCH 2/3] Fix cjson library
+
+---
+ src/CMakeLists.txt | 2 +-
+ src/devicemanagementclient.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 43a52cc..d0e4184 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -11,4 +11,4 @@ add_library(iotfdevicemgmt SHARED devicemanagementclient.c)
+ TARGET_LINK_LIBRARIES (iotf_network_tls_wrapper mbedcrypto mbedx509 mbedtls )
+ TARGET_LINK_LIBRARIES (iotfdeviceclient iotfclient iotf_utils iotf_network_tls_wrapper iotfmqtt)
+ TARGET_LINK_LIBRARIES (iotfgatewayclient iotfclient iotf_utils iotf_network_tls_wrapper iotfmqtt)
+-TARGET_LINK_LIBRARIES (iotfdevicemgmt iotfclient iotfdeviceclient cJSON iotf_utils iotf_network_tls_wrapper iotfmqtt)
++TARGET_LINK_LIBRARIES (iotfdevicemgmt iotfclient iotfdeviceclient cjson iotf_utils iotf_network_tls_wrapper iotfmqtt)
+diff --git a/src/devicemanagementclient.c b/src/devicemanagementclient.c
+index 2bb8bc5..13f4b07 100644
+--- a/src/devicemanagementclient.c
++++ b/src/devicemanagementclient.c
+@@ -21,7 +21,7 @@
+
+
+ #include "devicemanagementclient.h"
+-#include "cJSON.h"
++#include "cjson/cJSON.h"
+
+ //Character strings to hold log header and log message to be dumped.
+ char logHdr[LOG_BUF];
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Fix-dependencies.patch b/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Fix-dependencies.patch
new file mode 100644
index 00000000..2bc748e4
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Fix-dependencies.patch
@@ -0,0 +1,121 @@
+From 811d81859dd0525a160df4aae83d3f729a7a39ff Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Thu, 13 Apr 2017 22:44:45 +0100
+Subject: [PATCH 1/3] Fix dependencies
+
+---
+ lib/CMakeLists.txt | 86 +-----------------------------------------------------
+ src/CMakeLists.txt | 6 ++--
+ 2 files changed, 4 insertions(+), 88 deletions(-)
+
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index fbb1b76..02a3e7e 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -15,88 +15,4 @@ set(src_mqtt
+ MQTTUnsubscribeClient.c
+ )
+
+-set(src_crypto
+- aes.c
+- aesni.c
+- arc4.c
+- asn1parse.c
+- asn1write.c
+- base64.c
+- bignum.c
+- blowfish.c
+- camellia.c
+- ccm.c
+- cipher.c
+- cipher_wrap.c
+- cmac.c
+- ctr_drbg.c
+- des.c
+- dhm.c
+- ecdh.c
+- ecdsa.c
+- ecjpake.c
+- ecp.c
+- ecp_curves.c
+- entropy.c
+- entropy_poll.c
+- error.c
+- gcm.c
+- havege.c
+- hmac_drbg.c
+- md.c
+- md2.c
+- md4.c
+- md5.c
+- md_wrap.c
+- memory_buffer_alloc.c
+- oid.c
+- padlock.c
+- pem.c
+- pk.c
+- pk_wrap.c
+- pkcs12.c
+- pkcs5.c
+- pkparse.c
+- pkwrite.c
+- platform.c
+- ripemd160.c
+- rsa.c
+- sha1.c
+- sha256.c
+- sha512.c
+- threading.c
+- timing.c
+- version.c
+- version_features.c
+- xtea.c
+-)
+-
+-set(src_x509
+- certs.c
+- pkcs11.c
+- x509.c
+- x509_create.c
+- x509_crl.c
+- x509_crt.c
+- x509_csr.c
+- x509write_crt.c
+- x509write_csr.c
+-)
+-
+-set(src_tls
+- debug.c
+- net_sockets.c
+- ssl_cache.c
+- ssl_ciphersuites.c
+- ssl_cli.c
+- ssl_cookie.c
+- ssl_srv.c
+- ssl_ticket.c
+- ssl_tls.c
+-)
+-
+-add_library(cJSON cJSON.c)
+-add_library(mqttlib ${src_mqtt})
+-add_library(mbedcrypto ${src_crypto})
+-add_library(mbedx509 ${src_x509})
+-add_library(mbedtls ${src_tls})
++add_library(iotfmqtt ${src_mqtt})
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index db75a98..43a52cc 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -9,6 +9,6 @@ add_library(iotfgatewayclient SHARED gatewayclient.c)
+ add_library(iotfdevicemgmt SHARED devicemanagementclient.c)
+
+ TARGET_LINK_LIBRARIES (iotf_network_tls_wrapper mbedcrypto mbedx509 mbedtls )
+-TARGET_LINK_LIBRARIES (iotfdeviceclient iotfclient iotf_utils iotf_network_tls_wrapper mqttlib)
+-TARGET_LINK_LIBRARIES (iotfgatewayclient iotfclient iotf_utils iotf_network_tls_wrapper mqttlib)
+-TARGET_LINK_LIBRARIES (iotfdevicemgmt iotfclient iotfdeviceclient cJSON iotf_utils iotf_network_tls_wrapper mqttlib)
++TARGET_LINK_LIBRARIES (iotfdeviceclient iotfclient iotf_utils iotf_network_tls_wrapper iotfmqtt)
++TARGET_LINK_LIBRARIES (iotfgatewayclient iotfclient iotf_utils iotf_network_tls_wrapper iotfmqtt)
++TARGET_LINK_LIBRARIES (iotfdevicemgmt iotfclient iotfdeviceclient cJSON iotf_utils iotf_network_tls_wrapper iotfmqtt)
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Remove-host-library-paths.patch b/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Remove-host-library-paths.patch
new file mode 100644
index 00000000..622645e4
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/files/Remove-host-library-paths.patch
@@ -0,0 +1,27 @@
+From ffcc01e562a7c016941e153e1540d13d10ce6b6a Mon Sep 17 00:00:00 2001
+From: Scott Ware <scott.r.ware@intel.com>
+Date: Thu, 13 Apr 2017 23:15:53 +0100
+Subject: [PATCH 3/3] Remove host library paths
+
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 87a2c44..5504c49 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -4,8 +4,8 @@ enable_testing()
+
+ option (run_tests "set run_tests to ON if build tests should be run, set to OFF to skip tests" ON)
+ SET(CMAKE_CXX_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage -fPIC ${CMAKE_CXX_FLAGS} ")
+-SET(CMAKE_C_FLAGS "-g -O0 -Wall -W -fprofile-arcs -ftest-coverage -fPIC ${CMAKE_C_FLAGS} -I/usr/local/include")
+-SET(CMAKE_EXE_LINKER_FLAGS "-fprofile-arcs -ftest-coverage ${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib")
++SET(CMAKE_C_FLAGS "-g -O0 -Wall -W -fprofile-arcs -ftest-coverage -fPIC ${CMAKE_C_FLAGS} ")
++SET(CMAKE_EXE_LINKER_FLAGS "-fprofile-arcs -ftest-coverage ${CMAKE_EXE_LINKER_FLAGS} ")
+
+ if (run_tests)
+ add_subdirectory(test)
+--
+1.9.1
+
diff --git a/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/ibm-iotf-embeddedc_1.0.bb b/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/ibm-iotf-embeddedc_1.0.bb
new file mode 100644
index 00000000..c1124944
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-ibm/ibm-iotf-embeddedc/ibm-iotf-embeddedc_1.0.bb
@@ -0,0 +1,88 @@
+DESCRIPTION = "Embedded C client for interacting with the IBM Watson Internet of Things Platform"
+HOMEPAGE = "https://github.com/ibm-messaging/iotf-embeddedc"
+LICENSE = "EPL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=30b3836521b3d65bef598bbc358a3afa"
+
+inherit cmake
+
+DEPENDS = "\
+ mbedtls \
+ cjson \
+"
+
+SRC_URI = "\
+ git://github.com/ibm-watson-iot/iot-embeddedc.git \
+ file://Fix-dependencies.patch \
+ file://Fix-cjson-library.patch \
+ file://Remove-host-library-paths.patch \
+ file://Add-additional-options-to-sample-apps.patch \
+"
+SRCREV = "809af3b63294d0c5302cc15e3652c65843907cf2"
+
+# MQTT Library
+SRC_URI += "git://github.com/eclipse/paho.mqtt.embedded-c.git;destsuffix=git-mqtt;name=mqtt"
+SRCREV_mqtt = "5714645c762177ff08086224a7a9ce0b9d541316"
+
+PR = "r1"
+
+S = "${WORKDIR}/git"
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dbg \
+ ${PN}-dev \
+ ${PN}-samples \
+"
+
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS:BOOL=ON -Drun_tests:BOOL=OFF"
+OECMAKE_C_FLAGS_append = " -lm"
+
+do_configure_prepend() {
+ # Configure MQTT library
+ cp ${WORKDIR}/git-mqtt/MQTTPacket/src/* ${S}/lib/
+ cp ${WORKDIR}/git-mqtt/MQTTClient-C/src/MQTTClient.* ${S}/lib/
+ sed -i 's|""|"iotf_network_tls_wrapper.h"|g' ${S}/lib/MQTTClient.h
+}
+
+do_install() {
+ install -d ${D}${libdir}
+ install -m 0644 ${WORKDIR}/build/lib/*.so ${D}${libdir}
+ install -m 0644 ${WORKDIR}/build/src/*.so ${D}${libdir}
+
+ install -d ${D}${includedir}/ibmiotf
+ install -m 0644 ${S}/src/*.h ${D}${includedir}/ibmiotf
+ install -m 0644 ${S}/lib/*.h ${D}${includedir}/ibmiotf
+
+ # Samples
+ install -d ${D}${datadir}/ibmiotfsdk/samples/c
+ install -m 0755 ${WORKDIR}/build/samples/helloWorld ${D}${datadir}/ibmiotfsdk/samples/c/
+ install -m 0755 ${WORKDIR}/build/samples/sampleDevice ${D}${datadir}/ibmiotfsdk/samples/c/
+ install -m 0755 ${WORKDIR}/build/samples/sampleGateway ${D}${datadir}/ibmiotfsdk/samples/c/
+ install -m 0644 ${S}/samples/device.cfg ${D}${datadir}/ibmiotfsdk/samples/c/
+ install -m 0644 ${S}/samples/gateway.cfg ${D}${datadir}/ibmiotfsdk/samples/c/
+ install -m 0644 ${S}/IoTFoundation.pem ${D}${datadir}/ibmiotfsdk/
+}
+
+FILES_${PN} += "\
+ ${libdir}/* \
+"
+
+FILES_${PN}-dev += "\
+ ${includedir}/* \
+"
+
+FILES_${PN}-dbg += "\
+ ${datadir}/ibmiotfsdk/samples/c/.debug \
+"
+
+FILES_${PN}-samples += "\
+ ${datadir}/ibmiotfsdk/samples/c/helloWorld \
+ ${datadir}/ibmiotfsdk/samples/c/sampleDevice \
+ ${datadir}/ibmiotfsdk/samples/c/sampleGateway \
+ ${datadir}/ibmiotfsdk/samples/c/device.cfg \
+ ${datadir}/ibmiotfsdk/samples/c/gateway.cfg \
+ ${datadir}/ibmiotfsdk/IoTFoundation.pem \
+"
+
+INSANE_SKIP_${PN} += "rpaths"
+INSANE_SKIP_${PN}-samples += "rpaths"
diff --git a/external/meta-iot-cloud/recipes-ibm/node-red-contrib-ibm-watson-iot/node-red-contrib-ibm-watson-iot/npm-shrinkwrap.json b/external/meta-iot-cloud/recipes-ibm/node-red-contrib-ibm-watson-iot/node-red-contrib-ibm-watson-iot/npm-shrinkwrap.json
new file mode 100644
index 00000000..b5b87103
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-ibm/node-red-contrib-ibm-watson-iot/node-red-contrib-ibm-watson-iot/npm-shrinkwrap.json
@@ -0,0 +1,684 @@
+{
+ "name": "node-red-contrib-ibm-watson-iot",
+ "version": "0.2.8",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "axios": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.5.4.tgz",
+ "integrity": "sha1-4G+FIleDgTPmkJTZJcy0Gd6U/fs=",
+ "requires": {
+ "es6-promise": "^2.0.1"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "bluebird": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
+ "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "btoa": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
+ "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g=="
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "callback-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz",
+ "integrity": "sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "> 1.0.0 < 3.0.0"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commist": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz",
+ "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==",
+ "requires": {
+ "leven": "^2.1.0",
+ "minimist": "^1.1.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-set": "~0.1.5",
+ "es6-symbol": "~3.1.1",
+ "event-emitter": "~0.3.5"
+ }
+ },
+ "es6-promise": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz",
+ "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw="
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "~0.3.5"
+ },
+ "dependencies": {
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ }
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "events": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
+ },
+ "ext": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+ "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+ "requires": {
+ "type": "^2.0.0"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz",
+ "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow=="
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "form-data": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
+ "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+ "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "glob-stream": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
+ "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
+ "requires": {
+ "extend": "^3.0.0",
+ "glob": "^7.1.1",
+ "glob-parent": "^3.1.0",
+ "is-negated-glob": "^1.0.0",
+ "ordered-read-streams": "^1.0.0",
+ "pumpify": "^1.3.5",
+ "readable-stream": "^2.1.5",
+ "remove-trailing-separator": "^1.0.1",
+ "to-absolute-glob": "^2.0.0",
+ "unique-stream": "^2.0.2"
+ }
+ },
+ "help-me": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz",
+ "integrity": "sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y=",
+ "requires": {
+ "callback-stream": "^1.0.2",
+ "glob-stream": "^6.1.0",
+ "through2": "^2.0.1",
+ "xtend": "^4.0.0"
+ }
+ },
+ "ibmiotf": {
+ "version": "0.2.41",
+ "resolved": "https://registry.npmjs.org/ibmiotf/-/ibmiotf-0.2.41.tgz",
+ "integrity": "sha512-oOdGmi19h7x61EMGiE+cDAt9SDbBIQaNyhqhNi31ndtU3Qt6ohiG0ltHvrrmh9UmIyJwa21cq2hFP7aCsYqz/w==",
+ "requires": {
+ "axios": "^0.5.4",
+ "bluebird": "^2.9.34",
+ "btoa": "^1.1.2",
+ "concat-stream": "^1.6.0",
+ "events": "^1.0.2",
+ "form-data": "^2.2.0",
+ "format": "^0.2.1",
+ "loglevel": "^1.4.0",
+ "mqtt": "^2.8.2"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "requires": {
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ },
+ "is-negated-glob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
+ "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI="
+ },
+ "is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "requires": {
+ "is-unc-path": "^1.0.0"
+ }
+ },
+ "is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "requires": {
+ "unc-path-regex": "^0.1.2"
+ }
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ },
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA="
+ },
+ "loglevel": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.6.tgz",
+ "integrity": "sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ=="
+ },
+ "mime-db": {
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
+ },
+ "mime-types": {
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+ "requires": {
+ "mime-db": "1.43.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "mqtt": {
+ "version": "2.18.8",
+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-2.18.8.tgz",
+ "integrity": "sha512-3h6oHlPY/yWwtC2J3geraYRtVVoRM6wdI+uchF4nvSSafXPZnaKqF8xnX+S22SU/FcgEAgockVIlOaAX3fkMpA==",
+ "requires": {
+ "commist": "^1.0.0",
+ "concat-stream": "^1.6.2",
+ "end-of-stream": "^1.4.1",
+ "es6-map": "^0.1.5",
+ "help-me": "^1.0.1",
+ "inherits": "^2.0.3",
+ "minimist": "^1.2.0",
+ "mqtt-packet": "^5.6.0",
+ "pump": "^3.0.0",
+ "readable-stream": "^2.3.6",
+ "reinterval": "^1.1.0",
+ "split2": "^2.1.1",
+ "websocket-stream": "^5.1.2",
+ "xtend": "^4.0.1"
+ }
+ },
+ "mqtt-packet": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-5.6.1.tgz",
+ "integrity": "sha512-eaF9rO2uFrIYEHomJxziuKTDkbWW5psLBaIGCazQSKqYsTaB3n4SpvJ1PexKaDBiPnMLPIFWBIiTYT3IfEJfww==",
+ "requires": {
+ "bl": "^1.2.1",
+ "inherits": "^2.0.3",
+ "process-nextick-args": "^2.0.0",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "ordered-read-streams": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
+ "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
+ "requires": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "reinterval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz",
+ "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc="
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "split2": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
+ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
+ "requires": {
+ "through2": "^2.0.2"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "through2-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+ "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "to-absolute-glob": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
+ "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
+ "requires": {
+ "is-absolute": "^1.0.0",
+ "is-negated-glob": "^1.0.0"
+ }
+ },
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
+ },
+ "unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
+ },
+ "unique-stream": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+ "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+ "requires": {
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "through2-filter": "^3.0.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "websocket-stream": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.5.0.tgz",
+ "integrity": "sha512-EXy/zXb9kNHI07TIMz1oIUIrPZxQRA8aeJ5XYg5ihV8K4kD1DuA+FY6R96HfdIHzlSzS8HiISAfrm+vVQkZBug==",
+ "requires": {
+ "duplexify": "^3.5.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.3",
+ "safe-buffer": "^5.1.2",
+ "ws": "^3.2.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ }
+ }
+}
diff --git a/external/meta-iot-cloud/recipes-ibm/node-red-contrib-ibm-watson-iot/node-red-contrib-ibm-watson-iot_0.2.8.bb b/external/meta-iot-cloud/recipes-ibm/node-red-contrib-ibm-watson-iot/node-red-contrib-ibm-watson-iot_0.2.8.bb
new file mode 100644
index 00000000..34053982
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-ibm/node-red-contrib-ibm-watson-iot/node-red-contrib-ibm-watson-iot_0.2.8.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Connect to IBM Watson Internet of Things Plaform as a Device or Gateway"
+AUTHOR = "Nick O'Leary"
+HOMEPAGE = "https://github.com/ibm-watson-iot/node-red-contrib-ibm-watson-iot"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9812725859172d1c78fb60518d16fe64"
+
+inherit npm
+
+RDEPENDS_${PN} = "\
+ bash \
+ node-red \
+"
+
+SRC_URI = "\
+ npm://registry.npmjs.org;package=${BPN};version=${PV} \
+ npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
+"
+
+PR = "r1"
+
+S = "${WORKDIR}/npm"
diff --git a/external/meta-iot-cloud/recipes-ibm/python/python-ibmiotf.inc b/external/meta-iot-cloud/recipes-ibm/python/python-ibmiotf.inc
new file mode 100644
index 00000000..e5f19f6a
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-ibm/python/python-ibmiotf.inc
@@ -0,0 +1,30 @@
+DESCRIPTION = "Python Client for IBM Watson IoT Platform"
+AUTHOR = "David Parker"
+HOMEPAGE = "https://github.com/ibm-watson-iot/iot-python"
+LICENSE = "EPL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=30b3836521b3d65bef598bbc358a3afa"
+
+PR = "r0"
+
+RDEPENDS_${PN} = "\
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-setuptools \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-iso8601 \
+ ${PYTHON_PN}-paho-mqtt \
+ ${PYTHON_PN}-pytz \
+ ${PYTHON_PN}-requests \
+ ${PYTHON_PN}-requests-toolbelt \
+ ${PYTHON_PN}-dicttoxml \
+ ${PYTHON_PN}-xmltodict \
+"
+
+SRC_URI = "git://github.com/ibm-watson-iot/iot-python.git"
+SRCREV = "d334fe9a61823054ba9c200fdd56e0ee050d5b1e"
+
+S = "${WORKDIR}/git"
diff --git a/external/meta-iot-cloud/recipes-ibm/python/python3-ibmiotf_0.3.4.bb b/external/meta-iot-cloud/recipes-ibm/python/python3-ibmiotf_0.3.4.bb
new file mode 100644
index 00000000..d296ac4d
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-ibm/python/python3-ibmiotf_0.3.4.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-ibmiotf.inc
diff --git a/external/meta-iot-cloud/recipes-node-red/node-red/node-red/node-red.service b/external/meta-iot-cloud/recipes-node-red/node-red/node-red/node-red.service
new file mode 100644
index 00000000..566d59a2
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-node-red/node-red/node-red/node-red.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Node-RED
+
+[Service]
+Environment=NODE_ENV=production
+ExecStart=/bin/su root -c 'node /usr/lib/node_modules/node-red/red.js'
+Restart=always
+RestartSec=30
+
+[Install]
+WantedBy=multi-user.target
diff --git a/external/meta-iot-cloud/recipes-node-red/node-red/node-red/npm-shrinkwrap.json b/external/meta-iot-cloud/recipes-node-red/node-red/node-red/npm-shrinkwrap.json
new file mode 100644
index 00000000..86c65acd
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-node-red/node-red/node-red/npm-shrinkwrap.json
@@ -0,0 +1,2567 @@
+{
+ "name": "node-red",
+ "version": "1.0.2",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz",
+ "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==",
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ },
+ "@node-red/editor-api": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-1.0.2.tgz",
+ "integrity": "sha512-yUvTU5b7gDL35NIC2qC54NY0uuIAewVzcPWsc+Rbjy9YpY1DUD2Gt5Ub9gR2QPWYtVPG4zSPOBtPhZEcZvBSxQ==",
+ "requires": {
+ "@node-red/editor-client": "1.0.2",
+ "@node-red/util": "1.0.2",
+ "bcrypt": "3.0.6",
+ "bcryptjs": "2.4.3",
+ "body-parser": "1.19.0",
+ "clone": "2.1.2",
+ "cors": "2.8.5",
+ "express": "4.17.1",
+ "express-session": "1.16.2",
+ "memorystore": "1.6.1",
+ "mime": "2.4.4",
+ "mustache": "3.0.2",
+ "oauth2orize": "1.11.0",
+ "passport": "0.4.0",
+ "passport-http-bearer": "1.0.1",
+ "passport-oauth2-client-password": "0.1.2",
+ "when": "3.7.8",
+ "ws": "6.2.1"
+ }
+ },
+ "@node-red/editor-client": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-1.0.2.tgz",
+ "integrity": "sha512-BhgzwWjxjrQJnZC/BMIZvco4H5ksZl+qh+3hy40ReDrNpp8xSc3mDIFoB785CZrYBtFMhasE2q0kqdYuNKE/Zw=="
+ },
+ "@node-red/nodes": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@node-red/nodes/-/nodes-1.0.2.tgz",
+ "integrity": "sha512-o5N0FZnLAEd1lF2ArLGoETosukFVI+nPTHWKUOoSd069eLuaS262BOTbbnk/oY4H2DEWQzjGZ2KKBItWlhbpXQ==",
+ "requires": {
+ "ajv": "6.10.2",
+ "body-parser": "1.19.0",
+ "cheerio": "0.22.0",
+ "content-type": "1.0.4",
+ "cookie": "0.4.0",
+ "cookie-parser": "1.4.4",
+ "cors": "2.8.5",
+ "cron": "1.7.1",
+ "denque": "1.4.1",
+ "fs-extra": "8.1.0",
+ "fs.notify": "0.0.4",
+ "hash-sum": "2.0.0",
+ "https-proxy-agent": "2.2.2",
+ "iconv-lite": "0.5.0",
+ "is-utf8": "0.2.1",
+ "js-yaml": "3.13.1",
+ "media-typer": "1.1.0",
+ "mqtt": "2.18.8",
+ "multer": "1.4.2",
+ "mustache": "3.0.2",
+ "on-headers": "1.0.2",
+ "raw-body": "2.4.1",
+ "request": "2.88.0",
+ "ws": "6.2.1",
+ "xml2js": "0.4.19"
+ },
+ "dependencies": {
+ "http-errors": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
+ "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz",
+ "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "media-typer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
+ "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="
+ },
+ "raw-body": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz",
+ "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==",
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.3",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ }
+ }
+ }
+ }
+ },
+ "@node-red/registry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@node-red/registry/-/registry-1.0.2.tgz",
+ "integrity": "sha512-i6TZvVriini0732IN2DVMofkG8RmiaLKpkHaP1aRceHvweDQB4yorcQsPDxqU+uiJo3lQlc1oB5j13X3mdq8DQ==",
+ "requires": {
+ "@node-red/util": "1.0.2",
+ "semver": "6.3.0",
+ "uglify-js": "3.6.0",
+ "when": "3.7.8"
+ }
+ },
+ "@node-red/runtime": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@node-red/runtime/-/runtime-1.0.2.tgz",
+ "integrity": "sha512-YMKu5HA4WWYdf2PinysONiEFkmoz+PHD4u9ormREBXPr4iCWmZ2+XqL4QRGAc/RA8FJQ8liCr2rLDUvAuSSVOQ==",
+ "requires": {
+ "@node-red/registry": "1.0.2",
+ "@node-red/util": "1.0.2",
+ "clone": "2.1.2",
+ "express": "4.17.1",
+ "fs-extra": "8.1.0",
+ "json-stringify-safe": "5.0.1",
+ "when": "3.7.8"
+ }
+ },
+ "@node-red/util": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@node-red/util/-/util-1.0.2.tgz",
+ "integrity": "sha512-DwaS8ZDcIFcMUQCWpMEVt38Pr6H2JBCeghZEs5v6nH+pnemUi1x6Mi+CSvwywVc4WN4uzGhVr8dWxFh1Q6/iEQ==",
+ "requires": {
+ "clone": "2.1.2",
+ "i18next": "15.1.2",
+ "json-stringify-safe": "5.0.1",
+ "jsonata": "1.6.5",
+ "when": "3.7.8"
+ }
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "agent-base": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+ "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ }
+ },
+ "ajv": {
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "append-field": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
+ "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "async": {
+ "version": "0.1.22",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE="
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+ },
+ "aws4": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
+ "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "basic-auth": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
+ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "bcrypt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-3.0.6.tgz",
+ "integrity": "sha512-taA5bCTfXe7FUjKroKky9EXpdhkVvhE5owfxfLYodbrAR1Ul3juLmIQmIQBK4L9a5BuUcE6cqmwT+Da20lF9tg==",
+ "optional": true,
+ "requires": {
+ "nan": "2.13.2",
+ "node-pre-gyp": "0.12.0"
+ }
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bcryptjs": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
+ "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms="
+ },
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "busboy": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
+ "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
+ "requires": {
+ "dicer": "0.2.5",
+ "readable-stream": "1.1.x"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
+ },
+ "callback-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz",
+ "integrity": "sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "> 1.0.0 < 3.0.0"
+ }
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "cheerio": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
+ "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=",
+ "requires": {
+ "css-select": "~1.2.0",
+ "dom-serializer": "~0.1.0",
+ "entities": "~1.1.1",
+ "htmlparser2": "^3.9.1",
+ "lodash.assignin": "^4.0.9",
+ "lodash.bind": "^4.1.4",
+ "lodash.defaults": "^4.0.1",
+ "lodash.filter": "^4.4.0",
+ "lodash.flatten": "^4.2.0",
+ "lodash.foreach": "^4.3.0",
+ "lodash.map": "^4.4.0",
+ "lodash.merge": "^4.4.0",
+ "lodash.pick": "^4.2.1",
+ "lodash.reduce": "^4.4.0",
+ "lodash.reject": "^4.4.0",
+ "lodash.some": "^4.4.0"
+ }
+ },
+ "chownr": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
+ "optional": true
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ },
+ "commist": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz",
+ "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==",
+ "requires": {
+ "leven": "^2.1.0",
+ "minimist": "^1.1.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
+ },
+ "cookie-parser": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz",
+ "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==",
+ "requires": {
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+ }
+ }
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "cron": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/cron/-/cron-1.7.1.tgz",
+ "integrity": "sha512-gmMB/pJcqUVs/NklR1sCGlNYM7TizEw+1gebz20BMc/8bTm/r7QUp3ZPSPlG8Z5XRlvb7qhjEjq/+bdIfUCL2A==",
+ "requires": {
+ "moment-timezone": "^0.5.x"
+ }
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-what": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
+ },
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "optional": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "optional": true
+ },
+ "denque": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz",
+ "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ=="
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "optional": true
+ },
+ "dicer": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
+ "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
+ "requires": {
+ "readable-stream": "1.1.x",
+ "streamsearch": "0.1.2"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
+ "dom-serializer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "entities": "^1.1.1"
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
+ },
+ "es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-set": "~0.1.5",
+ "es6-symbol": "~3.1.1",
+ "event-emitter": "~0.3.5"
+ }
+ },
+ "es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+ },
+ "es6-promisify": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+ "requires": {
+ "es6-promise": "^4.0.3"
+ }
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "~0.3.5"
+ },
+ "dependencies": {
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ }
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "express-session": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.16.2.tgz",
+ "integrity": "sha512-oy0sRsdw6n93E9wpCNWKRnSsxYnSDX9Dnr9mhZgqUEEorzcq5nshGYSZ4ZReHFhKQ80WI5iVUUSPW7u3GaKauw==",
+ "requires": {
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~2.0.0",
+ "on-headers": "~1.0.2",
+ "parseurl": "~1.3.3",
+ "safe-buffer": "5.1.2",
+ "uid-safe": "~2.1.5"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "ext": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+ "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+ "requires": {
+ "type": "^2.0.0"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz",
+ "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow=="
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs-minipass": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+ "optional": true,
+ "requires": {
+ "minipass": "^2.6.0"
+ }
+ },
+ "fs.notify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/fs.notify/-/fs.notify-0.0.4.tgz",
+ "integrity": "sha1-YyhNRaNLUs5gCIpt2+xbd208AT0=",
+ "requires": {
+ "async": "~0.1.22",
+ "retry": "~0.6.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "glob-stream": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
+ "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
+ "requires": {
+ "extend": "^3.0.0",
+ "glob": "^7.1.1",
+ "glob-parent": "^3.1.0",
+ "is-negated-glob": "^1.0.0",
+ "ordered-read-streams": "^1.0.0",
+ "pumpify": "^1.3.5",
+ "readable-stream": "^2.1.5",
+ "remove-trailing-separator": "^1.0.1",
+ "to-absolute-glob": "^2.0.0",
+ "unique-stream": "^2.0.2"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "optional": true
+ },
+ "hash-sum": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
+ "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg=="
+ },
+ "help-me": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz",
+ "integrity": "sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y=",
+ "requires": {
+ "callback-stream": "^1.0.2",
+ "glob-stream": "^6.1.0",
+ "through2": "^2.0.1",
+ "xtend": "^4.0.0"
+ }
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+ "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ }
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz",
+ "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==",
+ "requires": {
+ "agent-base": "^4.3.0",
+ "debug": "^3.1.0"
+ }
+ },
+ "i18next": {
+ "version": "15.1.2",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-15.1.2.tgz",
+ "integrity": "sha512-98ELn/dqep00DQ/v1E1gpM21HNN6nqU3mS85mYKd9P7lXrhfUcuysPaa3HviKSFb3WPdjf7avuAST3P0dhNp/A==",
+ "requires": {
+ "@babel/runtime": "^7.3.1"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
+ "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
+ "optional": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "optional": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+ "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
+ },
+ "is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "requires": {
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ },
+ "is-negated-glob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
+ "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI="
+ },
+ "is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "requires": {
+ "is-unc-path": "^1.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "requires": {
+ "unc-path-regex": "^0.1.2"
+ }
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "jsonata": {
+ "version": "1.6.5",
+ "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.6.5.tgz",
+ "integrity": "sha512-iRx9U6AkvsjrRdFf9MMbQmGVAL3bXVANR12vbVxjgXouMPU9VJQEcFnLWUCaW8IDmOzdxsaxK4Xe7SGlBYr5Bg=="
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA="
+ },
+ "lodash.assignin": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
+ "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI="
+ },
+ "lodash.bind": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
+ "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU="
+ },
+ "lodash.defaults": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw="
+ },
+ "lodash.filter": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
+ "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4="
+ },
+ "lodash.flatten": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8="
+ },
+ "lodash.foreach": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM="
+ },
+ "lodash.map": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
+ "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM="
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ },
+ "lodash.pick": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM="
+ },
+ "lodash.reduce": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
+ "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs="
+ },
+ "lodash.reject": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
+ "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU="
+ },
+ "lodash.some": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
+ "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0="
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ }
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "memorystore": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.1.tgz",
+ "integrity": "sha512-rYRjVukgBR9sptGI3IfpAjZc4SkupddhAenUhPTGprnqM8Qh863PxfXxXWlfvHpMIAkJCok28Bm7ZlOKB4U+MA==",
+ "requires": {
+ "debug": "3.1.0",
+ "lru-cache": "^4.0.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ },
+ "mime": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+ "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="
+ },
+ "mime-db": {
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
+ },
+ "mime-types": {
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+ "requires": {
+ "mime-db": "1.43.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+ "optional": true,
+ "requires": {
+ "minipass": "^2.9.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
+ },
+ "moment-timezone": {
+ "version": "0.5.27",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.27.tgz",
+ "integrity": "sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw==",
+ "requires": {
+ "moment": ">= 2.9.0"
+ }
+ },
+ "mqtt": {
+ "version": "2.18.8",
+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-2.18.8.tgz",
+ "integrity": "sha512-3h6oHlPY/yWwtC2J3geraYRtVVoRM6wdI+uchF4nvSSafXPZnaKqF8xnX+S22SU/FcgEAgockVIlOaAX3fkMpA==",
+ "requires": {
+ "commist": "^1.0.0",
+ "concat-stream": "^1.6.2",
+ "end-of-stream": "^1.4.1",
+ "es6-map": "^0.1.5",
+ "help-me": "^1.0.1",
+ "inherits": "^2.0.3",
+ "minimist": "^1.2.0",
+ "mqtt-packet": "^5.6.0",
+ "pump": "^3.0.0",
+ "readable-stream": "^2.3.6",
+ "reinterval": "^1.1.0",
+ "split2": "^2.1.1",
+ "websocket-stream": "^5.1.2",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
+ },
+ "mqtt-packet": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-5.6.1.tgz",
+ "integrity": "sha512-eaF9rO2uFrIYEHomJxziuKTDkbWW5psLBaIGCazQSKqYsTaB3n4SpvJ1PexKaDBiPnMLPIFWBIiTYT3IfEJfww==",
+ "requires": {
+ "bl": "^1.2.1",
+ "inherits": "^2.0.3",
+ "process-nextick-args": "^2.0.0",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "multer": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz",
+ "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==",
+ "requires": {
+ "append-field": "^1.0.0",
+ "busboy": "^0.2.11",
+ "concat-stream": "^1.5.2",
+ "mkdirp": "^0.5.1",
+ "object-assign": "^4.1.1",
+ "on-finished": "^2.3.0",
+ "type-is": "^1.6.4",
+ "xtend": "^4.0.0"
+ }
+ },
+ "mustache": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.0.2.tgz",
+ "integrity": "sha512-64neoEgmozb8e/ecGBOSE+RfnevLSFzCI0UKPcrWmjv953/8fXhYO9+EQFtfbi6hwoFxcTA+Fp5mRiOiI9eTuA=="
+ },
+ "nan": {
+ "version": "2.13.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
+ "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
+ "optional": true
+ },
+ "needle": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz",
+ "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==",
+ "optional": true,
+ "requires": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
+ },
+ "node-pre-gyp": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz",
+ "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "optional": true
+ }
+ }
+ },
+ "node-red-node-rbe": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.2.8.tgz",
+ "integrity": "sha512-v2pZOn/raE87JLB86l5fH2JkU7uthqzV3lLI9WcL+fA+vDlg5iN2p/eQfhUy1DhgEmqmGrLu03h5efv+Sly5Vg=="
+ },
+ "node-red-node-tail": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/node-red-node-tail/-/node-red-node-tail-0.0.3.tgz",
+ "integrity": "sha512-wEiT7bSeU9oVHPK7S+mHb3cR6cIf9l205wTiHzhnUAuoDJS+IdwQkkpFgKTYmkL4Py2LvqCU90h85YpQul7QFQ==",
+ "requires": {
+ "tail": "^2.0.2"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz",
+ "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
+ "optional": true,
+ "requires": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="
+ },
+ "npm-packlist": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz",
+ "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==",
+ "optional": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1",
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ },
+ "oauth2orize": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.0.tgz",
+ "integrity": "sha1-eTzvJR1F696sMq5AqLaBT6qx1IM=",
+ "requires": {
+ "debug": "2.x.x",
+ "uid2": "0.0.x",
+ "utils-merge": "1.x.x"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "ordered-read-streams": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
+ "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
+ "requires": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "passport": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz",
+ "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=",
+ "requires": {
+ "passport-strategy": "1.x.x",
+ "pause": "0.0.1"
+ }
+ },
+ "passport-http-bearer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz",
+ "integrity": "sha1-FHRp6jZp4qhMYWfvmdu3fh8AmKg=",
+ "requires": {
+ "passport-strategy": "1.x.x"
+ }
+ },
+ "passport-oauth2-client-password": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz",
+ "integrity": "sha1-TzeLZ4uS0W270jOmxwZSAJPlYbo=",
+ "requires": {
+ "passport-strategy": "1.x.x"
+ }
+ },
+ "passport-strategy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
+ "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ="
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ },
+ "pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "proxy-addr": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+ "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.0"
+ }
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ },
+ "psl": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
+ "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+ },
+ "random-bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
+ "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
+ },
+ "reinterval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz",
+ "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc="
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ }
+ }
+ },
+ "retry": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.6.1.tgz",
+ "integrity": "sha1-/ckO7ZQ/3hG4k1VLjMY9DombqRg="
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "optional": true
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "optional": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "split2": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
+ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
+ "requires": {
+ "through2": "^2.0.2"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ },
+ "stream-shift": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
+ },
+ "streamsearch": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
+ "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "optional": true
+ },
+ "tail": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tail/-/tail-2.0.3.tgz",
+ "integrity": "sha512-s9NOGkLqqiDEtBttQZI7acLS8ycYK5sTlDwNjGnpXG9c8AWj0cfAtwEIzo/hVRMMiC5EYz+bXaJWC1u1u0GPpQ=="
+ },
+ "tar": {
+ "version": "4.4.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+ "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+ "optional": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ }
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "through2-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+ "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "to-absolute-glob": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
+ "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
+ "requires": {
+ "is-absolute": "^1.0.0",
+ "is-negated-glob": "^1.0.0"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ }
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "uglify-js": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
+ "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
+ "requires": {
+ "commander": "~2.20.0",
+ "source-map": "~0.6.1"
+ }
+ },
+ "uid-safe": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
+ "requires": {
+ "random-bytes": "~1.0.0"
+ }
+ },
+ "uid2": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
+ "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I="
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
+ },
+ "unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
+ },
+ "unique-stream": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+ "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+ "requires": {
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "through2-filter": "^3.0.0"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "websocket-stream": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.5.0.tgz",
+ "integrity": "sha512-EXy/zXb9kNHI07TIMz1oIUIrPZxQRA8aeJ5XYg5ihV8K4kD1DuA+FY6R96HfdIHzlSzS8HiISAfrm+vVQkZBug==",
+ "requires": {
+ "duplexify": "^3.5.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.3",
+ "safe-buffer": "^5.1.2",
+ "ws": "^3.2.0",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ }
+ }
+ },
+ "when": {
+ "version": "3.7.8",
+ "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
+ "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I="
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "ws": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+ "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "xml2js": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
+ "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
+ "requires": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~9.0.1"
+ }
+ },
+ "xmlbuilder": {
+ "version": "9.0.7",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ }
+ }
+}
diff --git a/external/meta-iot-cloud/recipes-node-red/node-red/node-red_1.0.2.bb b/external/meta-iot-cloud/recipes-node-red/node-red/node-red_1.0.2.bb
new file mode 100644
index 00000000..b627e742
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-node-red/node-red/node-red_1.0.2.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Node-RED"
+HOMEPAGE = "http://nodered.org"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d6f37569f5013072e9490d2194d10ae6"
+
+inherit npm
+
+PR = "r0"
+
+SRC_URI = "\
+ npm://registry.npmjs.org;package=${BPN};version=${PV} \
+ npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
+ file://${BPN}.service \
+"
+
+S = "${WORKDIR}/npm"
+
+do_install_append() {
+ # Service
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_unitdir}/system/
+
+ # Remove hardware specific files
+ rm ${D}/${bindir}/${BPN}-pi
+ rm -rf ${D}/${libdir}/node_modules/${BPN}/bin
+}
+
+inherit systemd
+
+SYSTEMD_AUTO_ENABLE = "enable"
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+
+FILES_${PN} += "\
+ ${systemd_unitdir} \
+"
diff --git a/external/meta-iot-cloud/recipes-oisp/oisp-cli/oisp-cli/npm-shrinkwrap.json b/external/meta-iot-cloud/recipes-oisp/oisp-cli/oisp-cli/npm-shrinkwrap.json
new file mode 100644
index 00000000..490d1b87
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-oisp/oisp-cli/oisp-cli/npm-shrinkwrap.json
@@ -0,0 +1,5743 @@
+{
+ "name": "@open-iot-service-platform/oisp-cli",
+ "version": "1.1.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+ "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.8.3"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz",
+ "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.8.3",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.13",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
+ "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.8.3",
+ "@babel/template": "^7.8.3",
+ "@babel/types": "^7.8.3"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
+ "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.8.3"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
+ "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.8.3"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
+ "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz",
+ "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==",
+ "dev": true
+ },
+ "@babel/template": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
+ "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.8.3",
+ "@babel/parser": "^7.8.3",
+ "@babel/types": "^7.8.3"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz",
+ "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.8.3",
+ "@babel/generator": "^7.8.4",
+ "@babel/helper-function-name": "^7.8.3",
+ "@babel/helper-split-export-declaration": "^7.8.3",
+ "@babel/parser": "^7.8.4",
+ "@babel/types": "^7.8.3",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.13"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/types": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
+ "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@open-iot-service-platform/oisp-sdk-js": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@open-iot-service-platform/oisp-sdk-js/-/oisp-sdk-js-1.1.1.tgz",
+ "integrity": "sha512-d5RzhtBx7zZMFgJ+j1Smh/3lZhwcQoaFazkH2OqvHrFm3fibBe83PPWvjpNEuVdQ83UUt3YQdrOpcAYc5QVRZQ==",
+ "requires": {
+ "async": "^3.1.0",
+ "borc": "^2.1.1",
+ "mqtt": "^3.0.0",
+ "request": "^2.88.0",
+ "tunnel": "0.0.6",
+ "websocket": "^1.0.29"
+ }
+ },
+ "@sinonjs/commons": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.0.tgz",
+ "integrity": "sha512-qbk9AP+cZUsKdW1GJsBpxPKFmCJ0T8swwzVje3qFd+AkQb74Q/tiuzrdfFg8AD2g5HH/XbE/I8Uc1KYHVYWfhg==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/formatio": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz",
+ "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1",
+ "@sinonjs/samsam": "^3.1.0"
+ }
+ },
+ "@sinonjs/samsam": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz",
+ "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.3.0",
+ "array-from": "^2.1.1",
+ "lodash": "^4.17.15"
+ }
+ },
+ "@sinonjs/text-encoding": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
+ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "acorn": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz",
+ "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
+ "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
+ "dev": true
+ },
+ "ajv": {
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
+ "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
+ "dev": true
+ },
+ "ansi-colors": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
+ "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "append-transform": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
+ "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
+ "dev": true,
+ "requires": {
+ "default-require-extensions": "^2.0.0"
+ }
+ },
+ "archy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
+ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ },
+ "dependencies": {
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ }
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
+ "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=",
+ "dev": true
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-from": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz",
+ "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=",
+ "dev": true
+ },
+ "array-slice": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
+ "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true
+ },
+ "async": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.1.1.tgz",
+ "integrity": "sha512-X5Dj8hK1pJNC2Wzo2Rcp9FBVdJMGRR/S7V+lH46s8GVFhtbo5O4Le5GECCF/8PISVdkUA6mMPvgz7qTTD1rf1g=="
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+ },
+ "aws4": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
+ "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "base64-js": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bignumber.js": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
+ "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A=="
+ },
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "borc": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.1.tgz",
+ "integrity": "sha512-vPLLC2/gS0QN4O3cnPh+8jLshkMMD4qIfs+B1TPGPh30WrtcfItaO6j4k9alsqu/hIgKi8dVdmMvTcbq4tIF7A==",
+ "requires": {
+ "bignumber.js": "^9.0.0",
+ "commander": "^2.15.0",
+ "ieee754": "^1.1.8",
+ "iso-url": "~0.4.4",
+ "json-text-sequence": "~0.1.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "caching-transform": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz",
+ "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==",
+ "dev": true,
+ "requires": {
+ "hasha": "^3.0.0",
+ "make-dir": "^2.0.0",
+ "package-hash": "^3.0.0",
+ "write-file-atomic": "^2.4.2"
+ }
+ },
+ "callback-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz",
+ "integrity": "sha1-RwGlEmbwbgbqpx/BcjOCLYdfSQg=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "> 1.0.0 < 3.0.0"
+ }
+ },
+ "caller-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "requires": {
+ "callsites": "^0.2.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true
+ }
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ }
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "chai": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
+ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^3.0.1",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.1.0",
+ "type-detect": "^4.0.5"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+ "dev": true
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true
+ },
+ "circular-json": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
+ "dev": true
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^2.0.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ },
+ "coffeescript": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz",
+ "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
+ "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
+ "requires": {
+ "color-convert": "^1.9.1",
+ "color-string": "^1.5.2"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "color-string": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
+ "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "colornames": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz",
+ "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y="
+ },
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
+ },
+ "colorspace": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz",
+ "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==",
+ "requires": {
+ "color": "3.0.x",
+ "text-hex": "1.0.x"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ },
+ "commist": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz",
+ "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==",
+ "requires": {
+ "leven": "^2.1.0",
+ "minimist": "^1.1.0"
+ }
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "complex.js": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.0.11.tgz",
+ "integrity": "sha512-6IArJLApNtdg1P1dFtn3dnyzoZBEF0MwMnrfF1exSBRpZYoy4yieMkpZhQDC0uwctw48vii0CFVyHfpgZ/DfGw=="
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "cp-file": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz",
+ "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^2.0.0",
+ "nested-error-stacks": "^2.0.0",
+ "pify": "^4.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
+ }
+ },
+ "cross-spawn": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
+ "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "which": "^1.2.9"
+ }
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
+ },
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "dateformat": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1",
+ "meow": "^3.3.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decimal.js": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz",
+ "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw=="
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true
+ },
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "default-require-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
+ "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=",
+ "dev": true,
+ "requires": {
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "delimit-stream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz",
+ "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs="
+ },
+ "detect-file": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
+ "dev": true
+ },
+ "diagnostics": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
+ "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==",
+ "requires": {
+ "colorspace": "1.1.x",
+ "enabled": "1.0.x",
+ "kuler": "1.0.x"
+ }
+ },
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "enabled": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
+ "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
+ "requires": {
+ "env-variable": "0.0.x"
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "env-variable": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz",
+ "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg=="
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ }
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
+ "es6-error": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
+ "dev": true
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-set": "~0.1.5",
+ "es6-symbol": "~3.1.1",
+ "event-emitter": "~0.3.5"
+ }
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "~0.3.5"
+ },
+ "dependencies": {
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ }
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "escape-latex": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz",
+ "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw=="
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "eslint": {
+ "version": "5.16.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz",
+ "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==",
+ "dev": true,
+ "requires": {
+ "@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"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+ "dev": true
+ },
+ "espree": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
+ "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
+ "dev": true,
+ "requires": {
+ "acorn": "^6.0.7",
+ "acorn-jsx": "^5.0.0",
+ "eslint-visitor-keys": "^1.0.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
+ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.0.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "eventemitter2": {
+ "version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
+ "dev": true
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+ "dev": true,
+ "requires": {
+ "homedir-polyfill": "^1.0.1"
+ }
+ },
+ "ext": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+ "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+ "requires": {
+ "type": "^2.0.0"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz",
+ "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow=="
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "fast-deep-equal": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fast-safe-stringify": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
+ "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="
+ },
+ "fecha": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
+ "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "findup-sync": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
+ "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
+ "dev": true,
+ "requires": {
+ "glob": "~5.0.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
+ }
+ },
+ "fined": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
+ "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.2",
+ "is-plain-object": "^2.0.3",
+ "object.defaults": "^1.1.0",
+ "object.pick": "^1.2.0",
+ "parse-filepath": "^1.0.1"
+ }
+ },
+ "flagged-respawn": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
+ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
+ "dev": true
+ },
+ "flat": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
+ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "~2.0.3"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
+ "dev": true
+ }
+ }
+ },
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ }
+ },
+ "flatted": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
+ "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
+ "dev": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "foreground-child": {
+ "version": "1.5.6",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
+ "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^4",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fraction.js": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.12.tgz",
+ "integrity": "sha512-8Z1K0VTG4hzYY7kA/1sj4/r1/RWLBD3xwReT/RCrUCbzPszjNQCCsy3ktkU/eaEqX3MYa4pY37a52eiBlPMlhA=="
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
+ "getobject": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "glob-stream": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
+ "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
+ "requires": {
+ "extend": "^3.0.0",
+ "glob": "^7.1.1",
+ "glob-parent": "^3.1.0",
+ "is-negated-glob": "^1.0.0",
+ "ordered-read-streams": "^1.0.0",
+ "pumpify": "^1.3.5",
+ "readable-stream": "^2.1.5",
+ "remove-trailing-separator": "^1.0.1",
+ "to-absolute-glob": "^2.0.0",
+ "unique-stream": "^2.0.2"
+ }
+ },
+ "global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true
+ },
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "dev": true
+ },
+ "grunt": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.4.tgz",
+ "integrity": "sha512-PYsMOrOC+MsdGEkFVwMaMyc6Ob7pKmq+deg1Sjr+vvMWp35sztfwKE7qoN51V+UEtHsyNuMcGdgMLFkBHvMxHQ==",
+ "dev": true,
+ "requires": {
+ "coffeescript": "~1.10.0",
+ "dateformat": "~1.0.12",
+ "eventemitter2": "~0.4.13",
+ "exit": "~0.1.1",
+ "findup-sync": "~0.3.0",
+ "glob": "~7.0.0",
+ "grunt-cli": "~1.2.0",
+ "grunt-known-options": "~1.1.0",
+ "grunt-legacy-log": "~2.0.0",
+ "grunt-legacy-util": "~1.1.1",
+ "iconv-lite": "~0.4.13",
+ "js-yaml": "~3.13.0",
+ "minimatch": "~3.0.2",
+ "mkdirp": "~0.5.1",
+ "nopt": "~3.0.6",
+ "path-is-absolute": "~1.0.0",
+ "rimraf": "~2.6.2"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
+ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "grunt-cli": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
+ "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
+ "dev": true,
+ "requires": {
+ "findup-sync": "~0.3.0",
+ "grunt-known-options": "~1.1.0",
+ "nopt": "~3.0.6",
+ "resolve": "~1.1.0"
+ }
+ },
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-cli": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz",
+ "integrity": "sha512-8OHDiZZkcptxVXtMfDxJvmN7MVJNE8L/yIcPb4HB7TlyFD1kDvjHrb62uhySsU14wJx9ORMnTuhRMQ40lH/orQ==",
+ "dev": true,
+ "requires": {
+ "grunt-known-options": "~1.1.0",
+ "interpret": "~1.1.0",
+ "liftoff": "~2.5.0",
+ "nopt": "~4.0.1",
+ "v8flags": "~3.1.1"
+ },
+ "dependencies": {
+ "nopt": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ }
+ }
+ },
+ "grunt-known-options": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
+ "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==",
+ "dev": true
+ },
+ "grunt-legacy-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz",
+ "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==",
+ "dev": true,
+ "requires": {
+ "colors": "~1.1.2",
+ "grunt-legacy-log-utils": "~2.0.0",
+ "hooker": "~0.2.3",
+ "lodash": "~4.17.5"
+ },
+ "dependencies": {
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-legacy-log-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz",
+ "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==",
+ "dev": true,
+ "requires": {
+ "chalk": "~2.4.1",
+ "lodash": "~4.17.10"
+ }
+ },
+ "grunt-legacy-util": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz",
+ "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==",
+ "dev": true,
+ "requires": {
+ "async": "~1.5.2",
+ "exit": "~0.1.1",
+ "getobject": "~0.1.0",
+ "hooker": "~0.2.3",
+ "lodash": "~4.17.10",
+ "underscore.string": "~3.3.4",
+ "which": "~1.3.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-simple-nyc": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-simple-nyc/-/grunt-simple-nyc-3.0.1.tgz",
+ "integrity": "sha512-/YLY+jNI6gBuVO3xu07zwvDN+orTAFS50W00yb/2ncvc2PFO4pR+oU7TyiHhe8a6O3KuQDHsyCE0iE+rqJagQg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.15",
+ "nyc": "^14.1.0",
+ "simple-cli": "^5.0.3"
+ }
+ },
+ "gruntify-eslint": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/gruntify-eslint/-/gruntify-eslint-5.0.0.tgz",
+ "integrity": "sha512-pa2sXHK9+U4dCGdGSIMkpJARNwRStdLBsddNxmSHSSWROUdhWMrXvFWm6pj48zJhyV3Qy068VIuF1seYIvc0cw==",
+ "dev": true,
+ "requires": {
+ "eslint": "^5.0.0"
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hasha": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz",
+ "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=",
+ "dev": true,
+ "requires": {
+ "is-stream": "^1.0.1"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "help-me": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz",
+ "integrity": "sha1-jy1QjQYAtKRW2i8IZVbn5cBWo8Y=",
+ "requires": {
+ "callback-stream": "^1.0.2",
+ "glob-stream": "^6.1.0",
+ "through2": "^2.0.1",
+ "xtend": "^4.0.0"
+ }
+ },
+ "homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dev": true,
+ "requires": {
+ "parse-passwd": "^1.0.0"
+ }
+ },
+ "hooker": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
+ "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
+ "dev": true
+ },
+ "html-escaper": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz",
+ "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==",
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
+ "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.2.0",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.12",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+ "dev": true
+ },
+ "is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "requires": {
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
+ "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ },
+ "is-negated-glob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
+ "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI="
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "requires": {
+ "is-unc-path": "^1.0.0"
+ }
+ },
+ "is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "requires": {
+ "unc-path-regex": "^0.1.2"
+ }
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "iso-url": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.6.tgz",
+ "integrity": "sha512-YQO7+aIe6l1aSJUKOx+Vrv08DlhZeLFIVfehG2L29KLSEb9RszqPXilxJRVpp57px36BddKR5ZsebacO5qG0tg=="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "istanbul-lib-coverage": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+ "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+ "dev": true
+ },
+ "istanbul-lib-hook": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz",
+ "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==",
+ "dev": true,
+ "requires": {
+ "append-transform": "^1.0.0"
+ }
+ },
+ "istanbul-lib-instrument": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
+ "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
+ "dev": true,
+ "requires": {
+ "@babel/generator": "^7.4.0",
+ "@babel/parser": "^7.4.3",
+ "@babel/template": "^7.4.0",
+ "@babel/traverse": "^7.4.3",
+ "@babel/types": "^7.4.0",
+ "istanbul-lib-coverage": "^2.0.5",
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
+ "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^2.0.5",
+ "make-dir": "^2.1.0",
+ "supports-color": "^6.1.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
+ "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^2.0.5",
+ "make-dir": "^2.1.0",
+ "rimraf": "^2.6.3",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz",
+ "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==",
+ "dev": true,
+ "requires": {
+ "html-escaper": "^2.0.0"
+ }
+ },
+ "javascript-natural-sort": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz",
+ "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k="
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "json-text-sequence": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz",
+ "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=",
+ "requires": {
+ "delimit-stream": "0.1.0"
+ }
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "just-extend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz",
+ "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==",
+ "dev": true
+ },
+ "key-list": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/key-list/-/key-list-0.1.4.tgz",
+ "integrity": "sha512-DMGLZAmEoKRUHPlc772EW0i92P/WY12/oWYc2pQZb5MVGOSjYmF0BEQXbOLjbou1+/PqZ+CivwfyjaUwmyl4CQ==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ },
+ "kuler": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz",
+ "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==",
+ "requires": {
+ "colornames": "^1.1.1"
+ }
+ },
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA="
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "liftoff": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
+ "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
+ "dev": true,
+ "requires": {
+ "extend": "^3.0.0",
+ "findup-sync": "^2.0.0",
+ "fined": "^1.0.1",
+ "flagged-respawn": "^1.0.0",
+ "is-plain-object": "^2.0.4",
+ "object.map": "^1.0.0",
+ "rechoir": "^0.6.2",
+ "resolve": "^1.1.7"
+ },
+ "dependencies": {
+ "findup-sync": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
+ "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
+ "dev": true,
+ "requires": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^3.1.0",
+ "micromatch": "^3.0.4",
+ "resolve-dir": "^1.0.1"
+ }
+ }
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "dependencies": {
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ },
+ "lodash.flattendeep": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
+ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "logform": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz",
+ "integrity": "sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==",
+ "requires": {
+ "colors": "^1.2.1",
+ "fast-safe-stringify": "^2.0.4",
+ "fecha": "^2.3.3",
+ "ms": "^2.1.1",
+ "triple-beam": "^1.3.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "lolex": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz",
+ "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
+ }
+ },
+ "make-iterator": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
+ "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "mathjs": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-6.6.0.tgz",
+ "integrity": "sha512-gYYc1+irFbwuwYUx6O8G2YauvbD1+tPBbq829PaxAiRWpPzPEE8pvwGgvdMuk6c3pqhm6Do/mN26vLiQP46H5A==",
+ "requires": {
+ "complex.js": "^2.0.11",
+ "decimal.js": "^10.2.0",
+ "escape-latex": "^1.2.0",
+ "fraction.js": "^4.0.12",
+ "javascript-natural-sort": "^0.7.1",
+ "seed-random": "^2.2.0",
+ "tiny-emitter": "^2.1.0",
+ "typed-function": "^1.1.1"
+ }
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ }
+ },
+ "merge-source-map": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
+ "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "mime-db": {
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
+ },
+ "mime-types": {
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+ "requires": {
+ "mime-db": "1.43.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ }
+ }
+ },
+ "mocha": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz",
+ "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "3.2.3",
+ "browser-stdout": "1.3.1",
+ "debug": "3.2.6",
+ "diff": "3.5.0",
+ "escape-string-regexp": "1.0.5",
+ "find-up": "3.0.0",
+ "glob": "7.1.3",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "3.13.1",
+ "log-symbols": "2.2.0",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "ms": "2.1.1",
+ "node-environment-flags": "1.0.5",
+ "object.assign": "4.1.0",
+ "strip-json-comments": "2.0.1",
+ "supports-color": "6.0.0",
+ "which": "1.3.1",
+ "wide-align": "1.1.3",
+ "yargs": "13.3.0",
+ "yargs-parser": "13.1.1",
+ "yargs-unparser": "1.6.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
+ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "mqtt": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-3.0.0.tgz",
+ "integrity": "sha512-0nKV6MAc1ibKZwaZQUTb3iIdT4NVpj541BsYrqrGBcQdQ7Jd0MnZD1/6/nj1UFdGTboK9ZEUXvkCu2nPCugHFA==",
+ "requires": {
+ "base64-js": "^1.3.0",
+ "commist": "^1.0.0",
+ "concat-stream": "^1.6.2",
+ "end-of-stream": "^1.4.1",
+ "es6-map": "^0.1.5",
+ "help-me": "^1.0.1",
+ "inherits": "^2.0.3",
+ "minimist": "^1.2.0",
+ "mqtt-packet": "^6.0.0",
+ "pump": "^3.0.0",
+ "readable-stream": "^2.3.6",
+ "reinterval": "^1.1.0",
+ "split2": "^3.1.0",
+ "websocket-stream": "^5.1.2",
+ "xtend": "^4.0.1"
+ }
+ },
+ "mqtt-packet": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.3.0.tgz",
+ "integrity": "sha512-TjusSKu8uFZCmGZU8K6r4C3Ic+er/4r8rva+Mp5GQgWg/KjSdAfLK/GTucBwkdATE2Z0Da8AssI2WHzs0M9W0w==",
+ "requires": {
+ "bl": "^1.2.2",
+ "inherits": "^2.0.3",
+ "process-nextick-args": "^2.0.0",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "nested-error-stacks": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz",
+ "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
+ "nise": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz",
+ "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/formatio": "^3.2.1",
+ "@sinonjs/text-encoding": "^0.7.1",
+ "just-extend": "^4.0.2",
+ "lolex": "^5.0.1",
+ "path-to-regexp": "^1.7.0"
+ },
+ "dependencies": {
+ "lolex": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz",
+ "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ }
+ }
+ },
+ "node-environment-flags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
+ "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
+ "dev": true,
+ "requires": {
+ "object.getownpropertydescriptors": "^2.0.3",
+ "semver": "^5.7.0"
+ }
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "nyc": {
+ "version": "14.1.1",
+ "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz",
+ "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==",
+ "dev": true,
+ "requires": {
+ "archy": "^1.0.0",
+ "caching-transform": "^3.0.2",
+ "convert-source-map": "^1.6.0",
+ "cp-file": "^6.2.0",
+ "find-cache-dir": "^2.1.0",
+ "find-up": "^3.0.0",
+ "foreground-child": "^1.5.6",
+ "glob": "^7.1.3",
+ "istanbul-lib-coverage": "^2.0.5",
+ "istanbul-lib-hook": "^2.0.7",
+ "istanbul-lib-instrument": "^3.3.0",
+ "istanbul-lib-report": "^2.0.8",
+ "istanbul-lib-source-maps": "^3.0.6",
+ "istanbul-reports": "^2.2.4",
+ "js-yaml": "^3.13.1",
+ "make-dir": "^2.1.0",
+ "merge-source-map": "^1.1.0",
+ "resolve-from": "^4.0.0",
+ "rimraf": "^2.6.3",
+ "signal-exit": "^3.0.2",
+ "spawn-wrap": "^1.4.2",
+ "test-exclude": "^5.2.3",
+ "uuid": "^3.3.2",
+ "yargs": "^13.2.2",
+ "yargs-parser": "^13.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ }
+ }
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.defaults": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
+ "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
+ "dev": true,
+ "requires": {
+ "array-each": "^1.0.1",
+ "array-slice": "^1.0.0",
+ "for-own": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
+ "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1"
+ }
+ },
+ "object.map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
+ "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
+ "dev": true,
+ "requires": {
+ "for-own": "^1.0.0",
+ "make-iterator": "^1.0.0"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "one-time": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
+ "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4="
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "opted": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/opted/-/opted-1.0.2.tgz",
+ "integrity": "sha1-CU562dDA/CuzhLTYpQfieOrVV8k=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.4"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "ordered-read-streams": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
+ "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
+ "requires": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "package-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz",
+ "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.15",
+ "hasha": "^3.0.0",
+ "lodash.flattendeep": "^4.4.0",
+ "release-zalgo": "^1.0.0"
+ }
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-filepath": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
+ "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
+ "dev": true,
+ "requires": {
+ "is-absolute": "^1.0.0",
+ "map-cache": "^0.2.0",
+ "path-root": "^0.1.1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
+ "dev": true
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-root": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
+ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
+ "dev": true,
+ "requires": {
+ "path-root-regex": "^0.1.0"
+ }
+ },
+ "path-root-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
+ "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "dev": true,
+ "requires": {
+ "isarray": "0.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ }
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pathval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
+ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
+ "dev": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ }
+ }
+ },
+ "pluralize": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
+ "dev": true
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "psl": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
+ "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "dev": true,
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+ "dev": true
+ },
+ "reinterval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz",
+ "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc="
+ },
+ "release-zalgo": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
+ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=",
+ "dev": true,
+ "requires": {
+ "es6-error": "^4.0.1"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "require-uncached": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^0.1.0",
+ "resolve-from": "^1.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true
+ }
+ }
+ },
+ "resolve": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz",
+ "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
+ "rewire": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/rewire/-/rewire-4.0.1.tgz",
+ "integrity": "sha512-+7RQ/BYwTieHVXetpKhT11UbfF6v1kGhKFrtZN7UDL2PybMsSt/rpLWeEUGF5Ndsl1D5BxiCB14VDJyoX+noYw==",
+ "dev": true,
+ "requires": {
+ "eslint": "^4.19.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "requires": {
+ "acorn": "^3.0.4"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "eslint": {
+ "version": "4.19.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
+ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.3.0",
+ "babel-code-frame": "^6.22.0",
+ "chalk": "^2.1.0",
+ "concat-stream": "^1.6.0",
+ "cross-spawn": "^5.1.0",
+ "debug": "^3.1.0",
+ "doctrine": "^2.1.0",
+ "eslint-scope": "^3.7.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^3.5.4",
+ "esquery": "^1.0.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^2.0.0",
+ "functional-red-black-tree": "^1.0.1",
+ "glob": "^7.1.2",
+ "globals": "^11.0.1",
+ "ignore": "^3.3.3",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^3.0.6",
+ "is-resolvable": "^1.0.0",
+ "js-yaml": "^3.9.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.2",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.2",
+ "pluralize": "^7.0.0",
+ "progress": "^2.0.0",
+ "regexpp": "^1.0.1",
+ "require-uncached": "^1.0.3",
+ "semver": "^5.3.0",
+ "strip-ansi": "^4.0.0",
+ "strip-json-comments": "~2.0.1",
+ "table": "4.0.2",
+ "text-table": "~0.2.0"
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz",
+ "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "espree": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
+ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
+ "dev": true,
+ "requires": {
+ "acorn": "^5.5.0",
+ "acorn-jsx": "^3.0.0"
+ }
+ },
+ "external-editor": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.4.0",
+ "iconv-lite": "^0.4.17",
+ "tmp": "^0.0.33"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^1.2.1",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "flat-cache": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz",
+ "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==",
+ "dev": true,
+ "requires": {
+ "circular-json": "^0.3.1",
+ "graceful-fs": "^4.1.2",
+ "rimraf": "~2.6.2",
+ "write": "^0.2.1"
+ }
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.0",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^2.0.4",
+ "figures": "^2.0.0",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rx-lite": "^4.0.8",
+ "rx-lite-aggregates": "^4.0.8",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^4.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "regexpp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
+ "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "table": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
+ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.2.3",
+ "ajv-keywords": "^2.1.0",
+ "chalk": "^2.1.0",
+ "lodash": "^4.17.4",
+ "slice-ansi": "1.0.0",
+ "string-width": "^2.1.1"
+ }
+ },
+ "write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ }
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
+ "dev": true
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true,
+ "requires": {
+ "rx-lite": "*"
+ }
+ },
+ "rxjs": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+ "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "seed-random": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz",
+ "integrity": "sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "simple-cli": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/simple-cli/-/simple-cli-5.0.5.tgz",
+ "integrity": "sha512-Er2FhsIayL/sktxg6fOCdNQJBTXhlf/fswNFsdmks88xsHzQ/IXGwxYgSSKeXBq4yqn83/iD4Sg8yjagwysUgw==",
+ "dev": true,
+ "requires": {
+ "async": "^3.1.0",
+ "chalk": "^2.4.2",
+ "cross-spawn": "^7.0.0",
+ "key-list": "^0.1.4",
+ "lodash": "^4.17.15",
+ "opted": "^1.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz",
+ "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "sinon": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz",
+ "integrity": "sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.4.0",
+ "@sinonjs/formatio": "^3.2.1",
+ "@sinonjs/samsam": "^3.3.3",
+ "diff": "^3.5.0",
+ "lolex": "^4.2.0",
+ "nise": "^1.5.2",
+ "supports-color": "^5.5.0"
+ }
+ },
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
+ },
+ "spawn-wrap": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz",
+ "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==",
+ "dev": true,
+ "requires": {
+ "foreground-child": "^1.5.6",
+ "mkdirp": "^0.5.0",
+ "os-homedir": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "signal-exit": "^3.0.2",
+ "which": "^1.3.0"
+ }
+ },
+ "spdx-correct": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+ "dev": true
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "split2": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.1.1.tgz",
+ "integrity": "sha512-emNzr1s7ruq4N+1993yht631/JH+jaj0NYBosuKmLcq+JkGQ9MmTw1RB1fGaTCzUuseRIClrlSLHRNYGwWQ58Q==",
+ "requires": {
+ "readable-stream": "^3.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+ "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "sprintf-js": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ }
+ },
+ "test-exclude": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
+ "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3",
+ "minimatch": "^3.0.4",
+ "read-pkg-up": "^4.0.0",
+ "require-main-filename": "^2.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
+ "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0",
+ "read-pkg": "^3.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "text-hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
+ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "through2-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+ "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "tiny-emitter": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
+ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-absolute-glob": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
+ "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
+ "requires": {
+ "is-absolute": "^1.0.0",
+ "is-negated-glob": "^1.0.0"
+ }
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ }
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "triple-beam": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
+ "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
+ },
+ "tslib": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
+ "dev": true
+ },
+ "tunnel": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
+ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "typed-function": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-1.1.1.tgz",
+ "integrity": "sha512-RbN7MaTQBZLJYzDENHPA0nUmWT0Ex80KHItprrgbTPufYhIlTePvCXZxyQK7wgn19FW5bnuaBIKcBb5mRWjB1Q=="
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
+ },
+ "unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
+ },
+ "underscore.string": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz",
+ "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "^1.0.3",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ }
+ },
+ "unique-stream": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+ "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+ "requires": {
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "through2-filter": "^3.0.0"
+ }
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ }
+ }
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ },
+ "v8flags": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz",
+ "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==",
+ "dev": true,
+ "requires": {
+ "homedir-polyfill": "^1.0.1"
+ }
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "websocket": {
+ "version": "1.0.31",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz",
+ "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==",
+ "requires": {
+ "debug": "^2.2.0",
+ "es5-ext": "^0.10.50",
+ "nan": "^2.14.0",
+ "typedarray-to-buffer": "^3.1.5",
+ "yaeti": "^0.0.6"
+ }
+ },
+ "websocket-stream": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.5.0.tgz",
+ "integrity": "sha512-EXy/zXb9kNHI07TIMz1oIUIrPZxQRA8aeJ5XYg5ihV8K4kD1DuA+FY6R96HfdIHzlSzS8HiISAfrm+vVQkZBug==",
+ "requires": {
+ "duplexify": "^3.5.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.3",
+ "safe-buffer": "^5.1.2",
+ "ws": "^3.2.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "winston": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz",
+ "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==",
+ "requires": {
+ "async": "^2.6.1",
+ "diagnostics": "^1.1.1",
+ "is-stream": "^1.1.0",
+ "logform": "^2.1.1",
+ "one-time": "0.0.4",
+ "readable-stream": "^3.1.1",
+ "stack-trace": "0.0.x",
+ "triple-beam": "^1.3.0",
+ "winston-transport": "^4.3.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "readable-stream": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+ "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "winston-transport": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz",
+ "integrity": "sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==",
+ "requires": {
+ "readable-stream": "^2.3.6",
+ "triple-beam": "^1.2.0"
+ }
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
+ "write-file-atomic": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yaeti": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
+ "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc="
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
+ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "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.1"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ }
+ }
+ },
+ "yargs-unparser": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz",
+ "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==",
+ "dev": true,
+ "requires": {
+ "flat": "^4.1.0",
+ "lodash": "^4.17.15",
+ "yargs": "^13.3.0"
+ }
+ }
+ }
+}
diff --git a/external/meta-iot-cloud/recipes-oisp/oisp-cli/oisp-cli_1.1.0.bb b/external/meta-iot-cloud/recipes-oisp/oisp-cli/oisp-cli_1.1.0.bb
new file mode 100644
index 00000000..c9bbd839
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-oisp/oisp-cli/oisp-cli_1.1.0.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "OISP Command Line Interface"
+AUTHOR = "Intel"
+HOMEPAGE = "https://github.com/Open-IoT-Service-Platform/oisp-cli"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=753cb46fee8d2addab0d40c31b2ff141"
+
+inherit npm
+
+ORGANIZATION = "open-iot-service-platform"
+
+SRC_URI = "\
+ npm://registry.npmjs.org;package=@${ORGANIZATION}/${BPN};version=${PV} \
+ npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
+"
+
+PR = "r0"
+
+S = "${WORKDIR}/npm"
+
+OISP_CONFIG ?= "${S}/config/config.json.template"
+
+do_install_append() {
+ # Copy config and create a symlink
+ install -d ${D}${sysconfdir}/oisp
+ install -m 0644 ${OISP_CONFIG} ${D}/${libdir}/node_modules/@${ORGANIZATION}/${BPN}/config/config.json
+ ln -s ${libdir}/node_modules/@${ORGANIZATION}/${BPN}/config/config.json ${D}/${sysconfdir}/oisp/cli.json
+}
+
+FILES_${PN} += " \
+ ${libdir}/node_modules/@${ORGANIZATION}/${BPN} \
+ ${sysconfdir}/oisp \
+" \ No newline at end of file
diff --git a/external/meta-iot-cloud/recipes-oisp/python/python-oisp.inc b/external/meta-iot-cloud/recipes-oisp/python/python-oisp.inc
new file mode 100644
index 00000000..4d152f6b
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-oisp/python/python-oisp.inc
@@ -0,0 +1,23 @@
+SUMMARY = "An object oriented API for Open IoT Service Platform"
+AUTHOR = "Ali Rasim Kocal"
+HOMEPAGE = "https://github.com/Open-IoT-Service-Platform/oisp-sdk-python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=1;endline=26;md5=de80b0f7718e1ddbed2ace2fe1f1c8ff"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-cbor \
+ ${PYTHON_PN}-requests \
+ ${PYTHON_PN}-termcolor \
+"
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-netclient \
+"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "43e6bfc02bda09c67eb338de8651a7fc"
+SRC_URI[sha256sum] = "4a74d2b2974c1c78932a60b4cf1583a53016222bac46f4361007244fbb463cda"
diff --git a/external/meta-iot-cloud/recipes-oisp/python/python3-oisp_0.2.0.1.bb b/external/meta-iot-cloud/recipes-oisp/python/python3-oisp_0.2.0.1.bb
new file mode 100644
index 00000000..ca46a947
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-oisp/python/python3-oisp_0.2.0.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-oisp.inc
diff --git a/external/meta-iot-cloud/recipes-support/cjson/cjson_1.7.10.bb b/external/meta-iot-cloud/recipes-support/cjson/cjson_1.7.10.bb
new file mode 100644
index 00000000..fc2b673d
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-support/cjson/cjson_1.7.10.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Ultralightweight JSON parser in ANSI C"
+HOMEPAGE = "https://github.com/DaveGamble/cJSON"
+AUTHOR = "Dave Gamble"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=218947f77e8cb8e2fa02918dc41c50d0"
+
+inherit cmake pkgconfig
+
+PR = "r0"
+
+SRC_URI = "\
+ git://github.com/DaveGamble/cJSON.git \
+"
+
+SRCREV = "c69134d01746dcf551dd7724b4edb12f922eb0d1"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN}-dev += "\
+ ${libdir}/cmake \
+"
+
+EXTRA_OECMAKE += "\
+ -DENABLE_CUSTOM_COMPILER_FLAGS=OFF \
+ -DBUILD_SHARED_AND_STATIC_LIBS=On \
+"
diff --git a/external/meta-iot-cloud/recipes-support/http-parser/http-parser_2.8.1.bb b/external/meta-iot-cloud/recipes-support/http-parser/http-parser_2.8.1.bb
new file mode 100644
index 00000000..8fd2fba9
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-support/http-parser/http-parser_2.8.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Parser for HTTP messages written in C"
+HOMEPAGE = "https://github.com/nodejs/http-parser"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=9bfa835d048c194ab30487af8d7b3778"
+
+SRC_URI = "git://github.com/nodejs/http-parser.git"
+SRCREV = "54f55a2f02a823e5f5c87abe853bb76d1170718d"
+
+PR = "r0"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "\
+ 'CFLAGS=${CFLAGS} -Wno-implicit-fallthrough' \
+"
+
+do_configure[noexec] = "1"
+
+do_compile() {
+ oe_runmake library package
+}
+
+do_install() {
+ oe_libinstall -C ${S} -so libhttp_parser ${D}${libdir}
+
+ install -d ${D}${includedir}
+ install -m 0644 ${S}/*.h ${D}${includedir}
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-support/maven/files/settings.xml b/external/meta-iot-cloud/recipes-support/maven/files/settings.xml
new file mode 100644
index 00000000..e27c579c
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-support/maven/files/settings.xml
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<!--
+ | This is the configuration file for Maven. It can be specified at two levels:
+ |
+ | 1. User Level. This settings.xml file provides configuration for a single user,
+ | and is normally provided in ${user.home}/.m2/settings.xml.
+ |
+ | NOTE: This location can be overridden with the CLI option:
+ |
+ | -s /path/to/user/settings.xml
+ |
+ | 2. Global Level. This settings.xml file provides configuration for all Maven
+ | users on a machine (assuming they're all using the same Maven
+ | installation). It's normally provided in
+ | ${maven.conf}/settings.xml.
+ |
+ | NOTE: This location can be overridden with the CLI option:
+ |
+ | -gs /path/to/global/settings.xml
+ |
+ | The sections in this sample file are intended to give you a running start at
+ | getting the most out of your Maven installation. Where appropriate, the default
+ | values (values used when the setting is not specified) are provided.
+ |
+ |-->
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
+ <!-- localRepository
+ | The path to the local repository maven will use to store artifacts.
+ |
+ | Default: ${user.home}/.m2/repository
+ <localRepository>/path/to/local/repo</localRepository>
+ -->
+
+ <!-- interactiveMode
+ | This will determine whether maven prompts you when it needs input. If set to false,
+ | maven will use a sensible default value, perhaps based on some other setting, for
+ | the parameter in question.
+ |
+ | Default: true
+ <interactiveMode>true</interactiveMode>
+ -->
+
+ <!-- offline
+ | Determines whether maven should attempt to connect to the network when executing a build.
+ | This will have an effect on artifact downloads, artifact deployment, and others.
+ |
+ | Default: false
+ <offline>false</offline>
+ -->
+
+ <!-- pluginGroups
+ | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
+ | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
+ | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
+ |-->
+ <pluginGroups>
+ <!-- pluginGroup
+ | Specifies a further group identifier to use for plugin lookup.
+ <pluginGroup>com.your.plugins</pluginGroup>
+ -->
+ </pluginGroups>
+
+ <!-- proxies
+ | This is a list of proxies which can be used on this machine to connect to the network.
+ | Unless otherwise specified (by system property or command-line switch), the first proxy
+ | specification in this list marked as active will be used.
+ |-->
+ <proxies>
+ <!-- proxy
+ | Specification for one proxy, to be used in connecting to the network.
+ |
+ <proxy>
+ <id>optional</id>
+ <active>true</active>
+ <protocol>http</protocol>
+ <username>proxyuser</username>
+ <password>proxypass</password>
+ <host>proxy.host.net</host>
+ <port>80</port>
+ <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
+ </proxy>
+ -->
+ </proxies>
+
+ <!-- servers
+ | This is a list of authentication profiles, keyed by the server-id used within the system.
+ | Authentication profiles can be used whenever maven must make a connection to a remote server.
+ |-->
+ <servers>
+ <!-- server
+ | Specifies the authentication information to use when connecting to a particular server, identified by
+ | a unique name within the system (referred to by the 'id' attribute below).
+ |
+ | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
+ | used together.
+ |
+ <server>
+ <id>deploymentRepo</id>
+ <username>repouser</username>
+ <password>repopwd</password>
+ </server>
+ -->
+
+ <!-- Another sample, using keys to authenticate.
+ <server>
+ <id>siteServer</id>
+ <privateKey>/path/to/private/key</privateKey>
+ <passphrase>optional; leave empty if not used.</passphrase>
+ </server>
+ -->
+ </servers>
+
+ <!-- mirrors
+ | This is a list of mirrors to be used in downloading artifacts from remote repositories.
+ |
+ | It works like this: a POM may declare a repository to use in resolving certain artifacts.
+ | However, this repository may have problems with heavy traffic at times, so people have mirrored
+ | it to several places.
+ |
+ | That repository definition will have a unique id, so we can create a mirror reference for that
+ | repository, to be used as an alternate download site. The mirror site will be the preferred
+ | server for that repository.
+ |-->
+ <mirrors>
+ <!-- mirror
+ | Specifies a repository mirror site to use instead of a given repository. The repository that
+ | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
+ | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
+ |
+ <mirror>
+ <id>mirrorId</id>
+ <mirrorOf>repositoryId</mirrorOf>
+ <name>Human Readable Name for this Mirror.</name>
+ <url>http://my.repository.com/repo/path</url>
+ </mirror>
+ -->
+ </mirrors>
+
+ <!-- profiles
+ | This is a list of profiles which can be activated in a variety of ways, and which can modify
+ | the build process. Profiles provided in the settings.xml are intended to provide local machine-
+ | specific paths and repository locations which allow the build to work in the local environment.
+ |
+ | For example, if you have an integration testing plugin - like cactus - that needs to know where
+ | your Tomcat instance is installed, you can provide a variable here such that the variable is
+ | dereferenced during the build process to configure the cactus plugin.
+ |
+ | As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
+ | section of this document (settings.xml) - will be discussed later. Another way essentially
+ | relies on the detection of a system property, either matching a particular value for the property,
+ | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
+ | value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
+ | Finally, the list of active profiles can be specified directly from the command line.
+ |
+ | NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
+ | repositories, plugin repositories, and free-form properties to be used as configuration
+ | variables for plugins in the POM.
+ |
+ |-->
+ <profiles>
+ <!-- profile
+ | Specifies a set of introductions to the build process, to be activated using one or more of the
+ | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
+ | or the command line, profiles have to have an ID that is unique.
+ |
+ | An encouraged best practice for profile identification is to use a consistent naming convention
+ | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
+ | This will make it more intuitive to understand what the set of introduced profiles is attempting
+ | to accomplish, particularly when you only have a list of profile id's for debug.
+ |
+ | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.
+ <profile>
+ <id>jdk-1.4</id>
+
+ <activation>
+ <jdk>1.4</jdk>
+ </activation>
+
+ <repositories>
+ <repository>
+ <id>jdk14</id>
+ <name>Repository for JDK 1.4 builds</name>
+ <url>http://www.myhost.com/maven/jdk14</url>
+ <layout>default</layout>
+ <snapshotPolicy>always</snapshotPolicy>
+ </repository>
+ </repositories>
+ </profile>
+ -->
+
+ <!--
+ | Here is another profile, activated by the system property 'target-env' with a value of 'dev',
+ | which provides a specific path to the Tomcat instance. To use this, your plugin configuration
+ | might hypothetically look like:
+ |
+ | ...
+ | <plugin>
+ | <groupId>org.myco.myplugins</groupId>
+ | <artifactId>myplugin</artifactId>
+ |
+ | <configuration>
+ | <tomcatLocation>${tomcatPath}</tomcatLocation>
+ | </configuration>
+ | </plugin>
+ | ...
+ |
+ | NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
+ | anything, you could just leave off the <value/> inside the activation-property.
+ |
+ <profile>
+ <id>env-dev</id>
+
+ <activation>
+ <property>
+ <name>target-env</name>
+ <value>dev</value>
+ </property>
+ </activation>
+
+ <properties>
+ <tomcatPath>/path/to/tomcat/instance</tomcatPath>
+ </properties>
+ </profile>
+ -->
+ </profiles>
+
+ <!-- activeProfiles
+ | List of profiles that are active for all builds.
+ |
+ <activeProfiles>
+ <activeProfile>alwaysActiveProfile</activeProfile>
+ <activeProfile>anotherAlwaysActiveProfile</activeProfile>
+ </activeProfiles>
+ -->
+</settings>
diff --git a/external/meta-iot-cloud/recipes-support/maven/maven_3.6.3.bb b/external/meta-iot-cloud/recipes-support/maven/maven_3.6.3.bb
new file mode 100644
index 00000000..b430cc18
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-support/maven/maven_3.6.3.bb
@@ -0,0 +1,62 @@
+DESCRIPTION = "Apache Maven is a software project management and comprehension tool. Based on the concept of a Project Object Model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+HOMEPAGE = "http://maven.apache.org"
+SECTION = "devel"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=47b7ce43312b5e1e13a8edf5c31245ad"
+
+SRC_URI = "\
+ https://archive.apache.org/dist/maven/maven-3/${PV}/binaries/apache-maven-${PV}-bin.tar.gz \
+ file://settings.xml \
+"
+
+SRC_URI[md5sum] = "9792c717f5845d952907d5144b8253c3"
+SRC_URI[sha256sum] = "26ad91d751b3a9a53087aefa743f4e16a17741d3915b219cf74112bf87a438c5"
+SRC_URI[sha1sum] = "cc836dc7e64b113472df31996caaedf132969009"
+SRC_URI[sha384sum] = "b5a8b74eefcfee6e5b450526143fd562802d37bcedef1fbecc61eb30835329cb52c78d2550a4be14e8dfef04a1c450bb"
+SRC_URI[sha512sum] = "c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0"
+
+PR = "r0"
+
+PACKAGES = "${PN}"
+
+S = "${WORKDIR}/apache-maven-${PV}"
+
+do_configure() {
+ # Install custom settings
+ cp ${WORKDIR}/settings.xml ${S}/conf/settings.xml
+}
+
+python do_install () {
+ bb.build.exec_func("shell_do_install", d)
+ oe.path.make_relative_symlink(d.expand("${D}${bindir}/mvn"))
+}
+
+shell_do_install() {
+ install -d ${D}${libdir}/${BPN}/bin
+ install -m 0755 ${S}/bin/mvn ${D}${libdir}/${BPN}/bin/
+ install -m 0755 ${S}/bin/mvnDebug ${D}${libdir}/${BPN}/bin/
+ install -m 0755 ${S}/bin/mvnyjp ${D}${libdir}/${BPN}/bin/
+ install -m 0644 ${S}/bin/m2.conf ${D}${libdir}/${BPN}/bin/
+
+ install -d ${D}${libdir}/${BPN}/boot
+ install -m 0644 ${S}/boot/* ${D}${libdir}/${BPN}/boot/
+
+ install -d ${D}${libdir}/${BPN}/conf
+ install -d ${D}${libdir}/${BPN}/conf/logging
+ install -m 0644 ${S}/conf/*.xml ${D}${libdir}/${BPN}/conf/
+ install -m 0644 ${S}/conf/logging/* ${D}${libdir}/${BPN}/conf/logging/
+
+ install -d ${D}${libdir}/${BPN}/lib
+ install -m 0644 ${S}/lib/*.jar ${D}${libdir}/${BPN}/lib/
+ install -m 0644 ${S}/lib/*.license ${D}${libdir}/${BPN}/lib/
+
+ install -d ${D}${bindir}
+ ln -sf ${D}${libdir}/${BPN}/bin/mvn ${D}${bindir}/mvn
+}
+
+FILES_${PN} = "\
+ ${libdir} \
+ ${bindir} \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/external/meta-iot-cloud/recipes-support/parson/parson_1.1.0.bb b/external/meta-iot-cloud/recipes-support/parson/parson_1.1.0.bb
new file mode 100644
index 00000000..e9c3df8f
--- /dev/null
+++ b/external/meta-iot-cloud/recipes-support/parson/parson_1.1.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Lightweight JSON library written in C"
+HOMEPAGE = "https://github.com/kgabis/parson"
+AUTHOR = "Krzysztof Gabis"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=14773547851b6ac335d3d7fb7707a021"
+
+inherit cmake pkgconfig
+
+PR = "r0"
+
+SRC_URI = "\
+ git://github.com/kgabis/parson.git;rev=102a4467e10c77ffcfde1d233798780acd719cc5 \
+"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = "\
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+"
+
+FILES_${PN}-dev += "\
+ ${libdir}/cmake \
+"