diff --git a/client/package-lock.json b/client/package-lock.json index 3b6b14405..8340b03db 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -206,19 +206,25 @@ } }, "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" } }, "tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + }, + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" } } }, @@ -1799,9 +1805,9 @@ } }, "@fluentui/keyboard-key": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.2.tgz", - "integrity": "sha512-6WdMrnFpY94uWefUGGRqO4WiS6R+Kso6/FR95SxXMuS6kfnjGJCHzywFGZcN5OU1fX067Zna4aPQ/nDwYMgBPw==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.3.tgz", + "integrity": "sha512-uLiwx+UyXDN7tShv/s2NzDPtqeT/BZCHvY9yxEeb6LgEkos8TZvT5ep/7G8BpxA/SuBnviZ8xpDB5JObyZikqQ==", "requires": { "tslib": "^2.1.0" } @@ -2182,9 +2188,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2404,9 +2410,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2731,9 +2737,9 @@ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, "@microsoft/iot-cardboard-js": { - "version": "1.0.0-beta.302", - "resolved": "https://registry.npmjs.org/@microsoft/iot-cardboard-js/-/iot-cardboard-js-1.0.0-beta.302.tgz", - "integrity": "sha512-EMpz3DVZmBLqQbisYcscTtzu7ZtR9zxBTjbO9dyKb4yYMpXMTJcQEw2OpJ+0N2Xa4PfmQ/5yfcV9475shdiNbA==", + "version": "1.0.0-beta.342", + "resolved": "https://registry.npmjs.org/@microsoft/iot-cardboard-js/-/iot-cardboard-js-1.0.0-beta.342.tgz", + "integrity": "sha512-xxNpcxrRzzbXohki/cq+mkg6A8iwhxzdrxJcX8vSbl1sOsYt5UmXbLRdmnCvZFoXdnMOxMCiUjZdQ1v2u/4Cmg==", "requires": { "@azure/msal-browser": "^2.11.0", "@babylonjs/core": "^5.11.0", @@ -2755,6 +2761,8 @@ "expr-eval": "^2.0.2", "fast-json-patch": "^3.0.0-1", "fast-xml-parser": "^4.0.4", + "highcharts": "^10.2.1", + "highcharts-react-official": "^3.1.0", "i18next": "^19.8.7", "i18next-browser-languagedetector": "^6.0.1", "immer": "^9.0.6", @@ -2773,6 +2781,7 @@ "react-select": "^5.2.2", "react-syntax-highlighter": "^15.4.3", "react-transition-group": "^4.4.2", + "react-window": "^1.8.8", "recharts": "^2.1.8", "ts-md5": "^1.3.1", "ts-treemap": "^1.1.0", @@ -2841,11 +2850,6 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, "pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -3861,7 +3865,6 @@ "version": "4.14.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.2.tgz", "integrity": "sha512-mV9pmET4C2y2WlyHmD+Iun8SAEqkLahHGBkGqDVslHkmoj3VnxnGP4ANlwuxxfq1BsKdl/MPieDbohCEQgKrwA==", - "dev": true, "requires": { "@types/json-schema": "^7.0.3", "@typescript-eslint/scope-manager": "4.14.2", @@ -3875,7 +3878,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -3924,7 +3926,6 @@ "version": "4.14.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.2.tgz", "integrity": "sha512-ESiFl8afXxt1dNj8ENEZT12p+jl9PqRur+Y19m0Z/SPikGL6rqq4e7Me60SU9a2M28uz48/8yct97VQYaGl0Vg==", - "dev": true, "requires": { "@typescript-eslint/types": "4.14.2", "@typescript-eslint/visitor-keys": "4.14.2", @@ -3940,7 +3941,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -3949,7 +3949,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -3958,7 +3957,6 @@ "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -5675,9 +5673,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001183", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001183.tgz", - "integrity": "sha512-7JkwTEE1hlRKETbCFd8HDZeLiQIUcl8rC6JgNjvHCNaxOeNmQ9V4LvQXRUsKIV2CC73qKxljwVhToaA3kLRqTw==" + "version": "1.0.30001441", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", + "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==" }, "canonicalize": { "version": "1.0.5", @@ -6611,7 +6609,7 @@ "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -6620,7 +6618,7 @@ "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" } } }, @@ -7356,7 +7354,7 @@ "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "requires": { "array-uniq": "^1.0.1" } @@ -7928,7 +7926,7 @@ "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -7961,7 +7959,7 @@ "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "requires": { "prelude-ls": "~1.1.2" } @@ -8270,69 +8268,6 @@ "integrity": "sha512-dNGGjzuEzCE3d5EPZQ/QGtmlMotqnYWD/QpCZ1UuZlrMAdhG5rldh0N0haCvhGnUkSeuORS5VNROwF9Hrgn3Lg==", "requires": { "@typescript-eslint/experimental-utils": "^4.0.1" - }, - "dependencies": { - "@typescript-eslint/experimental-utils": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.2.tgz", - "integrity": "sha512-mV9pmET4C2y2WlyHmD+Iun8SAEqkLahHGBkGqDVslHkmoj3VnxnGP4ANlwuxxfq1BsKdl/MPieDbohCEQgKrwA==", - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.14.2", - "@typescript-eslint/types": "4.14.2", - "@typescript-eslint/typescript-estree": "4.14.2", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.2.tgz", - "integrity": "sha512-ESiFl8afXxt1dNj8ENEZT12p+jl9PqRur+Y19m0Z/SPikGL6rqq4e7Me60SU9a2M28uz48/8yct97VQYaGl0Vg==", - "requires": { - "@typescript-eslint/types": "4.14.2", - "@typescript-eslint/visitor-keys": "4.14.2", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "eslint-plugin-jsx-a11y": { @@ -9133,12 +9068,9 @@ } }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "loader-utils": { "version": "2.0.0", @@ -9875,6 +9807,16 @@ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" }, + "highcharts": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-10.3.2.tgz", + "integrity": "sha512-uDSuAOTKXOA90WUE38KKJawzMPjeIX/4UH3fMxZdoypbGVjsbuHO6jJSdeGf1LaDpu5wRg/xjO4QXzJqXfIrkA==" + }, + "highcharts-react-official": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/highcharts-react-official/-/highcharts-react-official-3.1.0.tgz", + "integrity": "sha512-CkWJHrVMOc6CT8KFu1dR+a0w5OxCVKKgZUNWtEi5TmR0xqBDIDe+RyM652MAN/jBYppxMo6TCUVlRObCyWAn0Q==" + }, "highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", @@ -10255,9 +10197,9 @@ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, "immer": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", - "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==" + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.17.tgz", + "integrity": "sha512-+hBruaLSQvkPfxRiTLK/mi4vLH+/VQS6z2KJahdoxlleFOI8ARqzOF17uy12eFDlqWmPoygwc5evgwcp+dlHhg==" }, "import-cwd": { "version": "2.1.0", @@ -10889,9 +10831,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -13627,9 +13569,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, "minipass": { "version": "3.1.3", @@ -13709,11 +13651,11 @@ } }, "mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } }, "mkdirp-classic": { @@ -14059,7 +14001,7 @@ "strip-ansi": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=" + "integrity": "sha512-behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg==" }, "underscore": { "version": "1.12.1", @@ -17856,14 +17798,6 @@ "requires": { "ms": "^2.1.1" } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } } } }, @@ -18225,7 +18159,7 @@ "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -18234,7 +18168,7 @@ "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" } } }, @@ -19341,12 +19275,9 @@ "integrity": "sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==" }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "loader-utils": { "version": "2.0.0", @@ -20272,6 +20203,15 @@ "prop-types": "^15.6.2" } }, + "react-window": { + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.8.tgz", + "integrity": "sha512-D4IiBeRtGXziZ1n0XklnFGu7h9gU684zepqyKzgPNzrsrk7xOCxni+TCckjg2Nr/DiaEEGVVmnhYSlT2rB47dQ==", + "requires": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + } + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -20797,7 +20737,7 @@ "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==" }, "loader-utils": { "version": "1.2.3", @@ -22075,12 +22015,9 @@ } }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "loader-utils": { "version": "2.0.0", @@ -22873,9 +22810,9 @@ } }, "url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", - "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -23697,7 +23634,7 @@ "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "requires": { "graceful-fs": "^4.1.6" } @@ -23798,7 +23735,7 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "optional": true }, "string-width": { @@ -23814,7 +23751,7 @@ "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "optional": true, "requires": { "ansi-regex": "^3.0.0" diff --git a/client/package.json b/client/package.json index ebe7c317d..3589f750a 100644 --- a/client/package.json +++ b/client/package.json @@ -5,7 +5,7 @@ "dependencies": { "@azure/digital-twins-core": "^1.0.3", "@azure/identity": "^1.2.4", - "@microsoft/iot-cardboard-js": "^1.0.0-beta.301", + "@microsoft/iot-cardboard-js": "^1.0.0-beta.342", "@microsoft/signalr": "^3.1.11", "@types/react": "^16.14.2", "@types/react-dom": "^16.9.10", diff --git a/client/public/locales/en/translation.json b/client/public/locales/en/translation.json index 14542146b..5d6e228d0 100644 --- a/client/public/locales/en/translation.json +++ b/client/public/locales/en/translation.json @@ -25,7 +25,9 @@ }, "errorMessages": { "error": "Error", - "chinaSupport": "The Azure Digital Twins Explorer is not fully supported in China yet." + "chinaSupport": "The Azure Digital Twins Explorer is not fully supported in China yet.", + "incompatibleLanguageVersion": "This ADT Instance contains DTDL v3 models, which the ADT Explorer does not yet fully support.", + "closeButton": "Close alert" }, "errorBoundary": { "modalHeader": "Something went wrong...", diff --git a/client/src/App.js b/client/src/App.js index 5d72c72b8..5f66295d3 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -27,7 +27,8 @@ import { ImportComponent } from "./components/ImportComponent/ImportComponent"; import TabularViewComponent from "./components/TabularViewComponent/TabularViewComponent"; import { ConsoleComponent } from "./components/ConsoleComponent/ConsoleComponent"; import AppCommandBar from "./components/AppCommandBar/AppCommandBar"; -import ErrorMessageComponent from "./components/ErrorMessageComponent/ErrorMessage"; +import ErrorMessageModal from "./components/ErrorMessageComponent/ErrorMessageModal"; +import ErrorMessageBar from "./components/ErrorMessageComponent/ErrorMessageBar"; import LoaderComponent from "./components/LoaderComponent/LoaderComponent"; import { eventService } from "./services/EventService"; @@ -447,6 +448,7 @@ class App extends Component { + this.setState({ modelUploadResults: null })} @@ -535,7 +537,7 @@ class App extends Component { - + { isLoading && } ); diff --git a/client/src/components/ErrorMessageComponent/ErrorMessage.scss b/client/src/components/ErrorMessageComponent/ErrorMessage.scss index f983f4276..ae1a53c74 100644 --- a/client/src/components/ErrorMessageComponent/ErrorMessage.scss +++ b/client/src/components/ErrorMessageComponent/ErrorMessage.scss @@ -88,4 +88,4 @@ pre { user-select: text; } -} +} \ No newline at end of file diff --git a/client/src/components/ErrorMessageComponent/ErrorMessageBar.js b/client/src/components/ErrorMessageComponent/ErrorMessageBar.js new file mode 100644 index 000000000..9f7bbdd91 --- /dev/null +++ b/client/src/components/ErrorMessageComponent/ErrorMessageBar.js @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { MessageBar, MessageBarType } from "office-ui-fabric-react"; +import React, { Component } from "react"; +import { withTranslation } from "react-i18next"; +import { eventService } from "../../services/EventService"; + +import "./ErrorMessage.scss"; +import { isDtdlVersion3 } from "./ErrorMessageHelper"; + +class ErrorMessageBar extends Component { + + constructor(props) { + super(props); + this.state = { + incomatibleLangauageVersion: false, + showBar: true + }; + } + + componentDidMount() { + eventService.subscribeError(exc => { + if (isDtdlVersion3(exc)) { + this.setState({ + incomatibleLangauageVersion: true + }); + } + }); + } + + close = () => { + eventService.publishHideWarningMessage(); + this.setState({ + showBar: false + }); + } + + render() { + const { incomatibleLangauageVersion, showBar } = this.state; + if (incomatibleLangauageVersion && showBar) { + // Just show a warning that v3 isn't fully supported at this time. + return ( + + {this.props.t("errorMessages.incompatibleLanguageVersion")} + + ); + } + return (
); + } + +} + +export default withTranslation("translation", { withRef: true })(ErrorMessageBar); diff --git a/client/src/components/ErrorMessageComponent/ErrorMessageHelper.js b/client/src/components/ErrorMessageComponent/ErrorMessageHelper.js new file mode 100644 index 000000000..e9ca78224 --- /dev/null +++ b/client/src/components/ErrorMessageComponent/ErrorMessageHelper.js @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +export const isDtdlVersion3 = exc => + (exc?.name === "DocumentParseError" && exc?.innerError?.details?.url === "dtmi:dtdl:context;3") + || exc?.message === "Invalid context. context is undefined"; diff --git a/client/src/components/ErrorMessageComponent/ErrorMessage.js b/client/src/components/ErrorMessageComponent/ErrorMessageModal.js similarity index 93% rename from client/src/components/ErrorMessageComponent/ErrorMessage.js rename to client/src/components/ErrorMessageComponent/ErrorMessageModal.js index 2c168eae7..f031b325b 100644 --- a/client/src/components/ErrorMessageComponent/ErrorMessage.js +++ b/client/src/components/ErrorMessageComponent/ErrorMessageModal.js @@ -13,8 +13,9 @@ import { rbacService} from "../../services/RBACService"; import { configService } from "../../services/ConfigService"; import "./ErrorMessage.scss"; +import { isDtdlVersion3 } from "./ErrorMessageHelper"; -export class ErrorMessageComponent extends Component { +export class ErrorMessageModal extends Component { constructor(props) { super(props); @@ -35,8 +36,11 @@ export class ErrorMessageComponent extends Component { let message = ""; let errorMessage = ""; let auth = false; + let v3 = false; - if (exc && exc.name === "RestError" && exc.statusCode === 403) { + if (isDtdlVersion3(exc)) { + v3 = true; + } else if (exc && exc.name === "RestError" && exc.statusCode === 403) { errorMessage = CUSTOM_AUTH_ERROR_MESSAGE; message = CUSTOM_AUTH_ERROR_MESSAGE; auth = true; @@ -54,7 +58,8 @@ export class ErrorMessageComponent extends Component { this.setState({ errorMessage, stackErrorMessage: exc.stack ? exc.stack.replace(/\n/g, "
").replace(/ /gi, " ") : null, - showModal: true, + // Don't show modal for v3 dtdl issue + showModal: !v3, showFixAuth: auth }); }); @@ -93,6 +98,7 @@ export class ErrorMessageComponent extends Component { render() { const { showModal, errorMessage, stackErrorMessage, showFixAuth, showAuthSpinner, showAuthStatus, showAuthResponse, showAdtChinaWarningMessage } = this.state; + let authComponent = ""; if (showFixAuth) { authComponent = Assign yourself data reader access; @@ -147,4 +153,4 @@ export class ErrorMessageComponent extends Component { } -export default withTranslation("translation", { withRef: true })(ErrorMessageComponent); +export default withTranslation("translation", { withRef: true })(ErrorMessageModal); diff --git a/client/src/components/GraphViewerComponent/GraphViewerComponent.scss b/client/src/components/GraphViewerComponent/GraphViewerComponent.scss index f6dd523ee..99990b4d1 100644 --- a/client/src/components/GraphViewerComponent/GraphViewerComponent.scss +++ b/client/src/components/GraphViewerComponent/GraphViewerComponent.scss @@ -127,6 +127,11 @@ top: -174px; left: 20px; } + .gc-controls-with-error { + position: absolute; + left: 20px; + top: -187px; + } .gc-filter-contents { height: 8px; diff --git a/client/src/components/GraphViewerComponent/GraphViewerFilteringComponent/GraphViewerFilteringComponent.js b/client/src/components/GraphViewerComponent/GraphViewerFilteringComponent/GraphViewerFilteringComponent.js index 8b26096e7..18ddcdc43 100644 --- a/client/src/components/GraphViewerComponent/GraphViewerFilteringComponent/GraphViewerFilteringComponent.js +++ b/client/src/components/GraphViewerComponent/GraphViewerFilteringComponent/GraphViewerFilteringComponent.js @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useState, useEffect } from "react"; import { withTranslation } from "react-i18next"; import { @@ -8,6 +8,8 @@ import { PivotItem } from "office-ui-fabric-react"; import GraphViewerTermManagementComponent from "../GraphViewerTermManagementComponent/GraphViewerTermManagementComponent"; +import { eventService } from "../../../services/EventService"; +import { isDtdlVersion3 } from "../../ErrorMessageComponent/ErrorMessageHelper"; const GraphViewerFilteringComponent = ({ toggleFilter, @@ -36,9 +38,22 @@ const GraphViewerFilteringComponent = ({ }) => { const filterButtonText = canSelectAllFilter ? selectAllFilteredText : t("graphViewerFilteringComponent.deselectAll"); const highlightButtonText = canSelectAllHighlight ? selectAllHighlightedText : t("graphViewerFilteringComponent.deselectAll"); + + const [ state, setState ] = useState({containerClass: "gc-controls"}); + + useEffect(() => { + eventService.subscribeError(exc => { + if (isDtdlVersion3(exc)) { + setState({containerClass: "gc-controls-with-error"}); + } + }); + eventService.subscribeHideWarningMessage(() => { + setState({containerClass: "gc-controls"}); + }); + }); return ( <> -
+
( - <> -
- -
- - -
-
- -
-
- +}) => { + const [ state, setState ] = useState({containerClass: "gc-controls"}); + + useEffect(() => { + eventService.subscribeError(exc => { + if (isDtdlVersion3(exc)) { + setState({containerClass: "gc-controls-with-error"}); + } + }); + eventService.subscribeHideWarningMessage(() => { + setState({containerClass: "gc-controls"}); + }); + }); + + return ( + <> +
+ +
+ + +
+
+ +
+
+ +
+
+
+
+
+ + + + + + + +
- -
-
-
- - - - - - - -
-
- -); + + ); +}; export default withTranslation()(ModelGraphViewerFilteringComponent); diff --git a/client/src/services/EventService.js b/client/src/services/EventService.js index c813c1c74..062b97178 100644 --- a/client/src/services/EventService.js +++ b/client/src/services/EventService.js @@ -377,6 +377,14 @@ class EventService { this._on("focustwinviewer", buildCallback(callback)); } + publishHideWarningMessage() { + this._emit("hideWarningMessage"); + } + + subscribeHideWarningMessage(callback) { + this._on("hideWarningMessage", buildCallback(callback)); + } + _emit = (name, payload) => this._action({ type: "publish", name, payload }); _off = (name, payload) => this._action({ type: "unsubscribe", name, payload }); diff --git a/client/src/services/ModelService.js b/client/src/services/ModelService.js index 9fe769ebe..4afff5b11 100644 --- a/client/src/services/ModelService.js +++ b/client/src/services/ModelService.js @@ -5,6 +5,8 @@ import { JsonldGraph } from "jsonld-graph"; import { apiService } from "./ApiService"; import context from "./ref/context"; +import context3 from "./ref/context3"; +import quantitativeTypes from "./ref/quantitativeTypes"; import iotCentralContext from "./ref/iotCentralContext"; const REL_TARGET_ANY = "*"; @@ -74,7 +76,9 @@ export class ModelService { const models = await apiService.queryModels(); this.modelGraph = new JsonldGraph([ { uri: "dtmi:iotcentral:context;2", context: iotCentralContext }, - { uri: "dtmi:dtdl:context;2", context } + { uri: "dtmi:dtdl:context;2", context }, + { uri: "dtmi:dtdl:context;3", context: context3 }, + { uri: "dtmi:dtdl:extension:quantitativeTypes;1", context: quantitativeTypes} ]); await this._loadGraph(models.map(x => x.model)); } @@ -83,7 +87,9 @@ export class ModelService { async initializeWithModels(models) { this.modelGraph = new JsonldGraph([ { uri: "dtmi:iotcentral:context;2", context: iotCentralContext }, - { uri: "dtmi:dtdl:context;2", context } + { uri: "dtmi:dtdl:context;2", context }, + { uri: "dtmi:dtdl:context;3", context: context3 }, + { uri: "dtmi:dtdl:extension:quantitativeTypes;1", context: quantitativeTypes} ]); await this._loadGraph(models); } diff --git a/client/src/services/ref/context3.js b/client/src/services/ref/context3.js new file mode 100644 index 000000000..11ab25958 --- /dev/null +++ b/client/src/services/ref/context3.js @@ -0,0 +1,240 @@ +module.exports = { + "@vocab": "http://azure.com/DigitalTwins/MetaModel/undefinedTerm/", + "dtmm": "http://azure.com/DigitalTwins/MetaModel/", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "sh": "http://www.w3.org/ns/shacl#", + "rdfs:Class": { "@type": "@vocab" }, + "rdfs:subClassOf": { "@type": "@vocab" }, + "rdfs:domain": { "@type": "@vocab" }, + "sh:targetClass": { "@type": "@vocab" }, + "sh:datatype": { "@type": "@vocab" }, + "sh:lessThan": { "@type": "@vocab" }, + "sh:lessThanOrEquals": { "@type": "@vocab" }, + "sh:class": { "@type": "@vocab" }, + "sh:nodeKind": { "@type": "@vocab" }, + "sh:path": { + "@type": "@vocab", + "@container": "@list" + }, + "sh:in": { + "@type": "@vocab", + "@container": "@list" + }, + "sh:and": { "@container": "@list" }, + "sh:or": { "@container": "@list" }, + "sh:not": { "@type": "@vocab" }, + "sh:alternativePath": { + "@type": "@vocab", + "@container": "@list" + }, + "sh:inversePath": { "@type": "@vocab" }, + "sh:zeroOrMorePath": { "@type": "@vocab" }, + "sh:oneOrMorePath": { "@type": "@vocab" }, + "sh:zeroOrOnePath": { "@type": "@vocab" }, + "sh:ignoredProperties": { + "@type": "@vocab", + "@container": "@list" + }, + "dtmm:aka": { "@type": "@vocab" }, + "dtmm:asCotype": { "@type": "@vocab" }, + "dtmm:asProperty": { "@type": "@vocab" }, + "dtmm:childOf": { "@type": "@vocab" }, + "dtmm:childProperties": { + "@type": "@vocab", + "@container": "@list" + }, + "dtmm:classOfProperty": { "@type": "@vocab" }, + "dtmm:datatypeProperty": { "@type": "@vocab" }, + "dtmm:description": { + "@container": "@language", + "@language": "en-US" + }, + "dtmm:dictionaryKey": { "@type": "@vocab" }, + "dtmm:dtmiSegment": { "@type": "@vocab" }, + "dtmm:excludeType": { "@type": "@vocab" }, + "dtmm:hasValue": { "@type": "@vocab" }, + "dtmm:importProperties": { + "@type": "@vocab", + "@container": "@list" + }, + "dtmm:instanceProperty": { + "@type": "@vocab", + "@container": "@list" + }, + "dtmm:jsonType": { "@type": "@vocab" }, + "dtmm:keyProperty": { "@type": "@vocab" }, + "dtmm:keyrefProperty": { "@type": "@vocab" }, + "dtmm:path": { "@type": "@vocab" }, + "dtmm:refersToProperty": { "@type": "@vocab" }, + "dtmm:parentOfProperty": { "@type": "@vocab" }, + "dtmm:patternDesc": { + "@container": "@language", + "@language": "en-US" + }, + "dtmm:properties": { + "@type": "@vocab", + "@container": "@list" + }, + "dtmm:relation": { "@type": "@vocab" }, + "dtmm:reservedPrefix": { "@container": "@list" }, + "dtmm:uniqueProperties": { + "@type": "@vocab", + "@container": "@list" + }, + + "DtdlExtension": { "@id": "dtmi:dtdl:meta:DtdlExtension;3" }, + "metamodel": { "@id": "dtmi:dtdl:meta:metamodel;3" }, + "model": { "@id": "dtmi:dtdl:meta:model;3" }, + + "AdjunctType": { "@id": "dtmi:dtdl:class:AdjunctType;3" }, + "Alias": { "@id": "dtmi:dtdl:class:Alias;3" }, + "Array": { "@id": "dtmi:dtdl:class:Array;3" }, + "Boolean": { "@id": "dtmi:dtdl:class:Boolean;3" }, + "ComplexSchema": { "@id": "dtmi:dtdl:class:ComplexSchema;3" }, + "Command": { "@id": "dtmi:dtdl:class:Command;3" }, + "CommandPayload": { "@id": "dtmi:dtdl:class:CommandPayload;3" }, + "CommandRequest": { "@id": "dtmi:dtdl:class:CommandRequest;3" }, + "CommandResponse": { "@id": "dtmi:dtdl:class:CommandResponse;3" }, + "CommandType": { "@id": "dtmi:dtdl:class:CommandType;3" }, + "Component": { "@id": "dtmi:dtdl:class:Component;3" }, + "Content": { "@id": "dtmi:dtdl:class:Content;3" }, + "Date": { "@id": "dtmi:dtdl:class:Date;3" }, + "DateTime": { "@id": "dtmi:dtdl:class:DateTime;3" }, + "Double": { "@id": "dtmi:dtdl:class:Double;3" }, + "Duration": { "@id": "dtmi:dtdl:class:Duration;3" }, + "Entity": { "@id": "dtmi:dtdl:class:Entity;3" }, + "Enum": { "@id": "dtmi:dtdl:class:Enum;3" }, + "EnumValue": { "@id": "dtmi:dtdl:class:EnumValue;3" }, + "Field": { "@id": "dtmi:dtdl:class:Field;3" }, + "Float": { "@id": "dtmi:dtdl:class:Float;3" }, + "Integer": { "@id": "dtmi:dtdl:class:Integer;3" }, + "Interface": { "@id": "dtmi:dtdl:class:Interface;3" }, + "LatentType": { "@id": "dtmi:dtdl:class:LatentType;3" }, + "Long": { "@id": "dtmi:dtdl:class:Long;3" }, + "Map": { "@id": "dtmi:dtdl:class:Map;3" }, + "MapKey": { "@id": "dtmi:dtdl:class:MapKey;3" }, + "MapValue": { "@id": "dtmi:dtdl:class:MapValue;3" }, + "NamedEntity": { "@id": "dtmi:dtdl:class:NamedEntity;3" }, + "NamedLatentType": { "@id": "dtmi:dtdl:class:NamedLatentType;3" }, + "NumericSchema": { "@id": "dtmi:dtdl:class:NumericSchema;3" }, + "Object": { "@id": "dtmi:dtdl:class:Object;3" }, + "PrimitiveSchema": { "@id": "dtmi:dtdl:class:PrimitiveSchema;3" }, + "Property": { "@id": "dtmi:dtdl:class:Property;3" }, + "Relationship": { "@id": "dtmi:dtdl:class:Relationship;3" }, + "Schema": { "@id": "dtmi:dtdl:class:Schema;3" }, + "SchemaField": { "@id": "dtmi:dtdl:class:SchemaField;3" }, + "SemanticType": { "@id": "dtmi:dtdl:class:SemanticType;3" }, + "SemanticUnit": { "@id": "dtmi:dtdl:class:SemanticUnit;3" }, + "String": { "@id": "dtmi:dtdl:class:String;3" }, + "Telemetry": { "@id": "dtmi:dtdl:class:Telemetry;3" }, + "TemporalSchema": { "@id": "dtmi:dtdl:class:TemporalSchema;3" }, + "Time": { "@id": "dtmi:dtdl:class:Time;3" }, + "Unit": { "@id": "dtmi:dtdl:class:Unit;3" }, + "UnitAttribute": { "@id": "dtmi:dtdl:class:UnitAttribute;3" }, + + "aliasFor": { + "@id": "dtmi:dtdl:property:aliasFor;3", + "@type": "@vocab" + }, + "commandType": { + "@id": "dtmi:dtdl:property:commandType;3", + "@type": "@vocab" + }, + "comment": { "@id": "dtmi:dtdl:property:comment;3" }, + "contents": { + "@id": "dtmi:dtdl:property:contents;3", + "@type": "@vocab" + }, + "description": { + "@id": "dtmi:dtdl:property:description;3", + "@container": "@language", + "@language": "en" + }, + "displayName": { + "@id": "dtmi:dtdl:property:displayName;3", + "@container": "@language", + "@language": "en" + }, + "elementSchema": { + "@id": "dtmi:dtdl:property:elementSchema;3", + "@type": "@vocab" + }, + "enumValue": { "@id": "dtmi:dtdl:property:enumValue;3" }, + "enumValues": { + "@id": "dtmi:dtdl:property:enumValues;3", + "@type": "@vocab" + }, + "exponent": { "@id": "dtmi:dtdl:property:exponent;3" }, + "extends": { + "@id": "dtmi:dtdl:property:extends;3", + "@type": "@vocab" + }, + "fields": { + "@id": "dtmi:dtdl:property:fields;3", + "@type": "@vocab" + }, + "languageVersion": { "@id": "dtmi:dtdl:property:languageVersion;3" }, + "mapKey": { + "@id": "dtmi:dtdl:property:mapKey;3", + "@type": "@vocab" + }, + "mapValue": { + "@id": "dtmi:dtdl:property:mapValue;3", + "@type": "@vocab" + }, + "maxMultiplicity": { "@id": "dtmi:dtdl:property:maxMultiplicity;3" }, + "minMultiplicity": { "@id": "dtmi:dtdl:property:minMultiplicity;3" }, + "name": { "@id": "dtmi:dtdl:property:name;3" }, + "properties": { + "@id": "dtmi:dtdl:property:properties;3", + "@type": "@vocab" + }, + "request": { + "@id": "dtmi:dtdl:property:request;3", + "@type": "@vocab" + }, + "response": { + "@id": "dtmi:dtdl:property:response;3", + "@type": "@vocab" + }, + "schema": { + "@id": "dtmi:dtdl:property:schema;3", + "@type": "@vocab" + }, + "schemas": { + "@id": "dtmi:dtdl:property:schemas;3", + "@type": "@vocab" + }, + "symbol": { "@id": "dtmi:dtdl:property:symbol;3" }, + "target": { + "@id": "dtmi:dtdl:property:target;3", + "@type": "@vocab" + }, + "valueSchema": { + "@id": "dtmi:dtdl:property:valueSchema;3", + "@type": "@vocab" + }, + "writable": { "@id": "dtmi:dtdl:property:writable;3" }, + + "asynchronous": { "@id": "dtmi:dtdl:instance:CommandType:asynchronous;3" }, + "synchronous": { "@id": "dtmi:dtdl:instance:CommandType:synchronous;3" }, + "boolean": { "@id": "dtmi:dtdl:instance:Schema:boolean;3" }, + "date": { "@id": "dtmi:dtdl:instance:Schema:date;3" }, + "dateTime": { "@id": "dtmi:dtdl:instance:Schema:dateTime;3" }, + "double": { "@id": "dtmi:dtdl:instance:Schema:double;3" }, + "duration": { "@id": "dtmi:dtdl:instance:Schema:duration;3" }, + "float": { "@id": "dtmi:dtdl:instance:Schema:float;3" }, + "integer": { "@id": "dtmi:dtdl:instance:Schema:integer;3" }, + "long": { "@id": "dtmi:dtdl:instance:Schema:long;3" }, + "string": { "@id": "dtmi:dtdl:instance:Schema:string;3" }, + "time": { "@id": "dtmi:dtdl:instance:Schema:time;3" }, + + "point": { "@id": "dtmi:standard:schema:geospatial:point;3" }, + "multiPoint": { "@id": "dtmi:standard:schema:geospatial:multiPoint;3" }, + "lineString": { "@id": "dtmi:standard:schema:geospatial:lineString;3" }, + "multiLineString": { "@id": "dtmi:standard:schema:geospatial:multiLineString;3" }, + "polygon": { "@id": "dtmi:standard:schema:geospatial:polygon;3" }, + "multiPolygon": { "@id": "dtmi:standard:schema:geospatial:multiPolygon;3" } +}; diff --git a/client/src/services/ref/quantitativeTypes.js b/client/src/services/ref/quantitativeTypes.js new file mode 100644 index 000000000..c9fbc9b44 --- /dev/null +++ b/client/src/services/ref/quantitativeTypes.js @@ -0,0 +1,399 @@ +module.exports = { + "RatioUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:RatioUnit" }, + "UnitPrefix": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:UnitPrefix" }, + "DecimalUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:DecimalUnit" }, + "BinaryUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:BinaryUnit" }, + "SymbolicUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:SymbolicUnit" }, + "QuantitativeType": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:QuantitativeType" }, + + "DecimalPrefix": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:DecimalPrefix" }, + "BinaryPrefix": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:BinaryPrefix" }, + + "Acceleration": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Acceleration" }, + "Angle": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Angle" }, + "AngularAcceleration": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:AngularAcceleration" }, + "AngularVelocity": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:AngularVelocity" }, + "ApparentEnergy": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:ApparentEnergy" }, + "ApparentPower": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:ApparentPower" }, + "Area": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Area" }, + "Capacitance": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Capacitance" }, + "Concentration": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Concentration" }, + "Current": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Current" }, + "DataRate": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:DataRate" }, + "DataSize": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:DataSize" }, + "Density": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Density" }, + "Distance": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Distance" }, + "ElectricCharge": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:ElectricCharge" }, + "Energy": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Energy" }, + "EnergyRate": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:EnergyRate" }, + "Force": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Force" }, + "Frequency": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Frequency" }, + "Humidity": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Humidity" }, + "Illuminance": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Illuminance" }, + "Inductance": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Inductance" }, + "IonizingRadiationDose": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:IonizingRadiationDose" }, + "Irradiance": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Irradiance" }, + "Latitude": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Latitude" }, + "Longitude": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Longitude" }, + "Length": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Length" }, + "Luminance": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Luminance" }, + "Luminosity": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Luminosity" }, + "LuminousFlux": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:LuminousFlux" }, + "LuminousIntensity": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:LuminousIntensity" }, + "MagneticFlux": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:MagneticFlux" }, + "MagneticInduction": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:MagneticInduction" }, + "Mass": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Mass" }, + "MassFlowRate": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:MassFlowRate" }, + "Power": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Power" }, + "Pressure": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Pressure" }, + "Radioactivity": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Radioactivity" }, + "ReactiveEnergy": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:ReactiveEnergy" }, + "ReactivePower": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:ReactivePower" }, + "RelativeDensity": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:RelativeDensity" }, + "RelativeHumidity": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:RelativeHumidity" }, + "Resistance": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Resistance" }, + "SoundPressure": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:SoundPressure" }, + "Temperature": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Temperature" }, + "Thrust": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Thrust" }, + "TimeSpan": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:TimeSpan" }, + "Torque": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Torque" }, + "Velocity": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Velocity" }, + "Voltage": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Voltage" }, + "Volume": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:Volume" }, + "VolumeFlowRate": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:class:VolumeFlowRate" }, + + "AccelerationUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:AccelerationUnit" }, + "AngleUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:AngleUnit" }, + "AngularAccelerationUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:AngularAccelerationUnit" }, + "AngularVelocityUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:AngularVelocityUnit" }, + "ApparentEnergyUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:ApparentEnergyUnit" }, + "ApparentPowerUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:ApparentPowerUnit" }, + "AreaUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:AreaUnit" }, + "CapacitanceUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:CapacitanceUnit" }, + "ChargeUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:ChargeUnit" }, + "CurrentUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:CurrentUnit" }, + "DataRateUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:DataRateUnit" }, + "DataSizeUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:DataSizeUnit" }, + "DensityUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:DensityUnit" }, + "EnergyUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:EnergyUnit" }, + "ForceUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:ForceUnit" }, + "FrequencyUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:FrequencyUnit" }, + "IlluminanceUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:IlluminanceUnit" }, + "InductanceUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:InductanceUnit" }, + "IonizingRadiationDoseUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:IonizingRadiationDoseUnit" }, + "IrradianceUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:IrradianceUnit" }, + "LengthUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:LengthUnit" }, + "LuminanceUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:LuminanceUnit" }, + "LuminousFluxUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:LuminousFluxUnit" }, + "LuminousIntensityUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:LuminousIntensityUnit" }, + "MagneticFluxUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:MagneticFluxUnit" }, + "MagneticInductionUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:MagneticInductionUnit" }, + "MassUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:MassUnit" }, + "MassFlowRateUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:MassFlowRateUnit" }, + "PowerUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:PowerUnit" }, + "PressureUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:PressureUnit" }, + "RadioactivityUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:RadioactivityUnit" }, + "ReactiveEnergyUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:ReactiveEnergyUnit" }, + "ReactivePowerUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:ReactivePowerUnit" }, + "ResistanceUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:ResistanceUnit" }, + "SoundPressureUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:SoundPressureUnit" }, + "TemperatureUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:TemperatureUnit" }, + "TimeUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:TimeUnit" }, + "TorqueUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:TorqueUnit" }, + "Unitless": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:Unitless" }, + "VelocityUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:VelocityUnit" }, + "VoltageUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:VoltageUnit" }, + "VolumeUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:VolumeUnit" }, + "VolumeFlowRateUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:enum:VolumeFlowRateUnit" }, + + "unit": { + "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:property:unit", + "@type": "@vocab" + }, + "topUnit": { + "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:property:topUnit", + "@type": "@vocab" + }, + "bottomUnit": { + "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:property:bottomUnit", + "@type": "@vocab" + }, + "baseUnit": { + "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:property:baseUnit", + "@type": "@vocab" + }, + "prefix": { + "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:property:prefix", + "@type": "@vocab" + }, + + "deci": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:deci" }, + "centi": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:centi" }, + "milli": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:milli" }, + "micro": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:micro" }, + "nano": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:nano" }, + "pico": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:pico" }, + "femto": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:femto" }, + "atto": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:atto" }, + "zepto": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:zepto" }, + "yocto": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:yocto" }, + "deca": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:deca" }, + "hecto": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:hecto" }, + "kilo": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:kilo" }, + "mega": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:mega" }, + "giga": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:giga" }, + "tera": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:tera" }, + "peta": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:peta" }, + "exa": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:exa" }, + "zetta": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:zetta" }, + "yotta": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:yotta" }, + "kibi": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:kibi" }, + "mebi": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:mebi" }, + "gibi": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:gibi" }, + "tebi": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:tebi" }, + "pebi": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:pebi" }, + "exbi": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:exbi" }, + "zebi": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:zebi" }, + "yobi": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unitprefix:yobi" }, + + "metrePerSecondSquared": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:metrePerSecondSquared" }, + "centimetrePerSecondSquared": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:centimetrePerSecondSquared" }, + "gForce": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gForce" }, + "radian": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:radian" }, + "degreeOfArc": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:degreeOfArc" }, + "minuteOfArc": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:minuteOfArc" }, + "secondOfArc": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:secondOfArc" }, + "turn": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:turn" }, + "radianPerSecondSquared": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:radianPerSecondSquared" }, + "radianPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:radianPerSecond" }, + "degreePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:degreePerSecond" }, + "revolutionPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:revolutionPerSecond" }, + "revolutionPerMinute": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:revolutionPerMinute" }, + "voltAmpereHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:voltAmpereHour" }, + "kilovoltAmpereHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilovoltAmpereHour" }, + "megavoltAmpereHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megavoltAmpereHour" }, + "gigavoltAmpereHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gigavoltAmpereHour" }, + "voltAmpere": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:voltAmpere" }, + "millivoltAmpere": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millivoltAmpere" }, + "kilovoltAmpere": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilovoltAmpere" }, + "megavoltAmpere": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megavoltAmpere" }, + "gigavoltAmpere": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gigavoltAmpere" }, + "squareMetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:squareMetre" }, + "squareCentimetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:squareCentimetre" }, + "squareMillimetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:squareMillimetre" }, + "squareKilometre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:squareKilometre" }, + "hectare": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:hectare" }, + "squareFoot": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:squareFoot" }, + "squareInch": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:squareInch" }, + "acre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:acre" }, + "farad": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:farad" }, + "millifarad": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millifarad" }, + "microfarad": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:microfarad" }, + "nanofarad": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:nanofarad" }, + "picofarad": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:picofarad" }, + "coulomb": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:coulomb" }, + "ampereHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:ampereHour" }, + "milliampereHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:milliampereHour" }, + "ampere": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:ampere" }, + "microampere": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:microampere" }, + "milliampere": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:milliampere" }, + "kiloampere": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kiloampere" }, + "bitPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:bitPerSecond" }, + "kibibitPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kibibitPerSecond" }, + "mebibitPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:mebibitPerSecond" }, + "gibibitPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gibibitPerSecond" }, + "tebibitPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:tebibitPerSecond" }, + "exbibitPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:exbibitPerSecond" }, + "zebibitPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:zebibitPerSecond" }, + "yobibitPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:yobibitPerSecond" }, + "bytePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:bytePerSecond" }, + "kibibytePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kibibytePerSecond" }, + "mebibytePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:mebibytePerSecond" }, + "gibibytePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gibibytePerSecond" }, + "tebibytePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:tebibytePerSecond" }, + "exbibytePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:exbibytePerSecond" }, + "zebibytePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:zebibytePerSecond" }, + "yobibytePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:yobibytePerSecond" }, + "bit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:bit" }, + "kibibit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kibibit" }, + "mebibit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:mebibit" }, + "gibibit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gibibit" }, + "tebibit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:tebibit" }, + "exbibit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:exbibit" }, + "zebibit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:zebibit" }, + "yobibit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:yobibit" }, + "byte": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:byte" }, + "kibibyte": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kibibyte" }, + "mebibyte": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:mebibyte" }, + "gibibyte": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gibibyte" }, + "tebibyte": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:tebibyte" }, + "exbibyte": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:exbibyte" }, + "zebibyte": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:zebibyte" }, + "yobibyte": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:yobibyte" }, + "kilogramPerCubicMetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilogramPerCubicMetre" }, + "gramPerCubicMetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gramPerCubicMetre" }, + "milligramPerCubicMetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:milligramPerCubicMetre" }, + "microgramPerCubicMetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:microgramPerCubicMetre" }, + "joule": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:joule" }, + "kilojoule": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilojoule" }, + "megajoule": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megajoule" }, + "gigajoule": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gigajoule" }, + "electronvolt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:electronvolt" }, + "megaelectronvolt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megaelectronvolt" }, + "wattHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:wattHour" }, + "milliwattHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:milliwattHour" }, + "kilowattHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilowattHour" }, + "megawattHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megawattHour" }, + "gigawattHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gigawattHour" }, + "terawattHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:terawattHour" }, + "britishThermalUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:britishThermalUnit" }, + "kiloBritishThermalUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kiloBritishThermalUnit" }, + "joulePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:joulePerSecond" }, + "kilojoulePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilojoulePerSecond" }, + "joulePerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:joulePerHour" }, + "kilojoulePerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilojoulePerHour" }, + "megajoulePerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megajoulePerHour" }, + "gigajoulePerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gigajoulePerHour" }, + "britishThermalUnitPerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:britishThermalUnitPerHour" }, + "kiloBritishThermalUnitPerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kiloBritishThermalUnitPerHour" }, + "newton": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:newton" }, + "pound": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:pound" }, + "ounce": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:ounce" }, + "ton": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:ton" }, + "hertz": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:hertz" }, + "millihertz": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millihertz" }, + "kilohertz": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilohertz" }, + "megahertz": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megahertz" }, + "gigahertz": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gigahertz" }, + "lux": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:lux" }, + "footcandle": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:footcandle" }, + "henry": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:henry" }, + "millihenry": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millihenry" }, + "microhenry": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:microhenry" }, + "gray": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gray" }, + "milligray": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:milligray" }, + "microgray": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:microgray" }, + "sievert": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:sievert" }, + "millisievert": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millisievert" }, + "microsievert": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:microsievert" }, + "wattPerSquareMetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:wattPerSquareMetre" }, + "metre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:metre" }, + "centimetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:centimetre" }, + "millimetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millimetre" }, + "micrometre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:micrometre" }, + "nanometre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:nanometre" }, + "kilometre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilometre" }, + "foot": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:foot" }, + "inch": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:inch" }, + "mile": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:mile" }, + "nauticalMile": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:nauticalMile" }, + "astronomicalUnit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:astronomicalUnit" }, + "candelaPerSquareMetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:candelaPerSquareMetre" }, + "lumen": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:lumen" }, + "candela": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:candela" }, + "weber": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:weber" }, + "maxwell": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:maxwell" }, + "tesla": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:tesla" }, + "gauss": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gauss" }, + "kilogram": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilogram" }, + "gram": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gram" }, + "milligram": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:milligram" }, + "microgram": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:microgram" }, + "tonne": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:tonne" }, + "slug": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:slug" }, + "massPound": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:massPound" }, + "gramPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gramPerSecond" }, + "kilogramPerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilogramPerSecond" }, + "gramPerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gramPerHour" }, + "kilogramPerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilogramPerHour" }, + "massPoundPerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:massPoundPerHour" }, + "watt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:watt" }, + "microwatt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:microwatt" }, + "milliwatt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:milliwatt" }, + "kilowatt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilowatt" }, + "megawatt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megawatt" }, + "gigawatt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gigawatt" }, + "horsepower": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:horsepower" }, + "kilowattHourPerYear": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilowattHourPerYear" }, + "tonOfRefrigeration": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:tonOfRefrigeration" }, + "pascal": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:pascal" }, + "decapascal": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:decapascal" }, + "hectopascal": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:hectopascal" }, + "kilopascal": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilopascal" }, + "bar": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:bar" }, + "millibar": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millibar" }, + "millimetresOfMercury": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millimetresOfMercury" }, + "poundPerSquareInch": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:poundPerSquareInch" }, + "inchesOfMercury": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:inchesOfMercury" }, + "inchesOfWater": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:inchesOfWater" }, + "becquerel": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:becquerel" }, + "kilobecquerel": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilobecquerel" }, + "megabecquerel": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megabecquerel" }, + "gigabecquerel": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gigabecquerel" }, + "voltAmpereReactiveHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:voltAmpereReactiveHour" }, + "kilovoltAmpereReactiveHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilovoltAmpereReactiveHour" }, + "megavoltAmpereReactiveHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megavoltAmpereReactiveHour" }, + "gigavoltAmpereReactiveHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gigavoltAmpereReactiveHour" }, + "voltAmpereReactive": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:voltAmpereReactive" }, + "millivoltAmpereReactive": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millivoltAmpereReactive" }, + "kilovoltAmpereReactive": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilovoltAmpereReactive" }, + "megavoltAmpereReactive": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megavoltAmpereReactive" }, + "gigavoltAmpereReactive": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gigavoltAmpereReactive" }, + "ohm": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:ohm" }, + "milliohm": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:milliohm" }, + "kiloohm": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kiloohm" }, + "megaohm": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megaohm" }, + "decibel": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:decibel" }, + "bel": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:bel" }, + "kelvin": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kelvin" }, + "degreeCelsius": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:degreeCelsius" }, + "degreeFahrenheit": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:degreeFahrenheit" }, + "second": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:second" }, + "millisecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millisecond" }, + "microsecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:microsecond" }, + "nanosecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:nanosecond" }, + "minute": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:minute" }, + "hour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:hour" }, + "day": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:day" }, + "year": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:year" }, + "unity": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:unity" }, + "percent": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:percent" }, + "partsPerMillion": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:partsPerMillion" }, + "partsPerBillion": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:partsPerBillion" }, + "partsPerTrillion": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:partsPerTrillion" }, + "partsPerQuadrillion": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:partsPerQuadrillion" }, + "newtonMetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:newtonMetre" }, + "metrePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:metrePerSecond" }, + "centimetrePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:centimetrePerSecond" }, + "kilometrePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilometrePerSecond" }, + "metrePerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:metrePerHour" }, + "kilometrePerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilometrePerHour" }, + "milePerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:milePerHour" }, + "milePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:milePerSecond" }, + "knot": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:knot" }, + "volt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:volt" }, + "millivolt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millivolt" }, + "microvolt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:microvolt" }, + "kilovolt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:kilovolt" }, + "megavolt": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:megavolt" }, + "cubicMetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:cubicMetre" }, + "cubicCentimetre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:cubicCentimetre" }, + "litre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:litre" }, + "millilitre": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millilitre" }, + "cubicFoot": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:cubicFoot" }, + "cubicInch": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:cubicInch" }, + "fluidOunce": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:fluidOunce" }, + "gallon": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gallon" }, + "litrePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:litrePerSecond" }, + "millilitrePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millilitrePerSecond" }, + "litrePerMinute": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:litrePerMinute" }, + "millilitrePerMinute": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millilitrePerMinute" }, + "litrePerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:litrePerHour" }, + "millilitrePerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:millilitrePerHour" }, + "gallonPerMinute": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gallonPerMinute" }, + "gallonPerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:gallonPerHour" }, + "cubicFootPerMinute": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:cubicFootPerMinute" }, + "cubicMetrePerHour": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:cubicMetrePerHour" }, + "cubicMetrePerMinute": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:cubicMetrePerMinute" }, + "cubicMetrePerSecond": { "@id": "dtmi:dtdl:extension:quantitativeTypes:v1:unit:cubicMetrePerSecond" } + } \ No newline at end of file