Add DPS support (#419)
* Add DPS support * Update readme, changelog and version
This commit is contained in:
Родитель
2ff7966a26
Коммит
cfc35c303d
|
@ -1,3 +1,11 @@
|
||||||
|
## 2.12.0
|
||||||
|
### Added
|
||||||
|
* List IoT Hub Device Provisioning Service instances
|
||||||
|
* Add C# code generation for device twin (Thanks [@tomaszbartoszewski](https://github.com/tomaszbartoszewski)!)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
* [#393](https://github.com/microsoft/vscode-azure-iot-toolkit/issues/393): Error during initialize
|
||||||
|
|
||||||
## 2.11.0 (2019-10-14)
|
## 2.11.0 (2019-10-14)
|
||||||
### Added
|
### Added
|
||||||
* List PnP Interfaces in tree view
|
* List PnP Interfaces in tree view
|
||||||
|
|
13
README.md
13
README.md
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
Interact with Azure IoT Hub, IoT Device Management, IoT Edge Management, IoT Hub Device Simulation, IoT Hub Code Generation.
|
Interact with Azure IoT Hub, IoT Device Management, IoT Edge Management, IoT Hub Device Simulation, IoT Hub Code Generation and IoT Hub Device Provisioning Service.
|
||||||
|
|
||||||
## Device Explorer
|
## Device Explorer
|
||||||
The [Wiki page](https://github.com/Microsoft/vscode-azure-iot-toolkit/wiki) includes a comprehensive getting started guide as well as detailed usage instructions of the following features:
|
The [Wiki page](https://github.com/Microsoft/vscode-azure-iot-toolkit/wiki) includes a comprehensive getting started guide as well as detailed usage instructions of the following features:
|
||||||
|
@ -86,6 +86,17 @@ Instead of copying and pasting to set IoT Hub Connection String, you could sign
|
||||||
|
|
||||||
![IoT Hub Explorer](images/iot-hub-explorer.png)
|
![IoT Hub Explorer](images/iot-hub-explorer.png)
|
||||||
|
|
||||||
|
## Device Provisioning Service Explorer
|
||||||
|
|
||||||
|
1. Open "Azure" view on the Activity Bar, and expand "IOT HUB DEVICE PROVISIONING SERVICE".
|
||||||
|
|
||||||
|
![DPS Explorer](images/dps-explorer.png)
|
||||||
|
|
||||||
|
2. If you're not signed in, click "Sign in to Azure..." to sign in.
|
||||||
|
|
||||||
|
3. Expand one subscription to start exploring your device provisioning services.
|
||||||
|
|
||||||
|
|
||||||
## Code Generation
|
## Code Generation
|
||||||
|
|
||||||
![Code Generation](images/code-generation.gif)
|
![Code Generation](images/code-generation.gif)
|
||||||
|
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 25 KiB |
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "azure-iot-toolkit",
|
"name": "azure-iot-toolkit",
|
||||||
"version": "2.10.0",
|
"version": "2.11.0-rc",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -649,6 +649,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ansi-colors": {
|
||||||
|
"version": "3.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
|
||||||
|
"integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
||||||
|
@ -722,6 +728,21 @@
|
||||||
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
||||||
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
|
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
|
||||||
},
|
},
|
||||||
|
"array-union": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"array-uniq": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"array-uniq": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
|
||||||
|
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"array-unique": {
|
"array-unique": {
|
||||||
"version": "0.3.2",
|
"version": "0.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
|
||||||
|
@ -796,11 +817,28 @@
|
||||||
"integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
|
"integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"async-hook-jl": {
|
||||||
|
"version": "1.7.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz",
|
||||||
|
"integrity": "sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==",
|
||||||
|
"requires": {
|
||||||
|
"stack-chain": "^1.3.7"
|
||||||
|
}
|
||||||
|
},
|
||||||
"async-limiter": {
|
"async-limiter": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
|
||||||
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
|
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
|
||||||
},
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
"async-lock": {
|
"async-lock": {
|
||||||
"version": "1.2.2",
|
"version": "1.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.2.2.tgz",
|
||||||
|
@ -836,6 +874,15 @@
|
||||||
"is-buffer": "^2.0.2"
|
"is-buffer": "^2.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"azure-arm-deviceprovisioningservices": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/azure-arm-deviceprovisioningservices/-/azure-arm-deviceprovisioningservices-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-fDX3F/uo6Azzj8WqWCILvTPgqkbuesWXk+71usSXU6+ZMbW2/M39fo3n+ecBHX5ifclza/6ApptBwIdJXVWFgA==",
|
||||||
|
"requires": {
|
||||||
|
"ms-rest": "^2.3.2",
|
||||||
|
"ms-rest-azure": "^2.5.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
"azure-arm-eventhub": {
|
"azure-arm-eventhub": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/azure-arm-eventhub/-/azure-arm-eventhub-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/azure-arm-eventhub/-/azure-arm-eventhub-3.2.0.tgz",
|
||||||
|
@ -863,6 +910,15 @@
|
||||||
"ms-rest-azure": "^2.0.0"
|
"ms-rest-azure": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"azure-arm-storage": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/azure-arm-storage/-/azure-arm-storage-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-jrew8qgqCiJ66QyjAhQis7AXhK6hp5soypvcxio3g/b1mNJr7RsQ6vD5zBRebcvM+QBGzvv7COiXy/xzibyOgA==",
|
||||||
|
"requires": {
|
||||||
|
"ms-rest": "^2.2.2",
|
||||||
|
"ms-rest-azure": "^2.3.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"azure-iot-amqp-base": {
|
"azure-iot-amqp-base": {
|
||||||
"version": "2.2.12",
|
"version": "2.2.12",
|
||||||
"resolved": "https://registry.npmjs.org/azure-iot-amqp-base/-/azure-iot-amqp-base-2.2.12.tgz",
|
"resolved": "https://registry.npmjs.org/azure-iot-amqp-base/-/azure-iot-amqp-base-2.2.12.tgz",
|
||||||
|
@ -1713,6 +1769,16 @@
|
||||||
"wrap-ansi": "^5.1.0"
|
"wrap-ansi": "^5.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"cls-hooked": {
|
||||||
|
"version": "4.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/cls-hooked/-/cls-hooked-4.2.2.tgz",
|
||||||
|
"integrity": "sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==",
|
||||||
|
"requires": {
|
||||||
|
"async-hook-jl": "^1.7.6",
|
||||||
|
"emitter-listener": "^1.0.1",
|
||||||
|
"semver": "^5.4.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"collection-visit": {
|
"collection-visit": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
||||||
|
@ -1859,6 +1925,15 @@
|
||||||
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
|
||||||
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
|
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
|
||||||
},
|
},
|
||||||
|
"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": {
|
"cookie": {
|
||||||
"version": "0.4.0",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
|
||||||
|
@ -1889,6 +1964,59 @@
|
||||||
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
|
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"copy-webpack-plugin": {
|
||||||
|
"version": "5.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.4.tgz",
|
||||||
|
"integrity": "sha512-YBuYGpSzoCHSSDGyHy6VJ7SHojKp6WHT4D7ItcQFNAYx2hrwkMe56e97xfVR0/ovDuMTrMffXUiltvQljtAGeg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"cacache": "^11.3.3",
|
||||||
|
"find-cache-dir": "^2.1.0",
|
||||||
|
"glob-parent": "^3.1.0",
|
||||||
|
"globby": "^7.1.1",
|
||||||
|
"is-glob": "^4.0.1",
|
||||||
|
"loader-utils": "^1.2.3",
|
||||||
|
"minimatch": "^3.0.4",
|
||||||
|
"normalize-path": "^3.0.0",
|
||||||
|
"p-limit": "^2.2.0",
|
||||||
|
"schema-utils": "^1.0.0",
|
||||||
|
"serialize-javascript": "^1.7.0",
|
||||||
|
"webpack-log": "^2.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"cacache": {
|
||||||
|
"version": "11.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
|
||||||
|
"integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"bluebird": "^3.5.5",
|
||||||
|
"chownr": "^1.1.1",
|
||||||
|
"figgy-pudding": "^3.5.1",
|
||||||
|
"glob": "^7.1.4",
|
||||||
|
"graceful-fs": "^4.1.15",
|
||||||
|
"lru-cache": "^5.1.1",
|
||||||
|
"mississippi": "^3.0.0",
|
||||||
|
"mkdirp": "^0.5.1",
|
||||||
|
"move-concurrently": "^1.0.1",
|
||||||
|
"promise-inflight": "^1.0.1",
|
||||||
|
"rimraf": "^2.6.3",
|
||||||
|
"ssri": "^6.0.1",
|
||||||
|
"unique-filename": "^1.1.1",
|
||||||
|
"y18n": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"is-glob": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"is-extglob": "^2.1.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"core-util-is": {
|
"core-util-is": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||||
|
@ -2162,12 +2290,64 @@
|
||||||
"randombytes": "^2.0.0"
|
"randombytes": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dir-glob": {
|
||||||
|
"version": "2.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
|
||||||
|
"integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"path-type": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dom-serializer": {
|
||||||
|
"version": "0.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz",
|
||||||
|
"integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==",
|
||||||
|
"requires": {
|
||||||
|
"domelementtype": "^2.0.1",
|
||||||
|
"entities": "^2.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"domelementtype": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ=="
|
||||||
|
},
|
||||||
|
"entities": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"domain-browser": {
|
"domain-browser": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
|
||||||
"integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
|
"integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"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.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
|
||||||
|
"integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
|
||||||
|
"requires": {
|
||||||
|
"dom-serializer": "0",
|
||||||
|
"domelementtype": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"dot-prop": {
|
"dot-prop": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
|
||||||
|
@ -2247,6 +2427,14 @@
|
||||||
"minimalistic-crypto-utils": "^1.0.0"
|
"minimalistic-crypto-utils": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
"emoji-regex": {
|
"emoji-regex": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
||||||
|
@ -2282,6 +2470,11 @@
|
||||||
"tapable": "^1.0.0"
|
"tapable": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"entities": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
|
||||||
|
},
|
||||||
"errno": {
|
"errno": {
|
||||||
"version": "0.1.7",
|
"version": "0.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
|
||||||
|
@ -3548,6 +3741,28 @@
|
||||||
"which": "^1.2.14"
|
"which": "^1.2.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"globby": {
|
||||||
|
"version": "7.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
|
||||||
|
"integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"array-union": "^1.0.1",
|
||||||
|
"dir-glob": "^2.0.0",
|
||||||
|
"glob": "^7.1.2",
|
||||||
|
"ignore": "^3.3.5",
|
||||||
|
"pify": "^3.0.0",
|
||||||
|
"slash": "^1.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"pify": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"got": {
|
"got": {
|
||||||
"version": "6.7.1",
|
"version": "6.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
|
||||||
|
@ -3700,8 +3915,7 @@
|
||||||
"he": {
|
"he": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
|
||||||
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
|
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"help-me": {
|
"help-me": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
|
@ -3734,6 +3948,42 @@
|
||||||
"parse-passwd": "^1.0.0"
|
"parse-passwd": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"html-to-text": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-QQl5EEd97h6+3crtgBhkEAO6sQnZyDff8DAeJzoSkOc1Dqe1UvTUZER0B+KjBe6fPZqq549l2VUhtracus3ndA==",
|
||||||
|
"requires": {
|
||||||
|
"he": "^1.0.0",
|
||||||
|
"htmlparser2": "^3.9.2",
|
||||||
|
"lodash": "^4.17.4",
|
||||||
|
"optimist": "^0.6.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
|
||||||
|
"integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
|
||||||
|
"requires": {
|
||||||
|
"inherits": "^2.0.3",
|
||||||
|
"string_decoder": "^1.1.1",
|
||||||
|
"util-deprecate": "^1.0.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"http-errors": {
|
"http-errors": {
|
||||||
"version": "1.7.2",
|
"version": "1.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
|
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
|
||||||
|
@ -3819,6 +4069,12 @@
|
||||||
"integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
|
"integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"ignore": {
|
||||||
|
"version": "3.3.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
|
||||||
|
"integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"import-lazy": {
|
"import-lazy": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
|
||||||
|
@ -4128,8 +4384,7 @@
|
||||||
"is-wsl": {
|
"is-wsl": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
|
||||||
"integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
|
"integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"isarray": {
|
"isarray": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
|
@ -4929,6 +5184,14 @@
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"opn": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==",
|
||||||
|
"requires": {
|
||||||
|
"is-wsl": "^1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"optimist": {
|
"optimist": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
|
||||||
|
@ -5152,6 +5415,23 @@
|
||||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||||
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
||||||
},
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"pify": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"pbkdf2": {
|
"pbkdf2": {
|
||||||
"version": "3.0.17",
|
"version": "3.0.17",
|
||||||
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
|
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
|
||||||
|
@ -5807,12 +6087,23 @@
|
||||||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
|
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"shimmer": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="
|
||||||
|
},
|
||||||
"signal-exit": {
|
"signal-exit": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
||||||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"slash": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"snapdragon": {
|
"snapdragon": {
|
||||||
"version": "0.8.2",
|
"version": "0.8.2",
|
||||||
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
|
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
|
||||||
|
@ -6024,6 +6315,11 @@
|
||||||
"figgy-pudding": "^3.5.1"
|
"figgy-pudding": "^3.5.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"stack-chain": {
|
||||||
|
"version": "1.3.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz",
|
||||||
|
"integrity": "sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU="
|
||||||
|
},
|
||||||
"static-extend": {
|
"static-extend": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
|
||||||
|
@ -6722,6 +7018,68 @@
|
||||||
"vscode-test": "^0.4.1"
|
"vscode-test": "^0.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"vscode-azureextensionui": {
|
||||||
|
"version": "0.28.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-azureextensionui/-/vscode-azureextensionui-0.28.2.tgz",
|
||||||
|
"integrity": "sha512-WP0xORMfOX4IIk8BhfM0q+otda2uRzbMZnJa3SCv8qLQpy0YWGxkhL+fS2RCtFoyEtVhI2VKJYSKpkdjzODjng==",
|
||||||
|
"requires": {
|
||||||
|
"azure-arm-resource": "^3.0.0-preview",
|
||||||
|
"azure-arm-storage": "^3.1.0",
|
||||||
|
"fs-extra": "^4.0.3",
|
||||||
|
"html-to-text": "^4.0.0",
|
||||||
|
"ms-rest": "^2.2.2",
|
||||||
|
"ms-rest-azure": "^2.4.4",
|
||||||
|
"opn": "^6.0.0",
|
||||||
|
"semver": "^5.6.0",
|
||||||
|
"vscode-extension-telemetry": "^0.1.0",
|
||||||
|
"vscode-nls": "^4.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"applicationinsights": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-TV8MYb0Kw9uE2cdu4V/UvTKdOABkX2+Fga9iDz0zqV7FLrNXfmAugWZmmdTx4JoynYkln3d5CUHY3oVSUEbfFw==",
|
||||||
|
"requires": {
|
||||||
|
"cls-hooked": "^4.2.2",
|
||||||
|
"continuation-local-storage": "^3.2.1",
|
||||||
|
"diagnostic-channel": "0.2.0",
|
||||||
|
"diagnostic-channel-publishers": "^0.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"azure-arm-resource": {
|
||||||
|
"version": "3.0.0-preview",
|
||||||
|
"resolved": "https://registry.npmjs.org/azure-arm-resource/-/azure-arm-resource-3.0.0-preview.tgz",
|
||||||
|
"integrity": "sha512-5AxK9Nnk9hRDtyiXkaqvHV2BvII12JpPpTTHL8p9ZKgkwy67mWk+repoe9PnjxwG2Rm1RadutonccynJ+VHVAw==",
|
||||||
|
"requires": {
|
||||||
|
"ms-rest": "^2.0.0",
|
||||||
|
"ms-rest-azure": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"diagnostic-channel-publishers": {
|
||||||
|
"version": "0.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.3.3.tgz",
|
||||||
|
"integrity": "sha512-qIocRYU5TrGUkBlDDxaziAK1+squ8Yf2Ls4HldL3xxb/jzmWO2Enux7CvevNKYmF2kDXZ9HiRqwjPsjk8L+i2Q=="
|
||||||
|
},
|
||||||
|
"fs-extra": {
|
||||||
|
"version": "4.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
|
||||||
|
"integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
|
||||||
|
"requires": {
|
||||||
|
"graceful-fs": "^4.1.2",
|
||||||
|
"jsonfile": "^4.0.0",
|
||||||
|
"universalify": "^0.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vscode-extension-telemetry": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.2.tgz",
|
||||||
|
"integrity": "sha512-FSbaZKlIH3VKvBJsKw7v5bESWHXzltji2rtjaJeJglpQH4tfClzwHMzlMXUZGiblV++djEzb1gW8mb5E+wxFsg==",
|
||||||
|
"requires": {
|
||||||
|
"applicationinsights": "1.4.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"vscode-extension-telemetry": {
|
"vscode-extension-telemetry": {
|
||||||
"version": "0.0.18",
|
"version": "0.0.18",
|
||||||
"resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.18.tgz",
|
"resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.18.tgz",
|
||||||
|
@ -6730,6 +7088,11 @@
|
||||||
"applicationinsights": "1.0.1"
|
"applicationinsights": "1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"vscode-nls": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-4R+2UoUUU/LdnMnFjePxfLqNhBS8lrAFyX7pjb2ud/lqDkrUavFUTcG7wR0HBZFakae0Q6KLBFjMS6W93F403A=="
|
||||||
|
},
|
||||||
"vscode-test": {
|
"vscode-test": {
|
||||||
"version": "0.4.3",
|
"version": "0.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.3.tgz",
|
||||||
|
@ -6865,6 +7228,16 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"webpack-log": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-colors": "^3.0.0",
|
||||||
|
"uuid": "^3.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"webpack-sources": {
|
"webpack-sources": {
|
||||||
"version": "1.4.3",
|
"version": "1.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
|
||||||
|
|
61
package.json
61
package.json
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"name": "azure-iot-toolkit",
|
"name": "azure-iot-toolkit",
|
||||||
"displayName": "Azure IoT Hub Toolkit",
|
"displayName": "Azure IoT Hub Toolkit",
|
||||||
"description": "Interact with Azure IoT Hub, IoT Device Management, IoT Edge Management, IoT Hub Device Simulation, IoT Hub Code Generation",
|
"description": "Interact with Azure IoT Hub, IoT Device Management, IoT Edge Management, IoT Hub Device Simulation, IoT Hub Code Generation and IoT Hub Device Provisioning Service (DPS)",
|
||||||
"version": "2.11.0",
|
"version": "2.12.0-rc",
|
||||||
"publisher": "vsciot-vscode",
|
"publisher": "vsciot-vscode",
|
||||||
"aiKey": "0caaff90-cc1c-4def-b64c-3ef33615bc9b",
|
"aiKey": "0caaff90-cc1c-4def-b64c-3ef33615bc9b",
|
||||||
"icon": "logo.png",
|
"icon": "logo.png",
|
||||||
|
@ -28,11 +28,12 @@
|
||||||
"iot",
|
"iot",
|
||||||
"device",
|
"device",
|
||||||
"IoT Edge",
|
"IoT Edge",
|
||||||
"simulator"
|
"dps"
|
||||||
],
|
],
|
||||||
"activationEvents": [
|
"activationEvents": [
|
||||||
"*",
|
"*",
|
||||||
"onView:iotHubDevices",
|
"onView:iotHubDevices",
|
||||||
|
"onView:iotDpsExplorer",
|
||||||
"onCommand:azure-iot-toolkit.sendD2CMessage",
|
"onCommand:azure-iot-toolkit.sendD2CMessage",
|
||||||
"onCommand:azure-iot-toolkit.startMonitorIoTHubMessage",
|
"onCommand:azure-iot-toolkit.startMonitorIoTHubMessage",
|
||||||
"onCommand:azure-iot-toolkit.sendC2DMessage",
|
"onCommand:azure-iot-toolkit.sendC2DMessage",
|
||||||
|
@ -66,16 +67,34 @@
|
||||||
"onCommand:azure-iot-toolkit.getModule",
|
"onCommand:azure-iot-toolkit.getModule",
|
||||||
"onCommand:azure-iot-toolkit.copyModuleConnectionString",
|
"onCommand:azure-iot-toolkit.copyModuleConnectionString",
|
||||||
"onCommand:azure-iot-toolkit.startMonitorCustomEventHubEndpoint",
|
"onCommand:azure-iot-toolkit.startMonitorCustomEventHubEndpoint",
|
||||||
"onCommand:azure-iot-toolkit.stopMonitorCustomEventHubEndpoint"
|
"onCommand:azure-iot-toolkit.stopMonitorCustomEventHubEndpoint",
|
||||||
|
"onCommand:azure-iot-dps.viewProperties",
|
||||||
|
"onCommand:azure-iot-dps.loadMore",
|
||||||
|
"onCommand:azure-iot-dps.refresh"
|
||||||
],
|
],
|
||||||
"main": "./dist/extension",
|
"main": "./dist/extension",
|
||||||
"contributes": {
|
"contributes": {
|
||||||
|
"viewsContainers": {
|
||||||
|
"activitybar": [
|
||||||
|
{
|
||||||
|
"id": "azure",
|
||||||
|
"title": "Azure",
|
||||||
|
"icon": "resources/azure.svg"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"views": {
|
"views": {
|
||||||
"explorer": [
|
"explorer": [
|
||||||
{
|
{
|
||||||
"id": "iotHubDevices",
|
"id": "iotHubDevices",
|
||||||
"name": "%azure-iot-toolkit.name%"
|
"name": "%azure-iot-toolkit.name%"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"azure": [
|
||||||
|
{
|
||||||
|
"id": "iotDpsExplorer",
|
||||||
|
"name": "IoT Hub Device Provisioning Service"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"commands": [
|
"commands": [
|
||||||
|
@ -277,6 +296,21 @@
|
||||||
"command": "azure-iot-toolkit.stopMonitorCustomEventHubEndpoint",
|
"command": "azure-iot-toolkit.stopMonitorCustomEventHubEndpoint",
|
||||||
"title": "%azure-iot-toolkit.command.stopMonitorCustomEventHubEndpoint.title%",
|
"title": "%azure-iot-toolkit.command.stopMonitorCustomEventHubEndpoint.title%",
|
||||||
"category": "%azure-iot-toolkit.category%"
|
"category": "%azure-iot-toolkit.category%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "azure-iot-dps.viewProperties",
|
||||||
|
"title": "%azure-iot-dps.command.viewProperties.title%",
|
||||||
|
"category": "%azure-iot-dps.category%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "azure-iot-dps.loadMore",
|
||||||
|
"title": "%azure-iot-dps.command.loadMore.title%",
|
||||||
|
"category": "%azure-iot-dps.category%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "azure-iot-dps.refresh",
|
||||||
|
"title": "%azure-iot-dps.command.refresh.title%",
|
||||||
|
"category": "%azure-iot-dps.category%"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"menus": {
|
"menus": {
|
||||||
|
@ -345,6 +379,10 @@
|
||||||
"command": "azure-iot-toolkit.sendD2CMessage",
|
"command": "azure-iot-toolkit.sendD2CMessage",
|
||||||
"when": "view == iotHubDevices",
|
"when": "view == iotHubDevices",
|
||||||
"group": "azure-iot-toolkit-0@1"
|
"group": "azure-iot-toolkit-0@1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "azure-iot-dps.refresh",
|
||||||
|
"when": "view == iotDpsExplorer"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"view/item/context": [
|
"view/item/context": [
|
||||||
|
@ -580,6 +618,14 @@
|
||||||
"command": "azure-iot-toolkit.refresh",
|
"command": "azure-iot-toolkit.refresh",
|
||||||
"when": "view == iotHubDevices && viewItem == interfaces-label",
|
"when": "view == iotHubDevices && viewItem == interfaces-label",
|
||||||
"group": "inline"
|
"group": "inline"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "azure-iot-dps.viewProperties",
|
||||||
|
"when": "view == iotDpsExplorer && viewItem == IotDps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "azure-iot-dps.refresh",
|
||||||
|
"when": "view == iotDpsExplorer && viewItem == azureextensionui.azureSubscription"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"editor/context": [
|
"editor/context": [
|
||||||
|
@ -657,6 +703,10 @@
|
||||||
{
|
{
|
||||||
"command": "azure-iot-toolkit.startMonitorIoTHubMessageWithAbbreviation",
|
"command": "azure-iot-toolkit.startMonitorIoTHubMessageWithAbbreviation",
|
||||||
"when": "never"
|
"when": "never"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "azure-iot-dps.loadMore",
|
||||||
|
"when": "never"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -742,6 +792,7 @@
|
||||||
"@types/node": "^10.12.3",
|
"@types/node": "^10.12.3",
|
||||||
"@types/terser-webpack-plugin": "^1.2.0",
|
"@types/terser-webpack-plugin": "^1.2.0",
|
||||||
"@types/webpack": "^4.4.24",
|
"@types/webpack": "^4.4.24",
|
||||||
|
"copy-webpack-plugin": "^5.0.4",
|
||||||
"fail-on-errors-webpack-plugin": "^3.0.0",
|
"fail-on-errors-webpack-plugin": "^3.0.0",
|
||||||
"mocha": "^5.1.1",
|
"mocha": "^5.1.1",
|
||||||
"rimraf": "^2.6.2",
|
"rimraf": "^2.6.2",
|
||||||
|
@ -758,6 +809,7 @@
|
||||||
"@azure/event-hubs": "^2.0.0",
|
"@azure/event-hubs": "^2.0.0",
|
||||||
"ajv": "^6.10.0",
|
"ajv": "^6.10.0",
|
||||||
"axios": "^0.18.1",
|
"axios": "^0.18.1",
|
||||||
|
"azure-arm-deviceprovisioningservices": "^2.1.0",
|
||||||
"azure-arm-eventhub": "^3.2.0",
|
"azure-arm-eventhub": "^3.2.0",
|
||||||
"azure-arm-iothub": "^2.0.1",
|
"azure-arm-iothub": "^2.0.1",
|
||||||
"azure-arm-resource": "^2.0.0-preview",
|
"azure-arm-resource": "^2.0.0-preview",
|
||||||
|
@ -774,6 +826,7 @@
|
||||||
"replace-in-file": "^3.4.0",
|
"replace-in-file": "^3.4.0",
|
||||||
"strip-json-comments": "^2.0.1",
|
"strip-json-comments": "^2.0.1",
|
||||||
"uuid": "^3.3.2",
|
"uuid": "^3.3.2",
|
||||||
|
"vscode-azureextensionui": "^0.28.2",
|
||||||
"vscode-extension-telemetry": "0.0.18"
|
"vscode-extension-telemetry": "0.0.18"
|
||||||
},
|
},
|
||||||
"extensionDependencies": [
|
"extensionDependencies": [
|
||||||
|
|
|
@ -51,5 +51,9 @@
|
||||||
"azure-iot-toolkit.configuration.showIoTHubInfo.description": "Whether to show IoT Hub info when IoT Hub Connection String is not set.",
|
"azure-iot-toolkit.configuration.showIoTHubInfo.description": "Whether to show IoT Hub info when IoT Hub Connection String is not set.",
|
||||||
"azure-iot-toolkit.configuration.terminalRoot.description": "(Windows Only) Replace the Windows style drive letter in the command with a Unix style root when using a custom shell as the terminal, like Bash on Windows, Git Bash or Cgywin. Example: For Bash on Windows, setting this to '/mnt/' will replace 'C:\\foo\\bar' with '/mnt/c/foo/bar'",
|
"azure-iot-toolkit.configuration.terminalRoot.description": "(Windows Only) Replace the Windows style drive letter in the command with a Unix style root when using a custom shell as the terminal, like Bash on Windows, Git Bash or Cgywin. Example: For Bash on Windows, setting this to '/mnt/' will replace 'C:\\foo\\bar' with '/mnt/c/foo/bar'",
|
||||||
"azure-iot-toolkit.configuration.treeViewAutoRefreshEnable.description": "Whether to enable auto refresh of tree view.",
|
"azure-iot-toolkit.configuration.treeViewAutoRefreshEnable.description": "Whether to enable auto refresh of tree view.",
|
||||||
"azure-iot-toolkit.configuration.treeViewAutoRefreshIntervalInSeconds.description": "Time interval in seconds for tree view auto refresh, auto refresh has to be enabled for it to work."
|
"azure-iot-toolkit.configuration.treeViewAutoRefreshIntervalInSeconds.description": "Time interval in seconds for tree view auto refresh, auto refresh has to be enabled for it to work.",
|
||||||
|
"azure-iot-dps.category": "Azure IoT Hub Device Provisioning Service",
|
||||||
|
"azure-iot-dps.command.viewProperties.title": "View Properties",
|
||||||
|
"azure-iot-dps.command.loadMore.title": "Load More",
|
||||||
|
"azure-iot-dps.command.refresh.title": "Refresh"
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg height="28" width="28" version="1.1" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g>
|
||||||
|
<path fill="#0072C6" d="M11.423,44.326l23.623-4.156L22.894,25.748l6.328-17.346L50,44.33L11.423,44.326z M27.566,5.67L11.469,40.109v-0.034H0l12.717-21.975L27.566,5.67z" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
После Ширина: | Высота: | Размер: 337 B |
|
@ -0,0 +1,56 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#2D2D30;}
|
||||||
|
.st1{fill:#0078D4;}
|
||||||
|
.st2{fill:none;stroke:#424242;stroke-width:0.8;}
|
||||||
|
.st3{fill:none;stroke:#424242;}
|
||||||
|
</style>
|
||||||
|
<title>AzureDPSservice</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<g id="AzureDPSservice-">
|
||||||
|
<g id="Group-43">
|
||||||
|
<path id="Fill-3" class="st0" d="M15.7,7.7c0-1.2-0.3-2.3-0.8-3.3c-0.1-0.4-0.3-0.8-0.6-1c-1.4-2-3.7-3.3-6.3-3.3S3.1,1.4,1.7,3.4
|
||||||
|
C1.4,3.7,1.2,4,1.1,4.5c-0.5,1-0.8,2.1-0.8,3.3c0,4,3.1,7.3,7,7.6c0.2,0.1,0.4,0.1,0.6,0.1c0.2,0,0.4,0,0.6-0.1
|
||||||
|
C12.5,15.1,15.7,11.8,15.7,7.7"/>
|
||||||
|
<path id="Fill-5" class="st1" d="M6.6,13.4C4,12.8,2.1,10.5,2.1,7.7c0-0.6,0.1-1.1,0.2-1.6C2.1,6.1,1.9,6,1.6,5.8
|
||||||
|
c-0.2,0.6-0.3,1.3-0.3,2c0,3.2,2.2,5.8,5.2,6.5c0-0.1,0-0.2,0-0.2C6.5,13.8,6.5,13.6,6.6,13.4"/>
|
||||||
|
<path id="Fill-7" class="st1" d="M13.6,6.1c0.2,0.5,0.2,1.1,0.2,1.6c0,2.7-1.9,5.1-4.5,5.7c0.1,0.2,0.1,0.4,0.1,0.6
|
||||||
|
c0,0.1,0,0.2,0,0.2c3-0.7,5.2-3.3,5.2-6.5c0-0.7-0.1-1.3-0.3-2C14.1,6,13.9,6.1,13.6,6.1"/>
|
||||||
|
<path id="Fill-9" class="st1" d="M3.8,3.7c1-1.1,2.5-1.8,4.2-1.8s3.2,0.7,4.2,1.8c0.2-0.2,0.4-0.4,0.6-0.5C11.7,1.9,9.9,1.1,8,1.1
|
||||||
|
S4.3,1.9,3.1,3.2C3.4,3.3,3.6,3.5,3.8,3.7"/>
|
||||||
|
<path id="Stroke-21" class="st2" d="M6.7,4.2l2.1,3.1"/>
|
||||||
|
<path id="Stroke-23" class="st2" d="M3.9,7.7l4.9-0.3"/>
|
||||||
|
<path id="Stroke-25" class="st3" d="M7.1,10.1l1.7-2.8"/>
|
||||||
|
<path id="Stroke-27" class="st2" d="M10.7,10.8L8.8,7.3"/>
|
||||||
|
<g id="Stroke-29">
|
||||||
|
<rect x="7.2" y="3.9" transform="matrix(0.8321 -0.5547 0.5547 0.8321 -1.9218 5.2532)" class="st1" width="1" height="3.8"/>
|
||||||
|
</g>
|
||||||
|
<g id="Stroke-31">
|
||||||
|
|
||||||
|
<rect x="3.9" y="7" transform="matrix(0.9975 -7.131318e-02 7.131318e-02 0.9975 -0.5185 0.4718)" class="st1" width="4.9" height="1"/>
|
||||||
|
</g>
|
||||||
|
<g id="Stroke-33">
|
||||||
|
<rect x="6.3" y="8.2" transform="matrix(0.5174 -0.8557 0.8557 0.5174 -3.6629 10.9661)" class="st1" width="3.2" height="1"/>
|
||||||
|
</g>
|
||||||
|
<g id="Stroke-35">
|
||||||
|
<rect x="9.2" y="7.1" transform="matrix(0.8763 -0.4817 0.4817 0.8763 -3.1865 5.8011)" class="st1" width="1" height="4"/>
|
||||||
|
</g>
|
||||||
|
<path id="Fill-37" class="st1" d="M2.6,3.6c-0.6,0-1,0.4-1,1s0.4,1,1,1s1-0.4,1-1S3.1,3.6,2.6,3.6"/>
|
||||||
|
<path id="Fill-39" class="st1" d="M13.4,3.6c-0.6,0-1,0.4-1,1s0.4,1,1,1s1-0.4,1-1S14,3.6,13.4,3.6"/>
|
||||||
|
<path id="Fill-41" class="st1" d="M8,13c-0.6,0-1,0.4-1,1s0.4,1,1,1s1-0.4,1-1S8.6,13,8,13"/>
|
||||||
|
<path id="Fill-17" class="st1" d="M9.8,7.3c0,0.6-0.5,1-1,1c-0.6,0-1-0.5-1-1s0.5-1,1-1S9.8,6.8,9.8,7.3"/>
|
||||||
|
<path id="Fill-11" class="st1" d="M7.5,4.2c0,0.5-0.4,0.9-0.9,0.9S5.7,4.7,5.7,4.2s0.4-0.9,0.9-0.9C7.1,3.3,7.5,3.7,7.5,4.2"/>
|
||||||
|
<path id="Fill-13" class="st1" d="M4.7,7.7c0,0.5-0.4,0.9-0.9,0.9C3.4,8.6,3,8.2,3,7.7s0.4-0.9,0.9-0.9C4.3,6.8,4.7,7.2,4.7,7.7"
|
||||||
|
/>
|
||||||
|
<path id="Fill-15" class="st1" d="M11.5,10.8c0,0.5-0.4,0.9-0.9,0.9s-0.9-0.4-0.9-0.9s0.4-0.9,0.9-0.9
|
||||||
|
C11.2,10,11.5,10.4,11.5,10.8"/>
|
||||||
|
<path id="Fill-19" class="st1" d="M7.8,10.1c0,0.4-0.3,0.7-0.7,0.7c-0.4,0-0.7-0.3-0.7-0.7s0.3-0.7,0.7-0.7
|
||||||
|
C7.5,9.4,7.8,9.7,7.8,10.1"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="not_x5F_fg">
|
||||||
|
</g>
|
||||||
|
</svg>
|
После Ширина: | Высота: | Размер: 3.3 KiB |
|
@ -0,0 +1,56 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#F6F6F6;}
|
||||||
|
.st1{fill:#0078D4;}
|
||||||
|
.st2{fill:none;stroke:#424242;stroke-width:0.8;}
|
||||||
|
.st3{fill:none;stroke:#424242;}
|
||||||
|
</style>
|
||||||
|
<title>AzureDPSservice</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<g id="AzureDPSservice-">
|
||||||
|
<g id="Group-43">
|
||||||
|
<path id="Fill-3" class="st0" d="M15.7,7.7c0-1.2-0.3-2.3-0.8-3.3c-0.1-0.4-0.3-0.8-0.6-1c-1.4-2-3.7-3.3-6.3-3.3S3.1,1.4,1.7,3.4
|
||||||
|
C1.4,3.7,1.2,4,1.1,4.5c-0.5,1-0.8,2.1-0.8,3.3c0,4,3.1,7.3,7,7.6c0.2,0.1,0.4,0.1,0.6,0.1c0.2,0,0.4,0,0.6-0.1
|
||||||
|
C12.5,15.1,15.7,11.8,15.7,7.7"/>
|
||||||
|
<path id="Fill-5" class="st1" d="M6.6,13.4C4,12.8,2.1,10.5,2.1,7.7c0-0.6,0.1-1.1,0.2-1.6C2.1,6.1,1.9,6,1.6,5.8
|
||||||
|
c-0.2,0.6-0.3,1.3-0.3,2c0,3.2,2.2,5.8,5.2,6.5c0-0.1,0-0.2,0-0.2C6.5,13.8,6.5,13.6,6.6,13.4"/>
|
||||||
|
<path id="Fill-7" class="st1" d="M13.6,6.1c0.2,0.5,0.2,1.1,0.2,1.6c0,2.7-1.9,5.1-4.5,5.7c0.1,0.2,0.1,0.4,0.1,0.6
|
||||||
|
c0,0.1,0,0.2,0,0.2c3-0.7,5.2-3.3,5.2-6.5c0-0.7-0.1-1.3-0.3-2C14.1,6,13.9,6.1,13.6,6.1"/>
|
||||||
|
<path id="Fill-9" class="st1" d="M3.8,3.7c1-1.1,2.5-1.8,4.2-1.8s3.2,0.7,4.2,1.8c0.2-0.2,0.4-0.4,0.6-0.5C11.7,1.9,9.9,1.1,8,1.1
|
||||||
|
S4.3,1.9,3.1,3.2C3.4,3.3,3.6,3.5,3.8,3.7"/>
|
||||||
|
<path id="Stroke-21" class="st2" d="M6.7,4.2l2.1,3.1"/>
|
||||||
|
<path id="Stroke-23" class="st2" d="M3.9,7.7l4.9-0.3"/>
|
||||||
|
<path id="Stroke-25" class="st3" d="M7.1,10.1l1.7-2.8"/>
|
||||||
|
<path id="Stroke-27" class="st2" d="M10.7,10.8L8.8,7.3"/>
|
||||||
|
<g id="Stroke-29">
|
||||||
|
<rect x="7.2" y="3.9" transform="matrix(0.8321 -0.5547 0.5547 0.8321 -1.9218 5.2532)" class="st1" width="1" height="3.8"/>
|
||||||
|
</g>
|
||||||
|
<g id="Stroke-31">
|
||||||
|
|
||||||
|
<rect x="3.9" y="7" transform="matrix(0.9975 -7.131318e-02 7.131318e-02 0.9975 -0.5185 0.4718)" class="st1" width="4.9" height="1"/>
|
||||||
|
</g>
|
||||||
|
<g id="Stroke-33">
|
||||||
|
<rect x="6.3" y="8.2" transform="matrix(0.5174 -0.8557 0.8557 0.5174 -3.6629 10.9661)" class="st1" width="3.2" height="1"/>
|
||||||
|
</g>
|
||||||
|
<g id="Stroke-35">
|
||||||
|
<rect x="9.2" y="7.1" transform="matrix(0.8763 -0.4817 0.4817 0.8763 -3.1865 5.8011)" class="st1" width="1" height="4"/>
|
||||||
|
</g>
|
||||||
|
<path id="Fill-37" class="st1" d="M2.6,3.6c-0.6,0-1,0.4-1,1s0.4,1,1,1s1-0.4,1-1S3.1,3.6,2.6,3.6"/>
|
||||||
|
<path id="Fill-39" class="st1" d="M13.4,3.6c-0.6,0-1,0.4-1,1s0.4,1,1,1s1-0.4,1-1S14,3.6,13.4,3.6"/>
|
||||||
|
<path id="Fill-41" class="st1" d="M8,13c-0.6,0-1,0.4-1,1s0.4,1,1,1s1-0.4,1-1S8.6,13,8,13"/>
|
||||||
|
<path id="Fill-17" class="st1" d="M9.8,7.3c0,0.6-0.5,1-1,1c-0.6,0-1-0.5-1-1s0.5-1,1-1S9.8,6.8,9.8,7.3"/>
|
||||||
|
<path id="Fill-11" class="st1" d="M7.5,4.2c0,0.5-0.4,0.9-0.9,0.9S5.7,4.7,5.7,4.2s0.4-0.9,0.9-0.9C7.1,3.3,7.5,3.7,7.5,4.2"/>
|
||||||
|
<path id="Fill-13" class="st1" d="M4.7,7.7c0,0.5-0.4,0.9-0.9,0.9C3.4,8.6,3,8.2,3,7.7s0.4-0.9,0.9-0.9C4.3,6.8,4.7,7.2,4.7,7.7"
|
||||||
|
/>
|
||||||
|
<path id="Fill-15" class="st1" d="M11.5,10.8c0,0.5-0.4,0.9-0.9,0.9s-0.9-0.4-0.9-0.9s0.4-0.9,0.9-0.9
|
||||||
|
C11.2,10,11.5,10.4,11.5,10.8"/>
|
||||||
|
<path id="Fill-19" class="st1" d="M7.8,10.1c0,0.4-0.3,0.7-0.7,0.7c-0.4,0-0.7-0.3-0.7-0.7s0.3-0.7,0.7-0.7
|
||||||
|
C7.5,9.4,7.8,9.7,7.8,10.1"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="not_x5F_fg">
|
||||||
|
</g>
|
||||||
|
</svg>
|
После Ширина: | Высота: | Размер: 3.3 KiB |
|
@ -0,0 +1,13 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
|
import { AzureAccountTreeItemBase, ISubscriptionContext, SubscriptionTreeItemBase } from "vscode-azureextensionui";
|
||||||
|
import { DpsSubscriptionTreeItem } from "./DpsSubscriptionTreeItem";
|
||||||
|
|
||||||
|
// The root of DPS treeview, represents an Azure account
|
||||||
|
export class DpsAccountTreeItem extends AzureAccountTreeItemBase {
|
||||||
|
// Creates the subscription item
|
||||||
|
public async createSubscriptionTreeItem(root: ISubscriptionContext): Promise<SubscriptionTreeItemBase> {
|
||||||
|
return new DpsSubscriptionTreeItem(this, root);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
|
import { IotDpsModels } from "azure-arm-deviceprovisioningservices";
|
||||||
|
import { AzureParentTreeItem, AzureTreeItem, TreeItemIconPath } from "vscode-azureextensionui";
|
||||||
|
import { TreeUtils } from "../Utility/treeUtils";
|
||||||
|
|
||||||
|
// Represents a DPS resource
|
||||||
|
export class DpsResourceTreeItem extends AzureTreeItem {
|
||||||
|
public static contextValue: string = "IotDps";
|
||||||
|
public readonly contextValue: string = DpsResourceTreeItem.contextValue;
|
||||||
|
public readonly dps: IotDpsModels.ProvisioningServiceDescription;
|
||||||
|
constructor(parent: AzureParentTreeItem, dps: IotDpsModels.ProvisioningServiceDescription) {
|
||||||
|
super(parent);
|
||||||
|
this.dps = dps;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get id(): string {
|
||||||
|
if (this.dps.id) {
|
||||||
|
return this.dps.id;
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public get label(): string {
|
||||||
|
if (this.dps.name) {
|
||||||
|
return this.dps.name;
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public get iconPath(): TreeItemIconPath {
|
||||||
|
return TreeUtils.getThemedIconPath("dps");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
|
import { IotDpsClient, IotDpsModels } from "azure-arm-deviceprovisioningservices";
|
||||||
|
import { createAzureClient, IActionContext, SubscriptionTreeItemBase } from "vscode-azureextensionui";
|
||||||
|
import { DpsResourceTreeItem } from "./DpsResourceTreeItem";
|
||||||
|
|
||||||
|
// Represents an Azure sbuscription
|
||||||
|
export class DpsSubscriptionTreeItem extends SubscriptionTreeItemBase {
|
||||||
|
private _nextLink: string | undefined;
|
||||||
|
|
||||||
|
public hasMoreChildrenImpl(): boolean {
|
||||||
|
return this._nextLink !== undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async loadMoreChildrenImpl(clearCache: boolean, _context: IActionContext): Promise<DpsResourceTreeItem[]> {
|
||||||
|
if (clearCache) {
|
||||||
|
this._nextLink = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
const client: IotDpsClient = createAzureClient(this.root, IotDpsClient);
|
||||||
|
const dpsCollection: IotDpsModels.ProvisioningServiceDescriptionListResult = this._nextLink === undefined ?
|
||||||
|
await client.iotDpsResource.listBySubscription() :
|
||||||
|
await client.iotDpsResource.listBySubscriptionNext(this._nextLink);
|
||||||
|
this._nextLink = dpsCollection.nextLink;
|
||||||
|
return dpsCollection.map((dps: IotDpsModels.ProvisioningServiceDescription) => new DpsResourceTreeItem(this, dps));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
|
import * as path from "path";
|
||||||
|
import { TreeItemIconPath } from "vscode-azureextensionui";
|
||||||
|
import { Constants } from "../constants";
|
||||||
|
|
||||||
|
export class TreeUtils {
|
||||||
|
|
||||||
|
public static getIconPath(iconName: string): string {
|
||||||
|
return path.join(Constants.ResourcesFolderPath, `${iconName}.svg`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static getThemedIconPath(iconName: string): TreeItemIconPath {
|
||||||
|
return {
|
||||||
|
light: path.join(Constants.ResourcesFolderPath, "light", `${iconName}.svg`),
|
||||||
|
dark: path.join(Constants.ResourcesFolderPath, "dark", `${iconName}.svg`),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
|
import * as vscode from "vscode";
|
||||||
|
import { AzExtTreeDataProvider, AzureTreeItem, IActionContext } from "vscode-azureextensionui";
|
||||||
|
import { DpsResourceExplorer } from "./dpsResourceExplorer";
|
||||||
|
import { DpsResourceTreeItem } from "./Nodes/DpsResourceTreeItem";
|
||||||
|
|
||||||
|
export class AzureDpsExplorer {
|
||||||
|
private _dpsResourceExplorer: DpsResourceExplorer;
|
||||||
|
|
||||||
|
constructor(outputChannel: vscode.OutputChannel, dpsTreeDataProvider: AzExtTreeDataProvider) {
|
||||||
|
this._dpsResourceExplorer = new DpsResourceExplorer(outputChannel, dpsTreeDataProvider);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async viewProperties(actionContext: IActionContext, node?: DpsResourceTreeItem): Promise<void> {
|
||||||
|
return this._dpsResourceExplorer.viewProperties(actionContext, node);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async loadMore(actionContext: IActionContext, node: AzureTreeItem): Promise<void> {
|
||||||
|
return this._dpsResourceExplorer.loadMore(actionContext, node);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async refresh(actionContext: IActionContext, node?: AzureTreeItem): Promise<void> {
|
||||||
|
return this._dpsResourceExplorer.refresh(actionContext, node);
|
||||||
|
}
|
||||||
|
}
|
|
@ -134,7 +134,7 @@ export class Constants {
|
||||||
public static modelDiscoveryInterfaceName = "urn_azureiot_ModelDiscovery_DigitalTwin";
|
public static modelDiscoveryInterfaceName = "urn_azureiot_ModelDiscovery_DigitalTwin";
|
||||||
|
|
||||||
public static DeleteLabel = "Delete";
|
public static DeleteLabel = "Delete";
|
||||||
public static DeleteMessage = "Are you sure you want to delete"; public static readonly DISTRIBUTED_TWIN_NAME: string = "azureiot*com^dtracing^1";
|
public static DeleteMessage = "Are you sure you want to delete"; public static readonly DISTRIBUTED_TWIN_NAME: string = "azureiot*com^dtracing^1";
|
||||||
public static ConnectionStringFormat = {
|
public static ConnectionStringFormat = {
|
||||||
[Constants.IotHubConnectionStringKey]: "HostName=<my-hostname>;SharedAccessKeyName=<my-policy>;SharedAccessKey=<my-policy-key>",
|
[Constants.IotHubConnectionStringKey]: "HostName=<my-hostname>;SharedAccessKeyName=<my-policy>;SharedAccessKey=<my-policy-key>",
|
||||||
[Constants.DeviceConnectionStringKey]: "HostName=<my-hostname>;DeviceId=<known-device-id>;SharedAccessKey=<known-device-key>",
|
[Constants.DeviceConnectionStringKey]: "HostName=<my-hostname>;DeviceId=<known-device-id>;SharedAccessKey=<known-device-key>",
|
||||||
|
@ -194,10 +194,15 @@ export class Constants {
|
||||||
[TemplateLanguage.Ruby]: "ruby",
|
[TemplateLanguage.Ruby]: "ruby",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Capture the {resource-group-name} in pattern /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/
|
||||||
|
public static DpsResourceGroupNameRegex = /\/subscriptions\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/resourcegroups\/([^/]*)\//i;
|
||||||
|
public static ResourcesFolderPath: string;
|
||||||
|
|
||||||
public static initialize(context: vscode.ExtensionContext) {
|
public static initialize(context: vscode.ExtensionContext) {
|
||||||
Constants.ExtensionContext = context;
|
Constants.ExtensionContext = context;
|
||||||
const directory = context.storagePath ? context.storagePath : os.tmpdir();
|
const directory = context.storagePath ? context.storagePath : os.tmpdir();
|
||||||
Constants.ModuleTwinJosnFilePath = path.join(directory, Constants.ModuleTwinJosnFileName);
|
Constants.ModuleTwinJosnFilePath = path.join(directory, Constants.ModuleTwinJosnFileName);
|
||||||
Constants.DeviceTwinJosnFilePath = path.join(directory, Constants.DeviceTwinJosnFileName);
|
Constants.DeviceTwinJosnFilePath = path.join(directory, Constants.DeviceTwinJosnFileName);
|
||||||
|
Constants.ResourcesFolderPath = context.asAbsolutePath("resources");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT license.
|
||||||
|
import { IotDpsClient, IotDpsModels } from "azure-arm-deviceprovisioningservices";
|
||||||
|
import { AzExtTreeDataProvider, AzureTreeItem, createAzureClient, IActionContext, openReadOnlyJson } from "vscode-azureextensionui";
|
||||||
|
import * as vscode from "vscode";
|
||||||
|
import { BaseExplorer } from "./baseExplorer";
|
||||||
|
import { Constants } from "./constants";
|
||||||
|
import { DpsResourceTreeItem } from "./Nodes/DpsResourceTreeItem";
|
||||||
|
|
||||||
|
export class DpsResourceExplorer extends BaseExplorer {
|
||||||
|
private _dpsTreeDataProvider: AzExtTreeDataProvider;
|
||||||
|
|
||||||
|
constructor(outputChannel: vscode.OutputChannel, dpsTreeDataProvider: AzExtTreeDataProvider) {
|
||||||
|
super(outputChannel);
|
||||||
|
this._dpsTreeDataProvider = dpsTreeDataProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async viewProperties(context: IActionContext, node?: DpsResourceTreeItem): Promise<void> {
|
||||||
|
if (!node) {
|
||||||
|
node = await this._dpsTreeDataProvider.showTreeItemPicker<DpsResourceTreeItem>("IotDps", context);
|
||||||
|
}
|
||||||
|
|
||||||
|
const client: IotDpsClient = createAzureClient(node.root, IotDpsClient);
|
||||||
|
let matchResult = Constants.DpsResourceGroupNameRegex.exec(node.fullId);
|
||||||
|
let dpsInfo: IotDpsModels.ProvisioningServiceDescription = null;
|
||||||
|
if (matchResult != null) {
|
||||||
|
let resourecGroupName = matchResult[1];
|
||||||
|
dpsInfo = await client.iotDpsResource.get(node.dps.name, resourecGroupName);
|
||||||
|
} else {
|
||||||
|
dpsInfo = node.dps; // Fallback to use cached properties if regex match fails
|
||||||
|
}
|
||||||
|
let propertyInfo = {
|
||||||
|
label: dpsInfo.name + "-properties",
|
||||||
|
fullId: dpsInfo.id,
|
||||||
|
};
|
||||||
|
|
||||||
|
await openReadOnlyJson(propertyInfo, dpsInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async loadMore(actionContext: IActionContext, node: AzureTreeItem): Promise<void> {
|
||||||
|
await this._dpsTreeDataProvider.loadMore(node, actionContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async refresh(actionContext: IActionContext, node?: AzureTreeItem): Promise<void> {
|
||||||
|
await this._dpsTreeDataProvider.refresh(node);
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,6 +3,11 @@
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
import * as vscode from "vscode";
|
import * as vscode from "vscode";
|
||||||
|
import {
|
||||||
|
AzExtTreeDataProvider, AzureTreeItem, AzureUserInput, createAzExtOutputChannel,
|
||||||
|
IActionContext, registerCommand, registerUIExtensionVariables
|
||||||
|
} from "vscode-azureextensionui";
|
||||||
|
import { AzureDpsExplorer } from "./azureDpsExplorer";
|
||||||
import { AzureIoTExplorer } from "./azureIoTExplorer";
|
import { AzureIoTExplorer } from "./azureIoTExplorer";
|
||||||
import { Constants, DistributedSettingUpdateType } from "./constants";
|
import { Constants, DistributedSettingUpdateType } from "./constants";
|
||||||
import { DeviceTree } from "./deviceTree";
|
import { DeviceTree } from "./deviceTree";
|
||||||
|
@ -14,12 +19,17 @@ import { ModuleLabelNode } from "./Nodes/ModuleLabelNode";
|
||||||
import { DeviceTwinCodeLensProvider } from "./providers/deviceTwinCodeLensProvider";
|
import { DeviceTwinCodeLensProvider } from "./providers/deviceTwinCodeLensProvider";
|
||||||
import { ModuleTwinCodeLensProvider } from "./providers/moduleTwinCodeLensProvider";
|
import { ModuleTwinCodeLensProvider } from "./providers/moduleTwinCodeLensProvider";
|
||||||
import { TelemetryClient } from "./telemetryClient";
|
import { TelemetryClient } from "./telemetryClient";
|
||||||
|
import { DpsAccountTreeItem } from "./Nodes/DpsAccountTreeItem";
|
||||||
|
import { DpsResourceTreeItem } from "./Nodes/DpsResourceTreeItem";
|
||||||
|
import { TelemetryClientWrapper } from "./telemetryClientWrapper";
|
||||||
|
|
||||||
export function activate(context: vscode.ExtensionContext) {
|
export function activate(context: vscode.ExtensionContext) {
|
||||||
Constants.initialize(context);
|
Constants.initialize(context);
|
||||||
TelemetryClient.initialize(context);
|
TelemetryClient.initialize(context);
|
||||||
TelemetryClient.sendEvent("extensionActivated");
|
TelemetryClient.sendEvent("extensionActivated");
|
||||||
|
|
||||||
|
activateDps(context);
|
||||||
|
|
||||||
let azureIoTExplorer = new AzureIoTExplorer(context);
|
let azureIoTExplorer = new AzureIoTExplorer(context);
|
||||||
let deviceTree = new DeviceTree(context);
|
let deviceTree = new DeviceTree(context);
|
||||||
|
|
||||||
|
@ -178,7 +188,7 @@ export function activate(context: vscode.ExtensionContext) {
|
||||||
await azureIoTExplorer.startMonitorCustomEventHubEndpoint(eventHubItemNode ? eventHubItemNode.eventHubItem : undefined);
|
await azureIoTExplorer.startMonitorCustomEventHubEndpoint(eventHubItemNode ? eventHubItemNode.eventHubItem : undefined);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
context.subscriptions.push(vscode.commands.registerCommand("azure-iot-toolkit.stopMonitorCustomEventHubEndpoint", () => {
|
context.subscriptions.push(vscode.commands.registerCommand("azure-iot-toolkit.stopMonitorCustomEventHubEndpoint", () => {
|
||||||
azureIoTExplorer.stopMonitorCustomEventHubEndpoint();
|
azureIoTExplorer.stopMonitorCustomEventHubEndpoint();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
@ -218,3 +228,37 @@ export function activate(context: vscode.ExtensionContext) {
|
||||||
|
|
||||||
export function deactivate() {
|
export function deactivate() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function activateDps(context: vscode.ExtensionContext) {
|
||||||
|
let telemetryReporter = new TelemetryClientWrapper("DPS.");
|
||||||
|
let outputChannel = createAzExtOutputChannel("Device Provisioning Service", "azure-iot-toolkit");
|
||||||
|
|
||||||
|
// No need to initialize Constants again here. But pay attention when refactor.
|
||||||
|
// Constants.initialize(context);
|
||||||
|
|
||||||
|
let uiExtensionVariables = {
|
||||||
|
context: context,
|
||||||
|
outputChannel: outputChannel,
|
||||||
|
reporter: telemetryReporter,
|
||||||
|
ui: new AzureUserInput(context.globalState),
|
||||||
|
};
|
||||||
|
registerUIExtensionVariables(uiExtensionVariables);
|
||||||
|
|
||||||
|
let dpsTreeItem = new DpsAccountTreeItem();
|
||||||
|
let dpsExtTreeDataProvider = new AzExtTreeDataProvider(dpsTreeItem, "azure-iot-dps.loadMore");
|
||||||
|
|
||||||
|
context.subscriptions.push(dpsTreeItem);
|
||||||
|
context.subscriptions.push(vscode.window.createTreeView("iotDpsExplorer", { treeDataProvider: dpsExtTreeDataProvider, showCollapseAll: true }));
|
||||||
|
|
||||||
|
let azureDpsExplorer = new AzureDpsExplorer(outputChannel, dpsExtTreeDataProvider);
|
||||||
|
|
||||||
|
registerCommand("azure-iot-dps.viewProperties", async (actionContext: IActionContext, node?: DpsResourceTreeItem) => {
|
||||||
|
await azureDpsExplorer.viewProperties(actionContext, node);
|
||||||
|
});
|
||||||
|
registerCommand("azure-iot-dps.loadMore", async (actionContext: IActionContext, node: AzureTreeItem) => {
|
||||||
|
await azureDpsExplorer.loadMore(actionContext, node);
|
||||||
|
});
|
||||||
|
registerCommand("azure-iot-dps.refresh", async (actionContext: IActionContext, node: AzureTreeItem) => {
|
||||||
|
await azureDpsExplorer.refresh(actionContext, node);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
@ -17,9 +17,9 @@ export class TelemetryClient {
|
||||||
this._extensionContext = context;
|
this._extensionContext = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async sendEvent(eventName: string, properties?: { [key: string]: string; }, iotHubConnectionString?: string) {
|
public static async sendEvent(eventName: string, properties?: { [key: string]: string; }, iotHubConnectionString?: string, measurements?: { [key: string]: number }) {
|
||||||
properties = await this.addCommonProperties(properties, iotHubConnectionString);
|
properties = await this.addCommonProperties(properties, iotHubConnectionString);
|
||||||
this._client.sendTelemetryEvent(eventName, properties);
|
this._client.sendTelemetryEvent(eventName, properties, measurements);
|
||||||
|
|
||||||
if (eventName.startsWith("AZ.") && eventName !== Constants.IoTHubAILoadDeviceTreeEvent) {
|
if (eventName.startsWith("AZ.") && eventName !== Constants.IoTHubAILoadDeviceTreeEvent) {
|
||||||
if (this._extensionContext) {
|
if (this._extensionContext) {
|
||||||
|
@ -58,4 +58,4 @@ export class TelemetryClient {
|
||||||
const userDomain = process.env.USERDNSDOMAIN ? process.env.USERDNSDOMAIN.toLowerCase() : "";
|
const userDomain = process.env.USERDNSDOMAIN ? process.env.USERDNSDOMAIN.toLowerCase() : "";
|
||||||
return userDomain.endsWith("microsoft.com");
|
return userDomain.endsWith("microsoft.com");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
|
import { TelemetryClient } from "./telemetryClient";
|
||||||
|
|
||||||
|
// Instan
|
||||||
|
export class TelemetryClientWrapper {
|
||||||
|
|
||||||
|
private _eventNamePrefix: string;
|
||||||
|
|
||||||
|
constructor(eventNamePrefix?: string) {
|
||||||
|
this._eventNamePrefix = eventNamePrefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async sendTelemetryEvent(eventName: string, properties?: { [key: string]: string }, measurements?: { [key: string]: number }): Promise<void> {
|
||||||
|
if (this._eventNamePrefix) {
|
||||||
|
eventName = this._eventNamePrefix + eventName;
|
||||||
|
}
|
||||||
|
|
||||||
|
TelemetryClient.sendEvent(eventName, properties, undefined, measurements)
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
const copyPlugin = require('copy-webpack-plugin');
|
||||||
const failOnErrorsPlugin = require('fail-on-errors-webpack-plugin');
|
const failOnErrorsPlugin = require('fail-on-errors-webpack-plugin');
|
||||||
const terserWebpackPlugin = require('terser-webpack-plugin');
|
const terserWebpackPlugin = require('terser-webpack-plugin');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
@ -65,6 +66,8 @@ const config = {
|
||||||
// Ignore all locale files of moment.js, which can save 50KB
|
// Ignore all locale files of moment.js, which can save 50KB
|
||||||
// https://webpack.js.org/plugins/ignore-plugin/#ignore-moment-locales
|
// https://webpack.js.org/plugins/ignore-plugin/#ignore-moment-locales
|
||||||
new webpack.IgnorePlugin(/^\.\/locale$/, /[\/\\]moment$/),
|
new webpack.IgnorePlugin(/^\.\/locale$/, /[\/\\]moment$/),
|
||||||
|
// Ignore the optional requirement of applicationinsights, which is not used in this extension
|
||||||
|
new webpack.IgnorePlugin(/applicationinsights-native-metrics/),
|
||||||
// Suppress warnings of known dynamic require
|
// Suppress warnings of known dynamic require
|
||||||
new webpack.ContextReplacementPlugin(
|
new webpack.ContextReplacementPlugin(
|
||||||
/applicationinsights[\/\\]out[\/\\]AutoCollection/,
|
/applicationinsights[\/\\]out[\/\\]AutoCollection/,
|
||||||
|
@ -87,11 +90,15 @@ const config = {
|
||||||
/logic[\/\\].*\.js/
|
/logic[\/\\].*\.js/
|
||||||
),
|
),
|
||||||
// Express
|
// Express
|
||||||
new webpack.ContextReplacementPlugin(
|
new webpack.ContextReplacementPlugin(
|
||||||
/express[\/\\]lib/,
|
/express[\/\\]lib/,
|
||||||
false,
|
false,
|
||||||
/$^/
|
/$^/
|
||||||
),
|
),
|
||||||
|
// Copy required resources for Azure treeview
|
||||||
|
new copyPlugin([
|
||||||
|
path.join('node_modules', 'vscode-azureextensionui', 'resources', '**', '*.svg')
|
||||||
|
]),
|
||||||
// Fail on warnings so that CI can report new warnings which require attention
|
// Fail on warnings so that CI can report new warnings which require attention
|
||||||
new failOnErrorsPlugin({
|
new failOnErrorsPlugin({
|
||||||
failOnErrors: true,
|
failOnErrors: true,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче