Use Node SDK instead of REST API (#199)

* Use Node SDK instead of REST API

* Upgrade @types/node npm
This commit is contained in:
Jun Han 2018-11-08 11:26:51 +08:00 коммит произвёл GitHub
Родитель 4bfff9cb24
Коммит 2695555179
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
5 изменённых файлов: 259 добавлений и 169 удалений

334
package-lock.json сгенерированный
Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "azure-iot-toolkit",
"version": "1.2.0",
"version": "1.6.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -20,9 +20,9 @@
"dev": true
},
"@types/node": {
"version": "6.0.116",
"resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.116.tgz",
"integrity": "sha512-vToa8YEeulfyYg1gSOeHjvvIRqrokng62VMSj2hoZrwZNcYrp2h3AWo6KeBVuymIklQUaY5zgVJvVsC4KiiLkQ==",
"version": "10.12.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.3.tgz",
"integrity": "sha512-sfGmOtSMSbQ/AKG8V9xD1gmjquC9awIIZ/Kj309pHb2n3bcRAcGMQv5nJ6gCXZVsneGE4+ve8DXKRCsrg3TFzg==",
"dev": true
},
"adal-node": {
@ -84,14 +84,6 @@
}
}
},
"amqp10-transport-ws": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/amqp10-transport-ws/-/amqp10-transport-ws-0.0.5.tgz",
"integrity": "sha1-sPgnwkrU4YFSi8uy3s63H0oTKZk=",
"requires": {
"nodejs-websocket": "^1.7.0"
}
},
"ansi-align": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
@ -255,15 +247,6 @@
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
},
"axios": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.16.2.tgz",
"integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=",
"requires": {
"follow-redirects": "^1.2.3",
"is-buffer": "^1.1.5"
}
},
"azure-arm-iothub": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/azure-arm-iothub/-/azure-arm-iothub-2.0.1.tgz",
@ -304,115 +287,179 @@
}
},
"azure-iot-amqp-base": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/azure-iot-amqp-base/-/azure-iot-amqp-base-1.7.3.tgz",
"integrity": "sha512-O8KeLOi+SnG9YYEgGLepvj3xiTvggyvw51PKG9E5cF4O3SkdSmN8Fhv/DOaZUZjaMhxF1fagVPW0RYf+0Vwrpw==",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/azure-iot-amqp-base/-/azure-iot-amqp-base-2.1.1.tgz",
"integrity": "sha512-qZlRNvjCuOI9ptdXmq7ZPwXmrXc6rtEFE3BiuWVtEIMb21qd0EpGNE0c6gEs/dTM9OsQeVetKBVV0ZCffBomUw==",
"requires": {
"amqp10": "^3.6.0",
"amqp10-transport-ws": "^0.0.5",
"async": "^2.5.0",
"azure-iot-common": "1.7.3",
"bluebird": "^3.5.0",
"azure-iot-common": "1.8.1",
"debug": "^3.0.1",
"lodash.merge": "^4.6.1",
"machina": "^2.0.1",
"uuid": "^3.0.1"
"machina": "^4.0.1",
"rhea": "^0.2.18",
"uuid": "^3.0.1",
"ws": "^6.0.0"
},
"dependencies": {
"amqp10": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/amqp10/-/amqp10-3.6.0.tgz",
"integrity": "sha512-o8Agnjuf4ve+aT1IExkTLeL5/rAqxvL4gqDkO06AfRlL9SRSklMMMzKqmPsVjcV5ySOVEQqyFUOAhI3wm3KT1A==",
"ws": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.1.0.tgz",
"integrity": "sha512-H3dGVdGvW2H8bnYpIDc3u3LH8Wue3Qh+Zto6aXXFzvESkTVT6rAfKR6tR/+coaUvxs8yHtmNV0uioBF62ZGSTg==",
"requires": {
"bl": "^1.1.2",
"bluebird": "^3.4.6",
"buffer-builder": "^0.2.0",
"debug": "^2.3.3",
"lodash": "^4.17.2",
"node-int64": "^0.4.0",
"stately.js": "^1.3.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"
}
}
"async-limiter": "~1.0.0"
}
}
}
},
"azure-iot-common": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/azure-iot-common/-/azure-iot-common-1.7.3.tgz",
"integrity": "sha512-JMa9Hvmb5xkvHupcHDUP3kX+JMobZ/VW4YiPhrsH6cVJfh9+WM+PptKZBL2VngL5q0zHMeUlmrGvvKjqPh7a7g==",
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iot-common/-/azure-iot-common-1.8.1.tgz",
"integrity": "sha512-4xu4dsz3fLjM1aP0tBgv7/aYNoJ8sUJ5FJXi+s/OpK8gS6TcnKFGwJgFbHVS7VmL0zYxdsJisRVfWWinP+RSGw==",
"requires": {
"getos": "^3.1.0"
}
},
"azure-iot-device": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/azure-iot-device/-/azure-iot-device-1.7.3.tgz",
"integrity": "sha512-Q6bl8BJWubNIxiRNOXQ8fkC24iwPQjcRyJ+PEobPxs3BekVrWfeQSfrWbYB4eZXp2DS464RirizFpiNGYVsZcA==",
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iot-device/-/azure-iot-device-1.8.1.tgz",
"integrity": "sha512-sKsXuICF9MqbcwaLtXcrrqUMu9m6CO7gV5eBsnmqfsYYF1cXJdp6fXdfn7EgPLg9fvwgXQz4dTHEoMwv8mu/gA==",
"requires": {
"azure-iot-common": "1.7.3",
"azure-iot-http-base": "1.7.3",
"azure-iot-common": "1.8.1",
"azure-iot-http-base": "1.8.1",
"azure-storage": "^2.8.1",
"debug": "^3.1.0",
"lodash": "^4.17.10",
"machina": "^2.0.1",
"machina": "^4.0.1",
"traverse": "^0.6.6"
},
"dependencies": {
"azure-iot-http-base": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iot-http-base/-/azure-iot-http-base-1.8.1.tgz",
"integrity": "sha512-Vzs87Yo0CReih9VBsXuUO0BcFzG6dwbAEZkUN8Yu9NplB4WHqDV4SYp08E0qoey9Mitb6Qhkxq4e96cc3XcM1w==",
"requires": {
"azure-iot-common": "1.8.1",
"debug": "^3.1.0",
"uuid": "^3.2.1"
}
},
"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"
}
}
}
},
"azure-iot-device-mqtt": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/azure-iot-device-mqtt/-/azure-iot-device-mqtt-1.7.3.tgz",
"integrity": "sha512-tIOjjXrDYl5yc3dORclxppQla+vaoGaDFr1xZvHn7JsmughVuxm7OO0hHqNWYN7AhB5J9HSW9N9r8tc4A1fNDw==",
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iot-device-mqtt/-/azure-iot-device-mqtt-1.8.1.tgz",
"integrity": "sha512-NEZxKj2+YxwP0TwC7IXMi/Gx/gqp3h6agLgc62ipW1vBzaajT9rvRKYMFm/yjUZHGbyH7mXgOQo+SN6YLCPx4g==",
"requires": {
"azure-iot-common": "1.7.3",
"azure-iot-device": "1.7.3",
"azure-iot-mqtt-base": "1.7.3",
"azure-iot-common": "1.8.1",
"azure-iot-device": "1.8.1",
"azure-iot-mqtt-base": "1.8.1",
"debug": "^3.0.1",
"machina": "^2.0.1",
"machina": "^4.0.1",
"uuid": "^3.0.1"
},
"dependencies": {
"azure-iot-common": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iot-common/-/azure-iot-common-1.8.1.tgz",
"integrity": "sha512-4xu4dsz3fLjM1aP0tBgv7/aYNoJ8sUJ5FJXi+s/OpK8gS6TcnKFGwJgFbHVS7VmL0zYxdsJisRVfWWinP+RSGw==",
"requires": {
"getos": "^3.1.0"
}
},
"azure-iot-device": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iot-device/-/azure-iot-device-1.8.1.tgz",
"integrity": "sha512-sKsXuICF9MqbcwaLtXcrrqUMu9m6CO7gV5eBsnmqfsYYF1cXJdp6fXdfn7EgPLg9fvwgXQz4dTHEoMwv8mu/gA==",
"requires": {
"azure-iot-common": "1.8.1",
"azure-iot-http-base": "1.8.1",
"azure-storage": "^2.8.1",
"debug": "^3.1.0",
"lodash": "^4.17.10",
"machina": "^4.0.1",
"traverse": "^0.6.6"
}
},
"azure-iot-http-base": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iot-http-base/-/azure-iot-http-base-1.8.1.tgz",
"integrity": "sha512-Vzs87Yo0CReih9VBsXuUO0BcFzG6dwbAEZkUN8Yu9NplB4WHqDV4SYp08E0qoey9Mitb6Qhkxq4e96cc3XcM1w==",
"requires": {
"azure-iot-common": "1.8.1",
"debug": "^3.1.0",
"uuid": "^3.2.1"
}
},
"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"
}
}
}
},
"azure-iot-http-base": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/azure-iot-http-base/-/azure-iot-http-base-1.7.3.tgz",
"integrity": "sha512-vwkfQMbakf3qNTaYBZqaJyO6rgoju1iqOpdzwhej5RdCkR27PZRp2Tu0xaPUZVmtAVXPzVkuq5uldJpaBYfeDA==",
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iot-http-base/-/azure-iot-http-base-1.8.1.tgz",
"integrity": "sha512-Vzs87Yo0CReih9VBsXuUO0BcFzG6dwbAEZkUN8Yu9NplB4WHqDV4SYp08E0qoey9Mitb6Qhkxq4e96cc3XcM1w==",
"requires": {
"azure-iot-common": "1.7.3",
"azure-iot-common": "1.8.1",
"debug": "^3.1.0",
"uuid": "^3.2.1"
}
},
"azure-iot-mqtt-base": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/azure-iot-mqtt-base/-/azure-iot-mqtt-base-1.7.3.tgz",
"integrity": "sha512-DFadJx01x3aWbqO3OjBhkctm8x+99aRC+vXhbzf3eJprD5kYp5ima3zl/NPME3km+KfBV9xOUyBANVUOnNlUkw==",
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iot-mqtt-base/-/azure-iot-mqtt-base-1.8.1.tgz",
"integrity": "sha512-peMs8eX4JnwCgNzuJ6Mq8crYodybrO5iO6bzXnuXQG5pdoQchOuZ2Fs5t5f9mdblLpV4iu2WwyJriHoAYfEN+Q==",
"requires": {
"azure-iot-common": "1.7.3",
"azure-iot-common": "1.8.1",
"debug": "^3.1.0",
"machina": "^2.0.1",
"mqtt": "^2.15.2"
"machina": "^4.0.1",
"mqtt": "^2.18.8"
},
"dependencies": {
"azure-iot-common": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iot-common/-/azure-iot-common-1.8.1.tgz",
"integrity": "sha512-4xu4dsz3fLjM1aP0tBgv7/aYNoJ8sUJ5FJXi+s/OpK8gS6TcnKFGwJgFbHVS7VmL0zYxdsJisRVfWWinP+RSGw==",
"requires": {
"getos": "^3.1.0"
}
},
"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"
}
}
}
},
"azure-iothub": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/azure-iothub/-/azure-iothub-1.7.3.tgz",
"integrity": "sha512-3MAsrm4vCBcYLso13ENxtIN1iY8ziQmadu3hzczhpbzsUPrque3NSQ4IpBMeqRYN278pYOKeCBBipgNNnSXflA==",
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/azure-iothub/-/azure-iothub-1.8.1.tgz",
"integrity": "sha512-KqAHTXrrtPIYHQvynpLGl2vBoz85eJELqlhSRJGRm2dyOk0U2Ba7v4HkCdV+IUoUDqWYdxrpDs66ay6VtMXUyA==",
"requires": {
"async": "^2.6.1",
"azure-iot-amqp-base": "1.7.3",
"azure-iot-common": "1.7.3",
"azure-iot-http-base": "1.7.3",
"azure-iot-amqp-base": "2.1.1",
"azure-iot-common": "1.8.1",
"azure-iot-http-base": "1.8.1",
"debug": "^3.1.0",
"lodash": "^4.17.10",
"machina": "^2.0.1"
"machina": "^4.0.1",
"rhea": "^0.2.17"
},
"dependencies": {
"async": {
@ -853,6 +900,14 @@
"integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
"dev": true
},
"d": {
"version": "1.0.0",
"resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"requires": {
"es5-ext": "^0.10.9"
}
},
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@ -978,6 +1033,60 @@
"once": "^1.4.0"
}
},
"es5-ext": {
"version": "0.10.46",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
"integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
"requires": {
"es6-iterator": "~2.0.3",
"es6-symbol": "~3.1.1",
"next-tick": "1"
}
},
"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"
}
},
"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"
}
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@ -989,6 +1098,15 @@
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
"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"
}
},
"event-stream": {
"version": "3.3.4",
"resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
@ -1148,14 +1266,6 @@
"integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
"dev": true
},
"follow-redirects": {
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.5.tgz",
"integrity": "sha512-GHjtHDlY/ehslqv0Gr5N0PUJppgg/q0rOBvX0na1s7y1A3LWxPqCYU76s3Z1bM4+UZB4QF0usaXLT5wFpof5PA==",
"requires": {
"debug": "^3.1.0"
}
},
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@ -2111,18 +2221,11 @@
}
},
"machina": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/machina/-/machina-2.0.2.tgz",
"integrity": "sha512-9U9g4eQjQ2JARX7h/051r65EQEfFfpPxoSjVmUMJG6gnfjVjM+rjwVLoq7Z9NovjYm7AR3oTWWPtHVlgeSZzYw==",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/machina/-/machina-4.0.2.tgz",
"integrity": "sha512-OOlFrW1rd783S6tF36v5Ie/TM64gfvSl9kYLWL2cPA31J71HHWW3XrgSe1BZSFAPkh8532CMJMLv/s9L2aopiA==",
"requires": {
"lodash": "3.x"
},
"dependencies": {
"lodash": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
"integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
}
"lodash": "^4.17.5"
}
},
"make-dir": {
@ -2312,13 +2415,14 @@
"integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y="
},
"mqtt": {
"version": "2.18.3",
"resolved": "https://registry.npmjs.org/mqtt/-/mqtt-2.18.3.tgz",
"integrity": "sha512-BXCUugFgA6FOWJGxhvUWtVLOdt6hYTmiMGPksEyKuuF1FQ0ji7UJBJ/0kVRMUtUWCAtPGnt4mZZZgJpzNLcuQg==",
"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",
@ -2386,6 +2490,11 @@
"minimatch": "^3.0.0"
}
},
"next-tick": {
"version": "1.0.0",
"resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
"node-amqp-encoder": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/node-amqp-encoder/-/node-amqp-encoder-0.0.2.tgz",
@ -2408,11 +2517,6 @@
"is": "^3.1.0"
}
},
"nodejs-websocket": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/nodejs-websocket/-/nodejs-websocket-1.7.1.tgz",
"integrity": "sha1-zM+7qCO/HPqWgPFoq3q1MSHkhBA="
},
"normalize-path": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
@ -2905,6 +3009,14 @@
"path-parse": "^1.0.5"
}
},
"rhea": {
"version": "0.2.20",
"resolved": "https://registry.npmjs.org/rhea/-/rhea-0.2.20.tgz",
"integrity": "sha512-BQUUsPfNwJCoAwJ9xr6a8Ci9VCgLTs7CN09P3WAA0TNQPeLms5SbAXMcFIHKQGo64tUCR8i+iFnPGEei3UTBgg==",
"requires": {
"debug": ">=0.8.0"
}
},
"rimraf": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",

