Closed beneuto closed 7 years ago
Proposed fix in this branch: https://github.com/Azure/azure-iot-sdk-node/tree/fix-25 I'll have it reviewed by the team and checked in, then it'll be available with our next release (next week)
Just confirming: the fix has been checked into the master branch and will be part of the next release. We'll close the issue when the new package is out.
Published v0.1.9 with the fix
Thanks for the quick work, however it is not quite fixed.
Now the UI accepts and shows a different connection string for each IoT Hub node, but the actual connections are still being made through one of them only.
Reopening. can you share your flow(s) and the way you listen to messages? I did test the whole end-to-end thing and it worked fine. I'm curious to see what I missed.
Also, I'd like to state right here that while we do have a plan for better support of node-red, we simply don't have the resources to put it in action right now. This package was developed as a sample at a time where node-red didn't have nearly as much traction or documentation on best practices, and as such doesn't follow the conventions that are now recommended.
When we get to executing on that plan, the next generation of nodes that we ship will have nothing to do with the current implementation and there will be breaking changes.
So, unless you're running quick tests and home experiments, if you're thinking of going to production with node-red, I'd strongly recommend looking at building your own packages for now. The thing we have out there is, quite simply, not up to snuff. I'm more than willing to look into fixing it, but I also have to be realistic as to its state and its future.
@beneuto Hi, I tested again the new version of the node successfully. I did run into something weird though: Apparently when a node is copied from one flow to another, it copies its "instance", so basically, that same node is running in both flows. Could it be that you copy pasted the IoT Hub node?
If I drag and drop a new node from the palette in each flow, it works fine. Can you confirm that?
It is very likely that I cut and pasted the nodes.
I have deleted the nodes, redeployed, uninstalled the package, reinstalled and re-added each node and deployed one at a time. So far it seems to be working!
Thanks for looking into it.
Description of the issue:
I have 2 Azure IoT Hub nodes, 1 per node-red tab. The intention is to write to these using 2 different connection strings (i.e. represented as 2 different devices).
However, both nodes will use whatever the last connection string deployed was. In other words it is possible to connect to IoT Hub as 1 device only within a single node-red instance.
Context
-- uuid@3.0.1 +-- azure-iot-common@1.1.6 +-- azure-iot-device@1.1.8 +-- azure-iot-device-amqp@1.1.8 +-- azure-iot-device-http@1.1.8 +-- azure-iot-device-mqtt@1.1.8 +-- azure-iot-http-base@1.1.6 +-- azure-iothub@1.1.8 +-- azure-storage@2.1.0 | +-- extend@1.2.1 | +-- readable-stream@2.0.6 | +-- request@2.74.0 | | +-- bl@1.1.2 | | +-- extend@3.0.0 | | +-- har-validator@2.0.6 | |
-- qs@6.2.3 | +-- underscore@1.4.4 | +-- validator@3.22.2 |-- xml2js@0.2.7 |
-- sax@0.5.2 +-- backo2@1.0.2 +-- balanced-match@0.4.2 +-- base64-arraybuffer@0.1.5 +-- base64id@1.0.0 +-- bcrypt-pbkdf@1.0.1 +-- bcryptjs@2.4.3 +-- better-assert@1.0.2 +-- bl@1.2.0 +-- blob@0.0.4 +-- bluebird@3.5.0 +-- boom@2.10.1 +-- brace-expansion@1.1.6 +-- braces@1.8.5 +-- browserify-mime@1.2.9 +-- buffer-builder@0.2.0 +-- buffer-shims@1.0.0 +-- bytebuffer@2.3.2 +-- callback-stream@1.1.0 +-- callsite@1.0.0 +-- caseless@0.11.0 +-- chalk@1.1.3 +-- clone@0.1.19 +-- colour@0.7.1 +-- combined-stream@1.0.5 +-- commander@2.9.0 +-- commist@1.0.0 +-- component-bind@1.0.0 +-- component-emitter@1.2.1 +-- component-inherit@0.0.3 +-- concat-map@0.0.1 +-- concat-stream@1.6.0 |-- readable-stream@2.2.3 +-- content-disposition@0.5.2 +-- content-type@1.0.2 +-- cookie@0.3.1 +-- cookie-signature@1.0.6 +-- core-util-is@1.0.2 +-- create-thenable@1.0.2 +-- cron-parser@0.3.6 +-- cryptiles@2.0.5 +-- crypto@0.0.3 +-- crypto-js@3.1.9-1 +-- dashdash@1.14.1 |
-- assert-plus@1.0.0 +-- debug@2.6.3 |-- ms@0.7.2 +-- delayed-stream@1.0.0 +-- depd@1.1.0 +-- destroy@1.0.4 +-- duplexify@3.5.0 |
-- end-of-stream@1.0.0 |-- once@1.3.3 +-- ecc-jsbn@0.1.1 +-- ee-first@1.1.1 +-- encodeurl@1.0.1 +-- end-of-stream@1.4.0 +-- engine.io@1.8.3 | +-- debug@2.3.3 | |
-- ms@0.7.2 |-- ws@1.1.2 |
-- ultron@1.0.2 +-- engine.io-client@1.8.3 | +-- component-emitter@1.2.1 | +-- debug@2.3.3 | |-- ms@0.7.2 |
-- ws@1.1.2 |-- ultron@1.0.2 +-- engine.io-parser@1.3.2 |
-- wtf-8@1.0.0 +-- es5-shim@4.5.9 +-- escape-html@1.0.3 +-- escape-string-regexp@1.0.5 +-- etag@1.8.0 +-- expand-brackets@0.1.5 +-- expand-range@1.8.2 +-- express@4.15.2 | +-- debug@2.6.1 | |-- ms@0.7.2 |
-- qs@6.4.0 +-- extend@1.3.0 +-- extend-shallow@2.0.1 +-- extglob@0.3.2 |-- is-extglob@1.0.0 +-- extsprintf@1.3.0 +-- filename-regex@2.0.0 +-- fill-range@2.2.3 +-- finalhandler@1.0.1 +-- for-in@1.0.2 +-- for-own@0.1.5 +-- forever-agent@0.6.1 +-- form-data@1.0.1 +-- formatio@1.2.0 +-- forwarded@0.1.0 +-- fresh@0.5.0 +-- generate-function@2.0.0 +-- generate-object-property@1.2.0 +-- getpass@0.1.6 |
-- assert-plus@1.0.0 +-- glob@5.0.15 +-- glob-base@0.3.0 | +-- glob-parent@2.0.0 |-- is-glob@2.0.1 |
-- is-extglob@1.0.0 +-- glob-parent@3.1.0 +-- glob-stream@5.3.5 | +-- extend@3.0.0 |-- through2@0.6.5 |
-- readable-stream@1.0.34 |-- isarray@0.0.1 +-- graceful-readlink@1.0.1 +-- har-validator@2.1.3 +-- has-ansi@2.0.0 +-- has-binary@0.1.7 |
-- isarray@0.0.1 +-- has-cors@1.1.0 +-- hash-base@3.0.3 +-- hawk@3.1.3 +-- help-me@1.0.1 +-- hoek@2.16.3 +-- http-errors@1.6.1 +-- http-signature@1.1.1 +-- indexof@0.0.1 +-- inflight@1.0.6 +-- inherits@2.0.3 +-- ipaddr.js@1.3.0 +-- is-buffer@1.1.5 +-- is-dotfile@1.0.2 +-- is-equal-shallow@0.1.3 +-- is-extendable@0.1.1 +-- is-extglob@2.1.1 +-- is-glob@3.1.0 +-- is-my-json-valid@2.16.0 +-- is-number@2.1.0 +-- is-posix-bracket@0.1.1 +-- is-primitive@2.0.0 +-- is-property@1.0.2 +-- is-stream@1.1.0 +-- is-typedarray@1.0.0 +-- isarray@1.0.0 +-- isobject@2.1.0 +-- isstream@0.1.2 +-- jodid25519@1.0.2 +-- jsbn@0.1.1 +-- json-edm-parser@0.1.2 |-- jsonparse@1.2.0 +-- json-schema@0.2.3 +-- json-stable-stringify@1.0.1 +-- json-stringify-safe@5.0.1 +-- json3@3.3.2 +-- jsonify@0.0.0 +-- jsonparse@1.3.0 +-- jsonpointer@4.0.1 +-- jsprim@1.4.0 | +-- assert-plus@1.0.0 | +-- extsprintf@1.0.2 |
-- verror@1.3.6 +-- kind-of@3.1.0 +-- leven@1.0.2 +-- limiter@1.1.0 +-- lodash@4.17.4 +-- lolex@1.6.0 +-- long@1.2.3 +-- machina@2.0.0 |-- lodash@3.10.1 +-- md5.js@1.3.4 +-- media-typer@0.3.0 +-- merge-descriptors@1.0.1 +-- methods@1.1.2 +-- micromatch@2.3.11 | +-- is-extglob@1.0.0 |
-- is-glob@2.0.1 +-- mime@1.3.4 +-- mime-db@1.27.0 +-- mime-types@2.1.15 +-- minimatch@3.0.3 +-- minimist@1.2.0 +-- moment@2.18.1 +-- mqtt@1.14.1 |-- readable-stream@1.0.34 |
-- isarray@0.0.1 +-- mqtt-connection@2.1.1 |-- through2@0.6.5 |
-- readable-stream@1.0.34 |-- isarray@0.0.1 +-- mqtt-packet@3.4.8 |
-- bl@0.9.5 |-- readable-stream@1.0.34 |
-- isarray@0.0.1 +-- ms@0.7.3 +-- native-promise-only@0.8.1 +-- negotiator@0.6.1 +-- node-amqp-encoder@0.0.2 +-- node-crontab@0.0.8 +-- node-int64@0.4.0 +-- node-red-contrib-async@0.0.4 | +-- async@0.9.0 |-- underscore@1.6.0 +-- node-red-contrib-azure-blob-storage@0.0.7 extraneous +-- node-red-contrib-azureiothubnode@0.1.8 | +-- azure-iot-device@1.1.8 | | +-- azure-iot-common@1.1.6 | | |
-- crypto@0.0.3 | | +-- azure-iot-http-base@1.1.6 | | +-- azure-storage@2.1.0 | | | +-- browserify-mime@1.2.9 | | | +-- extend@1.2.1 | | | +-- json-edm-parser@0.1.2 | | | |-- jsonparse@1.2.0 | | | +-- md5.js@1.3.4 | | | |
-- hash-base@3.0.3 | | | +-- node-uuid@1.4.8 | | | +-- readable-stream@2.0.6 | | | | +-- core-util-is@1.0.2 | | | | +-- isarray@1.0.0 | | | | +-- process-nextick-args@1.0.7 | | | | +-- string_decoder@0.10.31 | | | |-- util-deprecate@1.0.2 | | | +-- request@2.74.0 | | | | +-- aws-sign2@0.6.0 | | | | +-- aws4@1.6.0 | | | | +-- bl@1.1.2 | | | | +-- caseless@0.11.0 | | | | +-- combined-stream@1.0.5 | | | | |
-- delayed-stream@1.0.0 | | | | +-- extend@3.0.0 | | | | +-- forever-agent@0.6.1 | | | | +-- form-data@1.0.1 | | | | |-- async@2.2.0 | | | | +-- har-validator@2.0.6 | | | | | +-- chalk@1.1.3 | | | | | | +-- ansi-styles@2.2.1 | | | | | | +-- escape-string-regexp@1.0.5 | | | | | | +-- has-ansi@2.0.0 | | | | | | |
-- ansi-regex@2.1.1 | | | | | | +-- strip-ansi@3.0.1 | | | | | |-- supports-color@2.0.0 | | | | | +-- commander@2.9.0 | | | | | |
-- graceful-readlink@1.0.1 | | | | | +-- is-my-json-valid@2.16.0 | | | | | | +-- generate-function@2.0.0 | | | | | | +-- generate-object-property@1.2.0 | | | | | | |-- is-property@1.0.2 | | | | | |
-- jsonpointer@4.0.1 | | | | |-- pinkie-promise@2.0.1 | | | | |
-- pinkie@2.0.4 | | | | +-- hawk@3.1.3 | | | | | +-- boom@2.10.1 | | | | | +-- cryptiles@2.0.5 | | | | | +-- hoek@2.16.3 | | | | |-- sntp@1.0.9 | | | | +-- http-signature@1.1.1 | | | | | +-- assert-plus@0.2.0 | | | | | +-- jsprim@1.4.0 | | | | | | +-- assert-plus@1.0.0 | | | | | | +-- extsprintf@1.0.2 | | | | | | +-- json-schema@0.2.3 | | | | | |
-- verror@1.3.6 | | | | |-- sshpk@1.11.0 | | | | | +-- asn1@0.2.3 | | | | | +-- assert-plus@1.0.0 | | | | | +-- bcrypt-pbkdf@1.0.1 | | | | | +-- dashdash@1.14.1 | | | | | |
-- assert-plus@1.0.0 | | | | | +-- ecc-jsbn@0.1.1 | | | | | +-- getpass@0.1.6 | | | | | |-- assert-plus@1.0.0 | | | | | +-- jodid25519@1.0.2 | | | | | +-- jsbn@0.1.1 | | | | |
-- tweetnacl@0.14.5 | | | | +-- is-typedarray@1.0.0 | | | | +-- isstream@0.1.2 | | | | +-- json-stringify-safe@5.0.1 | | | | +-- mime-types@2.1.15 | | | | |-- mime-db@1.27.0 | | | | +-- oauth-sign@0.8.2 | | | | +-- qs@6.2.3 | | | | +-- stringstream@0.0.5 | | | | +-- tough-cookie@2.3.2 | | | | |
-- punycode@1.4.1 | | | |-- tunnel-agent@0.4.3 | | | +-- underscore@1.4.4 | | | +-- validator@3.22.2 | | | +-- xml2js@0.2.7 | | | |
-- sax@0.5.2 | | |-- xmlbuilder@0.4.3 | | +-- debug@2.6.3 | | |
-- ms@0.7.2 | | +-- es5-shim@4.5.9 | | +-- lodash@4.17.4 | | +-- machina@2.0.0 | | |-- lodash@3.10.1 | |
-- traverse@0.6.6 | +-- azure-iot-device-amqp@1.1.8 | |-- azure-iot-amqp-base@1.1.7 | | +-- amqp10@3.5.0 | | | +-- buffer-builder@0.2.0 | | | +-- node-int64@0.4.0 | | |
-- stately.js@1.3.0 | | +-- amqp10-transport-ws@0.0.5 | | |-- nodejs-websocket@1.7.1 | | +-- bluebird@3.5.0 | |
-- uuid@3.0.1 | +-- azure-iot-device-http@1.1.8 | |-- node-crontab@0.0.8 | |
-- cron-parser@0.3.6 |-- azure-iot-device-mqtt@1.1.8 |
-- mqtt@1.14.1 | +-- commist@1.0.0 | |-- leven@1.0.2 | +-- concat-stream@1.6.0 | | +-- readable-stream@2.2.6 | | |
-- buffer-shims@1.0.0 | |-- typedarray@0.0.6 | +-- end-of-stream@1.4.0 | |
-- once@1.4.0 | |-- wrappy@1.0.2 | +-- help-me@1.0.1 | | +-- callback-stream@1.1.0 | | +-- glob-stream@5.3.5 | | | +-- extend@3.0.0 | | | +-- glob@5.0.15 | | | | +-- inflight@1.0.6 | | | | +-- minimatch@3.0.3 | | | | |
-- brace-expansion@1.1.6 | | | | | +-- balanced-match@0.4.2 | | | | |-- concat-map@0.0.1 | | | |
-- path-is-absolute@1.0.1 | | | +-- glob-parent@3.1.0 | | | | +-- is-glob@3.1.0 | | | | |-- is-extglob@2.1.1 | | | |
-- path-dirname@1.0.2 | | | +-- micromatch@2.3.11 | | | | +-- arr-diff@2.0.0 | | | | |-- arr-flatten@1.0.1 | | | | +-- array-unique@0.2.1 | | | | +-- braces@1.8.5 | | | | | +-- expand-range@1.8.2 | | | | | |
-- fill-range@2.2.3 | | | | | | +-- is-number@2.1.0 | | | | | | +-- isobject@2.1.0 | | | | | | +-- randomatic@1.1.6 | | | | | |-- repeat-string@1.6.1 | | | | | +-- preserve@0.2.0 | | | | |
-- repeat-element@1.1.2 | | | | +-- expand-brackets@0.1.5 | | | | |-- is-posix-bracket@0.1.1 | | | | +-- extglob@0.3.2 | | | | |
-- is-extglob@1.0.0 | | | | +-- filename-regex@2.0.0 | | | | +-- is-extglob@1.0.0 | | | | +-- is-glob@2.0.1 | | | | +-- kind-of@3.1.0 | | | | |-- is-buffer@1.1.5 | | | | +-- normalize-path@2.1.1 | | | | |
-- remove-trailing-separator@1.0.1 | | | | +-- object.omit@2.0.1 | | | | | +-- for-own@0.1.5 | | | | | |-- for-in@1.0.2 | | | | |
-- is-extendable@0.1.1 | | | | +-- parse-glob@3.0.4 | | | | | +-- glob-base@0.3.0 | | | | | | +-- glob-parent@2.0.0 | | | | | |-- is-glob@2.0.1 | | | | | |
-- is-extglob@1.0.0 | | | | | +-- is-dotfile@1.0.2 | | | | | +-- is-extglob@1.0.0 | | | | |-- is-glob@2.0.1 | | | |
-- regex-cache@0.4.3 | | | | +-- is-equal-shallow@0.1.3 | | | |-- is-primitive@2.0.0 | | | +-- ordered-read-streams@0.3.0 | | | |
-- is-stream@1.1.0 | | | +-- through2@0.6.5 | | | |-- readable-stream@1.0.34 | | | |
-- isarray@0.0.1 | | | +-- to-absolute-glob@0.1.1 | | | |-- extend-shallow@2.0.1 | | |
-- unique-stream@2.2.1 | | | +-- json-stable-stringify@1.0.1 | | | |-- jsonify@0.0.0 | | |
-- through2-filter@2.0.0 | |-- through2@2.0.3 | |
-- readable-stream@2.2.6 | +-- inherits@2.0.3 | +-- minimist@1.2.0 | +-- mqtt-connection@2.1.1 | | +-- reduplexer@1.1.0 | | |-- readable-stream@1.0.34 | | |
-- isarray@0.0.1 | |-- through2@0.6.5 | |
-- readable-stream@1.0.34 | |-- isarray@0.0.1 | +-- mqtt-packet@3.4.8 | |
-- bl@0.9.5 | |-- readable-stream@1.0.34 | |
-- isarray@0.0.1 | +-- pump@1.0.2 | +-- readable-stream@1.0.34 | |-- isarray@0.0.1 | +-- reinterval@1.1.0 | +-- split2@2.1.1 | +-- websocket-stream@3.3.3 | | +-- duplexify@3.5.0 | | | +-- end-of-stream@1.0.0 | | | |
-- once@1.3.3 | | |-- stream-shift@1.0.0 | |
-- ws@1.1.4 | | +-- options@0.0.6 | |-- ultron@1.0.2 |
-- xtend@4.0.1 +-- node-red-contrib-deduplicate@0.2.0 extraneous +-- node-red-contrib-gtfs-realtime@0.0.1 extraneous +-- node-red-contrib-npm@1.0.0 +-- node-red-contrib-protocolbuffersnode@0.0.1 |-- protobufjs@5.0.1 | +-- ascli@1.0.1 | | +-- colour@0.7.1 | |
-- optjs@3.2.2 | +-- bytebuffer@5.0.1 | |-- long@3.2.0 | +-- glob@5.0.15 | | +-- inflight@1.0.6 | | |
-- wrappy@1.0.2 | | +-- inherits@2.0.3 | | +-- minimatch@3.0.3 | | |-- brace-expansion@1.1.6 | | | +-- balanced-match@0.4.2 | | |
-- concat-map@0.0.1 | | +-- once@1.4.0 | |-- path-is-absolute@1.0.1 |
-- yargs@3.32.0 | +-- camelcase@2.1.1 | +-- cliui@3.2.0 | | +-- strip-ansi@3.0.1 | | |-- ansi-regex@2.1.1 | |
-- wrap-ansi@2.1.0 | +-- decamelize@1.2.0 | +-- os-locale@1.4.0 | |-- lcid@1.0.0 | |
-- invert-kv@1.0.0 | +-- string-width@1.0.2 | | +-- code-point-at@1.1.0 | |-- is-fullwidth-code-point@1.0.0 | |
-- number-is-nan@1.0.1 | +-- window-size@0.1.4 |-- y18n@3.2.1 +-- node-red-contrib-rhea@0.0.1 +-- node-red-contrib-ttn@2.0.1 |
-- ttn@2.0.1 |-- mqtt@2.5.0 |
-- mqtt-packet@5.2.2 +-- node-red-contrib-web-worldmap@1.0.24 +-- node-red-dashboard@2.3.5 -> C:\Users\iccadmin\AppData\Roaming\npm\node_modules\node-red-dashboard | +-- serve-static@1.12.1 | | +-- encodeurl@1.0.1 | | +-- escape-html@1.0.3 | | +-- parseurl@1.3.1 | |-- send@0.15.1 | | +-- debug@2.6.1 | | +-- depd@1.1.0 | | +-- destroy@1.0.4 | | +-- etag@1.8.0 | | +-- fresh@0.5.0 | | +-- http-errors@1.6.1 | | | +-- inherits@2.0.3 | | |
-- setprototypeof@1.0.3 | | +-- mime@1.3.4 | | +-- ms@0.7.2 | | +-- on-finished@2.3.0 | | |-- ee-first@1.1.1 | | +-- range-parser@1.2.0 | |
-- statuses@1.3.1 |-- socket.io@1.7.3 | +-- debug@2.3.3 | +-- engine.io@1.8.3 | | +-- accepts@1.3.3 | | | +-- mime-types@2.1.14 | | | |
-- mime-db@1.26.0 | | |-- negotiator@0.6.1 | | +-- base64id@1.0.0 | | +-- cookie@0.3.1 | | +-- debug@2.3.3 | | +-- engine.io-parser@1.3.2 | | | +-- after@0.8.2 | | | +-- arraybuffer.slice@0.0.6 | | | +-- base64-arraybuffer@0.1.5 | | | +-- blob@0.0.4 | | |
-- wtf-8@1.0.0 | |-- ws@1.1.2 | | +-- options@0.0.6 | |
-- ultron@1.0.2 | +-- has-binary@0.1.7 | |-- isarray@0.0.1 | +-- object-assign@4.1.0 | +-- socket.io-adapter@0.5.0 | |
-- debug@2.3.3 | +-- socket.io-client@1.7.3 | | +-- backo2@1.0.2 | | +-- component-bind@1.0.0 | | +-- component-emitter@1.2.1 | | +-- debug@2.3.3 | | +-- engine.io-client@1.8.3 | | | +-- component-emitter@1.2.1 | | | +-- component-inherit@0.0.3 | | | +-- debug@2.3.3 | | | +-- has-cors@1.1.0 | | | +-- parsejson@0.0.3 | | | +-- parseqs@0.0.5 | | | +-- xmlhttprequest-ssl@1.5.3 | | |-- yeast@0.1.2 | | +-- indexof@0.0.1 | | +-- object-component@0.0.3 | | +-- parseuri@0.0.5 | | |
-- better-assert@1.0.2 | | |-- callsite@1.0.0 | |
-- to-array@0.1.4 |-- socket.io-parser@2.3.1 | +-- component-emitter@1.1.2 | +-- debug@2.2.0 | |
-- ms@0.7.1 |-- json3@3.3.2 +-- node-red-node-google@0.1.1 | +-- minimatch@2.0.10 |
-- request@2.74.0 | +-- bl@1.1.2 | |-- readable-stream@2.0.6 | +-- extend@3.0.0 | +-- har-validator@2.0.6 |
-- qs@6.2.3 +-- node-red-node-weather-underground@0.1.7 +-- node-sbus@0.0.6 +-- node-uuid@1.4.8 +-- node-windows@0.1.14 -> C:\Users\iccadmin\AppData\Roaming\npm\node_modules\node-windows | +-- optimist@0.6.1 | | +-- minimist@0.0.10 | |-- wordwrap@0.0.3 |
-- xml@0.0.12 +-- nodejs-websocket@1.7.1 +-- normalize-path@2.0.1 +-- npm@2.15.12 | +-- abbrev@1.0.9 | +-- ansi@0.3.1 | +-- ansi-regex@2.0.0 | +-- ansicolors@0.3.2 | +-- ansistyles@0.1.3 | +-- archy@1.0.0 | +-- async-some@1.0.2 | +-- block-stream@0.0.9 | +-- char-spinner@1.0.1 | +-- chmodr@1.0.2 | +-- chownr@1.0.1 | +-- cmd-shim@2.0.2 | +-- columnify@1.5.4 | |-- wcwidth@1.0.0 | |
-- defaults@1.0.3 | |-- clone@1.0.2 | +-- config-chain@1.1.10 | |
-- proto-list@1.2.4 | +-- dezalgo@1.0.3 | |-- asap@2.0.3 | +-- editor@1.0.0 | +-- fs-vacuum@1.2.9 | +-- fs-write-stream-atomic@1.0.8 | |
-- iferr@0.1.5 | +-- fstream@1.0.10 | +-- fstream-npm@1.1.1 | |-- fstream-ignore@1.0.5 | +-- github-url-from-git@1.4.0 | +-- github-url-from-username-repo@1.0.2 | +-- glob@7.0.6 | | +-- fs.realpath@1.0.0 | |
-- path-is-absolute@1.0.0 | +-- graceful-fs@4.1.6 | +-- hosted-git-info@2.1.5 | +-- imurmurhash@0.1.4 | +-- inflight@1.0.5 | +-- inherits@2.0.3 | +-- ini@1.3.4 | +-- init-package-json@1.9.4 | | +-- glob@6.0.4 | | |-- path-is-absolute@1.0.0 | |
-- promzard@0.3.0 | +-- lockfile@1.0.1 | +-- lru-cache@4.0.1 | | +-- pseudomap@1.0.2 | |-- yallist@2.0.0 | +-- minimatch@3.0.3 | |
-- brace-expansion@1.1.6 | | +-- balanced-match@0.4.2 | |-- concat-map@0.0.1 | +-- mkdirp@0.5.1 | |
-- minimist@0.0.8 | +-- node-gyp@3.6.0 | |-- semver@5.3.0 | +-- nopt@3.0.6 | +-- normalize-git-url@3.0.2 | +-- normalize-package-data@2.3.5 | |
-- is-builtin-module@1.0.0 | |-- builtin-modules@1.1.0 | +-- npm-cache-filename@1.0.2 | +-- npm-install-checks@1.0.7 | +-- npm-package-arg@4.1.0 | +-- npm-registry-client@7.2.1 | | +-- concat-stream@1.5.2 | | | +-- readable-stream@2.0.6 | | | | +-- core-util-is@1.0.2 | | | | +-- isarray@1.0.0 | | | | +-- process-nextick-args@1.0.7 | | | | +-- string_decoder@0.10.31 | | | |
-- util-deprecate@1.0.2 | | |-- typedarray@0.0.6 | |
-- retry@0.10.0 | +-- npm-user-validate@0.1.5 | +-- npmlog@2.0.4 | | +-- are-we-there-yet@1.1.2 | | |-- delegates@1.0.0 | |
-- gauge@1.2.7 | | +-- has-unicode@2.0.0 | | +-- lodash.pad@4.4.0 | | | +-- lodash._baseslice@4.0.0 | | | +-- lodash._basetostring@4.12.0 | | |-- lodash.tostring@4.1.4 | | +-- lodash.padend@4.5.0 | |
-- lodash.padstart@4.5.0 | +-- once@1.4.0 | +-- opener@1.4.1 | +-- osenv@0.1.3 | | +-- os-homedir@1.0.0 | |-- os-tmpdir@1.0.1 | +-- path-is-inside@1.0.1 | +-- read@1.0.7 | |
-- mute-stream@0.0.5 | +-- read-installed@4.0.3 | | +-- debuglog@1.0.1 | | +-- readdir-scoped-modules@1.0.2 | |-- util-extend@1.0.1 | +-- read-package-json@2.0.4 | | +-- glob@6.0.4 | | |
-- path-is-absolute@1.0.0 | |-- json-parse-helpfulerror@1.0.3 | |
-- jju@1.3.0 | +-- readable-stream@2.1.5 | | +-- buffer-shims@1.0.0 | | +-- core-util-is@1.0.2 | | +-- isarray@1.0.0 | | +-- process-nextick-args@1.0.7 | | +-- string_decoder@0.10.31 | |-- util-deprecate@1.0.2 | +-- realize-package-specifier@3.0.1 | +-- request@2.74.0 | | +-- aws-sign2@0.6.0 | | +-- aws4@1.4.1 | | +-- bl@1.1.2 | | |
-- readable-stream@2.0.6 | | | +-- core-util-is@1.0.2 | | | +-- isarray@1.0.0 | | | +-- process-nextick-args@1.0.7 | | | +-- string_decoder@0.10.31 | | |-- util-deprecate@1.0.2 | | +-- caseless@0.11.0 | | +-- combined-stream@1.0.5 | | |
-- delayed-stream@1.0.0 | | +-- extend@3.0.0 | | +-- forever-agent@0.6.1 | | +-- form-data@1.0.0-rc4 | | |-- async@1.5.2 | | +-- har-validator@2.0.6 | | | +-- chalk@1.1.3 | | | | +-- ansi-styles@2.2.1 | | | | +-- escape-string-regexp@1.0.5 | | | | +-- has-ansi@2.0.0 | | | |
-- supports-color@2.0.0 | | | +-- commander@2.9.0 | | | |-- graceful-readlink@1.0.1 | | | +-- is-my-json-valid@2.13.1 | | | | +-- generate-function@2.0.0 | | | | +-- generate-object-property@1.2.0 | | | | |
-- is-property@1.0.2 | | | | +-- jsonpointer@2.0.0 | | | |-- xtend@4.0.1 | | |
-- pinkie-promise@2.0.1 | | |-- pinkie@2.0.4 | | +-- hawk@3.1.3 | | | +-- boom@2.10.1 | | | +-- cryptiles@2.0.5 | | | +-- hoek@2.16.3 | | |
-- sntp@1.0.9 | | +-- http-signature@1.1.1 | | | +-- assert-plus@0.2.0 | | | +-- jsprim@1.3.0 | | | | +-- extsprintf@1.0.2 | | | | +-- json-schema@0.2.2 | | | |-- verror@1.3.6 | | |
-- sshpk@1.9.2 | | | +-- asn1@0.2.3 | | | +-- assert-plus@1.0.0 | | | +-- dashdash@1.14.0 | | | +-- ecc-jsbn@0.1.1 | | | +-- getpass@0.1.6 | | | +-- jodid25519@1.0.2 | | | +-- jsbn@0.1.0 | | |-- tweetnacl@0.13.3 | | +-- is-typedarray@1.0.0 | | +-- isstream@0.1.2 | | +-- json-stringify-safe@5.0.1 | | +-- mime-types@2.1.11 | | |
-- mime-db@1.23.0 | | +-- node-uuid@1.4.7 | | +-- oauth-sign@0.8.2 | | +-- qs@6.2.1 | | +-- stringstream@0.0.5 | | +-- tough-cookie@2.3.1 | |-- tunnel-agent@0.4.3 | +-- retry@0.10.0 | +-- rimraf@2.5.4 | +-- semver@5.1.0 | +-- sha@2.0.1 | |
-- readable-stream@2.0.2 | | +-- core-util-is@1.0.1 | | +-- isarray@0.0.1 | | +-- process-nextick-args@1.0.3 | | +-- string_decoder@0.10.31 | |-- util-deprecate@1.0.1 | +-- slide@1.1.6 | +-- sorted-object@2.0.0 | +-- spdx-license-ids@1.2.2 | +-- strip-ansi@3.0.1 | +-- tar@2.2.1 | +-- text-table@0.2.0 | +-- uid-number@0.0.6 | +-- umask@1.1.0 | +-- validate-npm-package-license@3.0.1 | | +-- spdx-correct@1.0.2 | |
-- spdx-expression-parse@1.0.2 | |-- spdx-exceptions@1.0.4 | +-- validate-npm-package-name@2.2.2 | |
-- builtins@0.0.7 | +-- which@1.2.11 | |-- isexe@1.1.2 | +-- wrappy@1.0.2 |
-- write-file-atomic@1.1.4 +-- oauth-sign@0.8.2 +-- object-assign@4.1.1 +-- object-component@0.0.3 +-- object.omit@2.0.1 +-- on-finished@2.3.0 +-- once@1.4.0 +-- options@0.0.6 +-- optjs@3.2.2 +-- ordered-read-streams@0.3.0 +-- os-tmpdir@1.0.2 +-- parse-glob@3.0.4 | +-- is-extglob@1.0.0 |-- is-glob@2.0.1 +-- parsejson@0.0.3 +-- parseqs@0.0.5 +-- parseuri@0.0.5 +-- parseurl@1.3.1 +-- path-dirname@1.0.2 +-- path-is-absolute@1.0.1 +-- path-to-regexp@0.1.7 +-- pinkie@2.0.4 +-- pinkie-promise@2.0.1 +-- preserve@0.2.0 +-- process-nextick-args@1.0.7 +-- protobufjs@6.6.5 | +-- @protobufjs/aspromise@1.1.1 | +-- @protobufjs/base64@1.1.1 | +-- @protobufjs/codegen@1.0.8 | +-- @protobufjs/eventemitter@1.1.0 | +-- @protobufjs/fetch@1.1.0 | +-- @protobufjs/inquire@1.1.0 | +-- @protobufjs/path@1.1.2 | +-- @protobufjs/pool@1.1.0 | +-- @protobufjs/utf8@1.1.0 | +-- @types/long@3.0.31 | +-- @types/node@7.0.5 |
-- long@3.2.0 +-- proxy-addr@1.1.4 +-- pump@1.0.2 +-- punycode@1.4.1 +-- qs@6.4.0 +-- randomatic@1.1.6 +-- range-parser@1.2.0 +-- readable-stream@2.2.6 +-- reduplexer@1.1.0 |-- readable-stream@1.0.34 |
-- isarray@0.0.1 +-- regex-cache@0.4.3 +-- reinterval@1.1.0 +-- repeat-element@1.1.2 +-- repeat-string@1.6.1 +-- request@2.81.0 | +-- caseless@0.12.0 | +-- extend@3.0.0 | +-- form-data@2.1.2 | |-- asynckit@0.4.0 | +-- har-validator@4.2.1 | | +-- ajv@4.11.5 | | |
-- co@4.6.0 | |-- har-schema@1.0.5 | +-- performance-now@0.2.0 | +-- safe-buffer@5.0.1 | +-- tunnel-agent@0.6.0 |
-- uuid@3.0.1 +-- rhea@0.1.12 +-- rimraf@2.6.1 |-- glob@7.1.1 |
-- fs.realpath@1.0.0 +-- samsam@1.2.1 +-- sax@0.5.8 +-- sbus@0.1.0 +-- sbus-amqp10@0.1.2 |-- amqp10@1.0.3 | +-- bl@0.9.5 | |
-- readable-stream@1.0.34 | |-- isarray@0.0.1 | +-- lodash@3.10.1 |
-- node-int64@0.3.3 +-- send@0.15.1 | +-- debug@2.6.1 |-- ms@0.7.2 +-- serve-static@1.12.1 +-- setprototypeof@1.0.3 +-- sinon@1.17.7 | +-- formatio@1.1.1 | +-- lolex@1.3.2 |
-- samsam@1.1.2 +-- sinon-as-promised@4.0.3 +-- sntp@1.0.9 +-- socket.io@1.7.3 | +-- debug@2.3.3 | |-- ms@0.7.2 | +-- object-assign@4.1.0 |
-- socket.io-parser@2.3.1 | +-- component-emitter@1.1.2 | +-- debug@2.2.0 | |-- ms@0.7.1 |
-- isarray@0.0.1 +-- socket.io-adapter@0.5.0 | +-- debug@2.3.3 | |-- ms@0.7.2 |
-- socket.io-parser@2.3.1 | +-- component-emitter@1.1.2 | +-- debug@2.2.0 | |-- ms@0.7.1 |
-- isarray@0.0.1 +-- socket.io-client@1.7.3 | +-- component-emitter@1.2.1 | +-- debug@2.3.3 | |-- ms@0.7.2 |
-- socket.io-parser@2.3.1 | +-- component-emitter@1.1.2 | +-- debug@2.2.0 | |-- ms@0.7.1 |
-- isarray@0.0.1 +-- socket.io-parser@2.3.2 | +-- debug@2.3.3 | |-- ms@0.7.2 |
-- isarray@0.0.1 +-- split2@2.1.1 +-- sshpk@1.11.0 |-- assert-plus@1.0.0 +-- stately.js@1.3.0 +-- statuses@1.3.1 +-- stream-shift@1.0.0 +-- string_decoder@0.10.31 +-- stringstream@0.0.5 +-- strip-ansi@3.0.1 +-- supports-color@2.0.0 +-- temp@0.8.3 |
-- rimraf@2.2.8 +-- through2@2.0.3 |-- readable-stream@2.2.3 +-- through2-filter@2.0.0 +-- to-absolute-glob@0.1.1 +-- to-array@0.1.4 +-- tough-cookie@2.3.2 +-- traverse@0.6.6 +-- ttn@2.1.0 | +-- babel-preset-stage-0@6.22.0 | | +-- babel-plugin-transform-do-expressions@6.22.0 | | | +-- babel-plugin-syntax-do-expressions@6.13.0 | | |
-- babel-runtime@6.23.0 | | | +-- core-js@2.4.1 | | |-- regenerator-runtime@0.10.3 | | +-- babel-plugin-transform-function-bind@6.22.0 | | |
-- babel-plugin-syntax-function-bind@6.13.0 | |-- babel-preset-stage-1@6.22.0 | | +-- babel-plugin-transform-class-constructor-call@6.22.0 | | | +-- babel-plugin-syntax-class-constructor-call@6.18.0 | | |
-- babel-template@6.23.0 | | | +-- babel-traverse@6.23.1 | | | | +-- babel-code-frame@6.22.0 | | | | |-- js-tokens@3.0.1 | | | | +-- babel-messages@6.23.0 | | | | +-- globals@9.17.0 | | | |
-- invariant@2.2.2 | | | |-- loose-envify@1.3.1 | | | +-- babel-types@6.23.0 | | | | +-- esutils@2.0.2 | | | |
-- to-fast-properties@1.0.2 | | |-- babylon@6.16.1 | | +-- babel-plugin-transform-export-extensions@6.22.0 | | |
-- babel-plugin-syntax-export-extensions@6.13.0 | |-- babel-preset-stage-2@6.22.0 | | +-- babel-plugin-syntax-dynamic-import@6.18.0 | | +-- babel-plugin-transform-class-properties@6.23.0 | | | +-- babel-helper-function-name@6.23.0 | | | |
-- babel-helper-get-function-arity@6.22.0 | | |-- babel-plugin-syntax-class-properties@6.13.0 | | +-- babel-plugin-transform-decorators@6.22.0 | | | +-- babel-helper-explode-class@6.22.0 | | | |
-- babel-helper-bindify-decorators@6.22.0 | | |-- babel-plugin-syntax-decorators@6.13.0 | |
-- babel-preset-stage-3@6.22.0 | | +-- babel-plugin-syntax-trailing-function-commas@6.22.0 | | +-- babel-plugin-transform-async-generator-functions@6.22.0 | | | +-- babel-helper-remap-async-to-generator@6.22.0 | | |-- babel-plugin-syntax-async-generators@6.13.0 | | +-- babel-plugin-transform-async-to-generator@6.22.0 | | |
-- babel-plugin-syntax-async-functions@6.13.0 | | +-- babel-plugin-transform-exponentiation-operator@6.22.0 | | | +-- babel-helper-builder-binary-assignment-operator-visitor@6.22.0 | | | |-- babel-helper-explode-assignable-expression@6.22.0 | | |
-- babel-plugin-syntax-exponentiation-operator@6.13.0 | |-- babel-plugin-transform-object-rest-spread@6.23.0 | |
-- babel-plugin-syntax-object-rest-spread@6.13.0 | +-- isomorphic-fetch@2.2.1 | | +-- node-fetch@1.6.3 | | |-- encoding@0.1.12 | | |
-- iconv-lite@0.4.15 | |-- whatwg-fetch@2.0.3 |
-- mqtt@2.5.0 |-- mqtt-packet@5.2.2 +-- tunnel-agent@0.4.3 +-- tweetnacl@0.14.5 +-- type-is@1.6.14 +-- typedarray@0.0.6 +-- ultron@1.1.0 +-- underscore@1.8.3 +-- unique-concat@0.2.2 +-- unique-stream@2.2.1 +-- unpipe@1.0.0 +-- utf8@2.1.2 +-- util@0.10.3 |
-- inherits@2.0.1 +-- util-deprecate@1.0.2 +-- utils-merge@1.0.0 +-- uuid@2.0.3 +-- validator@3.43.0 +-- vary@1.1.1 +-- verror@1.9.0 |-- assert-plus@1.0.0 +-- websocket-stream@3.3.3 +-- wrappy@1.0.2 +-- ws@1.1.4 |
-- ultron@1.0.2 +-- wtf-8@1.0.1 +-- wundergroundnode@0.9.0 |-- limiter@1.0.5 +-- xml2js@0.2.8 +-- xmlbuilder@0.4.3 +-- xmlhttprequest-ssl@1.5.3 +-- xtend@4.0.1
-- yeast@0.1.2