Просмотреть файл

@ -607,21 +607,20 @@
"devDependencies": {
"@types/fs-extra": "^5.0.4",
"@types/mocha": "^2.2.32",
"@types/node": "^6.0.40",
"@types/node": "^10.12.3",
"mocha": "^5.1.1",
"tslint": "^4.5.1",
"typescript": "^2.2.1",
"vscode": "^1.1.17"
},
"dependencies": {
"axios": "^0.16.2",
"azure-arm-iothub": "^2.0.1",
"azure-arm-resource": "^2.0.0-preview",
"azure-event-hubs": "0.0.6",
"azure-iot-common": "^1.7.1",
"azure-iot-device": "^1.7.1",
"azure-iot-device-mqtt": "^1.7.1",
"azure-iothub": "^1.7.1",
"azure-iot-common": "^1.8.1",
"azure-iot-device": "^1.8.1",
"azure-iot-device-mqtt": "^1.8.1",
"azure-iothub": "^1.8.1",
"clipboardy": "^1.1.4",
"fs-extra": "^7.0.0",
"ms-rest": "^2.3.2",

Просмотреть файл

@ -2,7 +2,6 @@
// Licensed under the MIT license.
"use strict";
import axios from "axios";
import * as iothub from "azure-iothub";
import * as fs from "fs";
import * as path from "path";
@ -163,27 +162,27 @@ export class IoTEdgeExplorer extends BaseExplorer {
return content;
}
private deploy(iotHubConnectionString: string, deviceId: string, deploymentJson: string, from: string) {
private async deploy(iotHubConnectionString: string, deviceId: string, deploymentJson: string, from: string) {
const label = "Edge";
this._outputChannel.show();
this.outputLine(label, `Start deployment to device [${deviceId}]`);
const url = `/devices/${encodeURIComponent(deviceId)}/applyConfigurationContent?api-version=${Constants.IoTHubApiVersion}`;
const config = Utility.generateIoTHubAxiosRequestConfig(iotHubConnectionString, url, "post", deploymentJson);
const entry = from === "none" ? "commandPalette" : "contextMenu";
axios.request(config)
.then((response) => {
this.outputLine(label, "Deployment succeeded.");
TelemetryClient.sendEvent(Constants.IoTHubAIEdgeDeployDoneEvent, { Result: "Success", entry, from });
})
.catch((err) => {
this.outputLine(label, `Deployment failed. ${err}`);
if (err && err.response && err.response.data && err.response.data.Message) {
this.outputLine(label, err.response.data.Message);
}
TelemetryClient.sendEvent(Constants.IoTHubAIEdgeDeployDoneEvent, { Result: "Fail", Message: err, entry, from });
});
try {
const registry = iothub.Registry.fromConnectionString(iotHubConnectionString);
const deploymentJsonObject = JSON.parse(deploymentJson);
await registry.applyConfigurationContentOnDevice(deviceId, deploymentJsonObject);
this.outputLine(label, "Deployment succeeded.");
TelemetryClient.sendEvent(Constants.IoTHubAIEdgeDeployDoneEvent, { Result: "Success", entry, from });
} catch (err) {
this.outputLine(label, `Deployment failed. ${err}`);
let detailedMessage = "";
if (err && err.responseBody) {
detailedMessage = err.responseBody;
this.outputLine(label, err.responseBody);
}
TelemetryClient.sendEvent(Constants.IoTHubAIEdgeDeployDoneEvent, { Result: "Fail", Message: err, detailedMessage, entry, from });
}
}
private async deployAtScale(iotHubConnectionString: string, deploymentJson: string) {

Просмотреть файл

@ -3,7 +3,7 @@
"use strict";
import { Client as ServiceClient, DeviceMethodParams } from "azure-iothub";
import { Callback } from "azure-iothub/lib/interfaces";
import { IncomingMessageCallback } from "azure-iothub/lib/interfaces";
import * as vscode from "vscode";
import { BaseExplorer } from "./baseExplorer";
import { Constants } from "./constants";
@ -79,7 +79,7 @@ export class IotHubDirectMethodExplorer extends BaseExplorer {
});
}
private invokeDirectMethodWithServiceClient(serviceClient: ServiceClient, deviceId: string, methodParams: DeviceMethodParams, done?: Callback<any>, moduleId?: string) {
private invokeDirectMethodWithServiceClient(serviceClient: ServiceClient, deviceId: string, methodParams: DeviceMethodParams, done?: IncomingMessageCallback<any>, moduleId?: string) {
if (moduleId) {
serviceClient.invokeDeviceMethod(deviceId, moduleId, methodParams, done);
} else {

Просмотреть файл

@ -2,9 +2,10 @@
// Licensed under the MIT license.
"use strict";
import axios, { AxiosRequestConfig } from "axios";
import { ResultWithHttpResponse } from "azure-iot-common";
import { ConnectionString as DeviceConnectionString, SharedAccessSignature as DeviceSharedAccessSignature } from "azure-iot-device";
import { ConnectionString, Registry, SharedAccessSignature } from "azure-iothub";
import { ConnectionString, Registry, SharedAccessSignature, Twin } from "azure-iothub";
import { ResultWithIncomingMessage } from "azure-iothub/lib/interfaces";
import * as crypto from "crypto";
import * as fs from "fs";
import * as os from "os";
@ -157,19 +158,6 @@ export class Utility {
});
}
public static generateIoTHubAxiosRequestConfig(iotHubConnectionString: string, url: string, method: string, data?: any): AxiosRequestConfig {
return {
url,
method,
baseURL: `https://${Utility.getHostName(iotHubConnectionString)}`,
headers: {
"Authorization": Utility.generateSasTokenForService(iotHubConnectionString),
"Content-Type": "application/json",
},
data,
};
}
public static async getModuleItems(iotHubConnectionString: string, deviceItem: DeviceItem, context: vscode.ExtensionContext) {
const modules = await Utility.getModules(iotHubConnectionString, deviceItem.deviceId);
return modules.map((module) => {
@ -239,18 +227,14 @@ export class Utility {
});
}
public static async getModuleTwin(iotHubConnectionString: string, deviceId: string, moduleId: string): Promise<string> {
const url = `/twins/${encodeURIComponent(deviceId)}/modules/${moduleId}?api-version=${Constants.IoTHubApiVersion}`;
const config = Utility.generateIoTHubAxiosRequestConfig(iotHubConnectionString, url, "get");
return (await axios.request(config)).data;
public static async getModuleTwin(iotHubConnectionString: string, deviceId: string, moduleId: string): Promise<Twin> {
const registry: Registry = Registry.fromConnectionString(iotHubConnectionString);
return ((await registry.getModuleTwin(deviceId, moduleId)) as ResultWithHttpResponse<Twin>).responseBody;
}
public static async updateModuleTwin(iotHubConnectionString: string, deviceId: string, moduleId: string, twin: any): Promise<string> {
const url = `/twins/${encodeURIComponent(deviceId)}/modules/${moduleId}?api-version=${Constants.IoTHubApiVersion}`;
const config = Utility.generateIoTHubAxiosRequestConfig(iotHubConnectionString, url, "put", twin);
return (await axios.request(config)).data;
public static async updateModuleTwin(iotHubConnectionString: string, deviceId: string, moduleId: string, twin: any): Promise<void> {
const registry: Registry = Registry.fromConnectionString(iotHubConnectionString);
await registry.updateModuleTwin(deviceId, moduleId, twin, "*");
}
public static async readFromActiveFile(fileName: string): Promise<string> {
@ -376,14 +360,10 @@ export class Utility {
return set;
}
private static async getEdgeDeviceList(iotHubConnectionString: string): Promise<any[]> {
const body = {
query: "SELECT * FROM DEVICES where capabilities.iotEdge=true",
};
const url = `/devices/query?api-version=${Constants.IoTHubApiVersion}`;
const config = Utility.generateIoTHubAxiosRequestConfig(iotHubConnectionString, url, "post", body);
return (await axios.request(config)).data;
private static async getEdgeDeviceList(iotHubConnectionString: string): Promise<Twin[]> {
const registry: Registry = Registry.fromConnectionString(iotHubConnectionString);
const query = registry.createQuery("SELECT * FROM DEVICES where capabilities.iotEdge=true");
return ((await query.nextAsTwin(null)) as ResultWithIncomingMessage<Twin[]>).result;
}
private static showIoTHubInformationMessage(): void {