From 02ba58c299963867b02d8e363c716a3e5622d770 Mon Sep 17 00:00:00 2001 From: NicolasRichel Date: Tue, 13 Dec 2022 10:35:10 +0100 Subject: [PATCH 1/6] feat: tipee reflect plugin --- package-lock.json | 3719 +++++--- src/plugins/reflect/assets/favicon-32x32.png | Bin 0 -> 1874 bytes src/plugins/reflect/assets/reflect.png | Bin 0 -> 65548 bytes src/plugins/reflect/assets/rivp.png | Bin 0 -> 6908 bytes src/plugins/reflect/assets/tipee.png | Bin 0 -> 3148 bytes src/plugins/reflect/package-lock.json | 3181 +++++++ src/plugins/reflect/package.json | 37 + src/plugins/reflect/rollup.config.js | 37 + .../reflect/src/.archived/AddRuleReflect.vue | 186 + src/plugins/reflect/src/.archived/Reflect.vue | 248 + src/plugins/reflect/src/.archived/Rules.scss | 41 + src/plugins/reflect/src/.archived/Rules.vue | 483 + .../reflect/src/.archived/ViewLinkCell.vue | 51 + .../src/.archived/functions_exceljs.js | 296 + src/plugins/reflect/src/.archived/icon.svg | 3 + .../reflect/src/.archived/my_parser.js | 8231 +++++++++++++++++ src/plugins/reflect/src/.archived/state.js | 24 + src/plugins/reflect/src/.archived/tipee.gif | Bin 0 -> 3735 bytes src/plugins/reflect/src/.archived/utils.js | 10 + src/plugins/reflect/src/Reflect.scss | 20 + src/plugins/reflect/src/Reflect.vue | 59 + .../ReflectDashboard/ReflectDashboard.scss | 69 + .../src/ReflectDashboard/ReflectDashboard.vue | 329 + .../src/ReflectLogin/ReflectLogin.scss | 40 + .../reflect/src/ReflectLogin/ReflectLogin.vue | 108 + .../ReflectValidationTable.vue | 93 + src/plugins/reflect/src/config.js | 28 + src/plugins/reflect/src/reflect.plugin.js | 28 + src/plugins/reflect/src/service.js | 203 + src/plugins/reflect/src/xls-utils.js | 320 + src/views/Viewer.vue | 7 +- 31 files changed, 16555 insertions(+), 1296 deletions(-) create mode 100644 src/plugins/reflect/assets/favicon-32x32.png create mode 100644 src/plugins/reflect/assets/reflect.png create mode 100644 src/plugins/reflect/assets/rivp.png create mode 100644 src/plugins/reflect/assets/tipee.png create mode 100644 src/plugins/reflect/package-lock.json create mode 100644 src/plugins/reflect/package.json create mode 100644 src/plugins/reflect/rollup.config.js create mode 100644 src/plugins/reflect/src/.archived/AddRuleReflect.vue create mode 100644 src/plugins/reflect/src/.archived/Reflect.vue create mode 100644 src/plugins/reflect/src/.archived/Rules.scss create mode 100644 src/plugins/reflect/src/.archived/Rules.vue create mode 100644 src/plugins/reflect/src/.archived/ViewLinkCell.vue create mode 100644 src/plugins/reflect/src/.archived/functions_exceljs.js create mode 100644 src/plugins/reflect/src/.archived/icon.svg create mode 100644 src/plugins/reflect/src/.archived/my_parser.js create mode 100644 src/plugins/reflect/src/.archived/state.js create mode 100644 src/plugins/reflect/src/.archived/tipee.gif create mode 100644 src/plugins/reflect/src/.archived/utils.js create mode 100644 src/plugins/reflect/src/Reflect.scss create mode 100644 src/plugins/reflect/src/Reflect.vue create mode 100644 src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.scss create mode 100644 src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue create mode 100644 src/plugins/reflect/src/ReflectLogin/ReflectLogin.scss create mode 100644 src/plugins/reflect/src/ReflectLogin/ReflectLogin.vue create mode 100644 src/plugins/reflect/src/ReflectValidationTable/ReflectValidationTable.vue create mode 100644 src/plugins/reflect/src/config.js create mode 100644 src/plugins/reflect/src/reflect.plugin.js create mode 100644 src/plugins/reflect/src/service.js create mode 100644 src/plugins/reflect/src/xls-utils.js diff --git a/package-lock.json b/package-lock.json index 91108355..0a5b4e90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,9 +46,8 @@ }, "node_modules/@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", @@ -60,10 +59,8 @@ }, "node_modules/@babel/code-frame": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -73,9 +70,8 @@ }, "node_modules/@babel/compat-data": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.9.0" @@ -83,9 +79,8 @@ }, "node_modules/@babel/core": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -114,9 +109,8 @@ }, "node_modules/@babel/eslint-parser": { "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", - "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", "dev": true, + "license": "MIT", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -132,9 +126,8 @@ }, "node_modules/@babel/generator": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/types": "^7.21.4", @@ -148,9 +141,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/compat-data": "^7.21.4", @@ -168,9 +160,8 @@ }, "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.9.0" @@ -178,9 +169,8 @@ }, "node_modules/@babel/helper-function-name": { "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/template": "^7.20.7", @@ -192,9 +182,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/types": "^7.18.6" @@ -205,9 +194,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/types": "^7.21.4" @@ -218,9 +206,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -238,9 +225,8 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/types": "^7.20.2" @@ -251,9 +237,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/types": "^7.18.6" @@ -264,29 +249,24 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.9.0" @@ -294,9 +274,8 @@ }, "node_modules/@babel/helpers": { "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/template": "^7.20.7", @@ -309,10 +288,8 @@ }, "node_modules/@babel/highlight": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -324,10 +301,8 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -337,10 +312,8 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -352,47 +325,37 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -402,8 +365,7 @@ }, "node_modules/@babel/parser": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -413,9 +375,8 @@ }, "node_modules/@babel/runtime": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", "dev": true, + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -425,9 +386,8 @@ }, "node_modules/@babel/template": { "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/code-frame": "^7.18.6", @@ -440,9 +400,8 @@ }, "node_modules/@babel/traverse": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", - "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/code-frame": "^7.21.4", @@ -462,10 +421,8 @@ }, "node_modules/@babel/types": { "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -496,9 +453,7 @@ "link": true }, "node_modules/@bimdata/design-system": { - "version": "1.4.0-rc.92", - "resolved": "https://registry.npmjs.org/@bimdata/design-system/-/design-system-1.4.0-rc.92.tgz", - "integrity": "sha512-viB2+SrG4gRMMCwPWOoAvxZJQiymJp18uoI04V/0TOrpJWAKGWutCe8zOHAs/YML9Y5DYswZxYvHBwr1yaz4cQ==" + "version": "1.4.0-rc.92" }, "node_modules/@bimdata/excel-export-plugin": { "resolved": "src/plugins/excelExport", @@ -537,23 +492,18 @@ "link": true }, "node_modules/@bimdata/typescript-fetch-api-client": { - "version": "9.11.0", - "resolved": "https://registry.npmjs.org/@bimdata/typescript-fetch-api-client/-/typescript-fetch-api-client-9.11.0.tgz", - "integrity": "sha512-S7iyoZTgua9N8jxqsvAIA8B/cnO7jsV9ILCl2BN3L9SarL4ZRriQx1Q6mcudnh0JvHvji6JQY3RF5b6IRZtG/g==" + "version": "9.11.0" }, "node_modules/@bimdata/viewer": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@bimdata/viewer/-/viewer-2.3.0.tgz", - "integrity": "sha512-AehRMcrWQWd5NkNDhnePqbaNIu4APECDBazwc8cxUyhl2l5E8bwbSaW1y0PrWZwHYjNzzJmxmAWGJ2wEbYxSBg==" + "version": "2.3.0" }, "node_modules/@esbuild/linux-x64": { "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -564,9 +514,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -579,9 +528,8 @@ }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -591,18 +539,16 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -623,9 +569,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -638,9 +583,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -650,18 +594,15 @@ }, "node_modules/@eslint/js": { "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", - "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@fast-csv/format": { "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", - "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", - "dev": true, + "license": "MIT", "dependencies": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", @@ -673,15 +614,11 @@ }, "node_modules/@fast-csv/format/node_modules/@types/node": { "version": "14.18.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.52.tgz", - "integrity": "sha512-DGhiXKOHSFVVm+PJD+9Y0ObxXLeG6qwc0HoOn+ooQKeNNu+T2mEJCM5UBDUREKAggl9MHYjb5E71PAmx6MbzIg==", - "dev": true + "license": "MIT" }, "node_modules/@fast-csv/parse": { "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", - "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", - "dev": true, + "license": "MIT", "dependencies": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", @@ -694,15 +631,12 @@ }, "node_modules/@fast-csv/parse/node_modules/@types/node": { "version": "14.18.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.52.tgz", - "integrity": "sha512-DGhiXKOHSFVVm+PJD+9Y0ObxXLeG6qwc0HoOn+ooQKeNNu+T2mEJCM5UBDUREKAggl9MHYjb5E71PAmx6MbzIg==", - "dev": true + "license": "MIT" }, "node_modules/@giro3d/giro3d": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@giro3d/giro3d/-/giro3d-0.4.0.tgz", - "integrity": "sha512-0xnFRMG5DgNrzxqXAlvGBeLsCnqadUdD5vuC3A1SQL6kx0hDZV5rmCOqIuPL8AUKW1v9Z9qpGxdjtChsfVVtPg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.17.9", "@mapbox/togeojson": "^0.16.0", @@ -723,9 +657,8 @@ }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -737,9 +670,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -750,14 +682,12 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@intlify/core-base": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz", - "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", + "license": "MIT", "dependencies": { "@intlify/devtools-if": "9.2.2", "@intlify/message-compiler": "9.2.2", @@ -770,8 +700,7 @@ }, "node_modules/@intlify/devtools-if": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", - "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", + "license": "MIT", "dependencies": { "@intlify/shared": "9.2.2" }, @@ -781,8 +710,7 @@ }, "node_modules/@intlify/message-compiler": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", - "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", + "license": "MIT", "dependencies": { "@intlify/shared": "9.2.2", "source-map": "0.6.1" @@ -793,16 +721,14 @@ }, "node_modules/@intlify/shared": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz", - "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==", + "license": "MIT", "engines": { "node": ">= 14" } }, "node_modules/@intlify/vue-devtools": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", - "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", + "license": "MIT", "dependencies": { "@intlify/core-base": "9.2.2", "@intlify/shared": "9.2.2" @@ -813,9 +739,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -827,27 +752,24 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", - "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -855,14 +777,12 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -870,14 +790,11 @@ }, "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", "dev": true, "peer": true, "engines": { @@ -886,9 +803,8 @@ }, "node_modules/@mapbox/mapbox-gl-style-spec": { "version": "13.28.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-style-spec/-/mapbox-gl-style-spec-13.28.0.tgz", - "integrity": "sha512-B8xM7Fp1nh5kejfIl4SWeY0gtIeewbuRencqO3cJDrCHZpaPg7uY+V8abuR+esMeuOjRl5cLhVTP40v+1ywxbg==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "@mapbox/jsonlint-lines-primitives": "~2.0.2", @@ -909,15 +825,13 @@ }, "node_modules/@mapbox/point-geometry": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@mapbox/togeojson": { "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@mapbox/togeojson/-/togeojson-0.16.0.tgz", - "integrity": "sha512-PeBrRQ+kuVP5j3lqa5JtnYBd9E7eQdWnsmOmUq8aWs0caNzLbCqnXSkKxrIGURukf7lZ82aOxjustLRX3f9GOA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "concat-stream": "~1.5.1", "minimist": "1.2.0", @@ -929,40 +843,35 @@ }, "node_modules/@mapbox/togeojson/node_modules/minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@mapbox/unitbezier": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==", "dev": true, + "license": "BSD-2-Clause", "peer": true }, "node_modules/@mapbox/vector-tile": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@mapbox/point-geometry": "~0.1.0" } }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-scope": "5.1.1" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -973,18 +882,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -995,15 +902,43 @@ }, "node_modules/@petamoriken/float16": { "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.1.tgz", - "integrity": "sha512-oj3dU9kuMy8AqrreIboVh3KCJGSQO5T+dJ8JQFl369961jTWvPLP1GIlLy0FVoWehXLoI9BXygu/yzuNiIHBlg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-replace": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", + "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace/node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } }, "node_modules/@rollup/pluginutils": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -1023,9 +958,8 @@ }, "node_modules/@types/eslint": { "version": "8.37.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", - "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/estree": "*", @@ -1034,9 +968,8 @@ }, "node_modules/@types/eslint-scope": { "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/eslint": "*", @@ -1045,34 +978,37 @@ }, "node_modules/@types/estree": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/minimatch": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", "dev": true, - "peer": true + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } }, "node_modules/@vitejs/plugin-vue": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", - "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==", "dev": true, + "license": "MIT", "engines": { "node": "^14.18.0 || >=16.0.0" }, @@ -1083,8 +1019,7 @@ }, "node_modules/@vue/compat": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compat/-/compat-3.3.4.tgz", - "integrity": "sha512-VwAsPqUqRJVxeLQPUC03Sa5d+T8UG2Qv4VItq74KmNvtQlRXICpa/sqq12BcyBB4Tz1U5paOEZxWCUoXkrZ9QQ==", + "license": "MIT", "dependencies": { "@babel/parser": "^7.21.3", "estree-walker": "^2.0.2", @@ -1096,8 +1031,7 @@ }, "node_modules/@vue/compiler-core": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", - "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "license": "MIT", "dependencies": { "@babel/parser": "^7.21.3", "@vue/shared": "3.3.4", @@ -1107,8 +1041,7 @@ }, "node_modules/@vue/compiler-dom": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", - "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "license": "MIT", "dependencies": { "@vue/compiler-core": "3.3.4", "@vue/shared": "3.3.4" @@ -1116,8 +1049,7 @@ }, "node_modules/@vue/compiler-sfc": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", - "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.15", "@vue/compiler-core": "3.3.4", @@ -1133,30 +1065,107 @@ }, "node_modules/@vue/compiler-ssr": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", - "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "license": "MIT", "dependencies": { "@vue/compiler-dom": "3.3.4", "@vue/shared": "3.3.4" } }, + "node_modules/@vue/component-compiler": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@vue/component-compiler/-/component-compiler-4.2.4.tgz", + "integrity": "sha512-tFGw3h3+nxiqnyborwWQ+rUgKAwSFl0Sdg+BCZkWTyFfkEF5fqunTNoklEUDdtRQMmVqsajn1pOZdm0zh4Uicw==", + "dev": true, + "dependencies": { + "@vue/component-compiler-utils": "^3.0.0", + "clean-css": "^4.1.11", + "hash-sum": "^1.0.2", + "postcss-modules-sync": "^1.0.0", + "source-map": "0.6.*" + }, + "optionalDependencies": { + "less": "^3.9.0", + "pug": "^3.0.1", + "sass": "^1.18.0", + "stylus": "^0.54.5" + }, + "peerDependencies": { + "postcss": ">=6.0", + "vue-template-compiler": "*" + } + }, + "node_modules/@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, "node_modules/@vue/devtools-api": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", - "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + "license": "MIT" }, "node_modules/@vue/reactivity": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", - "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "license": "MIT", "dependencies": { "@vue/shared": "3.3.4" } }, "node_modules/@vue/reactivity-transform": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", - "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.15", "@vue/compiler-core": "3.3.4", @@ -1167,8 +1176,7 @@ }, "node_modules/@vue/runtime-core": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", - "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "license": "MIT", "dependencies": { "@vue/reactivity": "3.3.4", "@vue/shared": "3.3.4" @@ -1176,8 +1184,7 @@ }, "node_modules/@vue/runtime-dom": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", - "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "license": "MIT", "dependencies": { "@vue/runtime-core": "3.3.4", "@vue/shared": "3.3.4", @@ -1186,8 +1193,7 @@ }, "node_modules/@vue/server-renderer": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", - "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "license": "MIT", "dependencies": { "@vue/compiler-ssr": "3.3.4", "@vue/shared": "3.3.4" @@ -1198,14 +1204,12 @@ }, "node_modules/@vue/shared": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", - "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + "license": "MIT" }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.1", @@ -1214,30 +1218,26 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", @@ -1247,16 +1247,14 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -1267,9 +1265,8 @@ }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" @@ -1277,9 +1274,8 @@ }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "@xtuc/long": "4.2.2" @@ -1287,16 +1283,14 @@ }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -1311,9 +1305,8 @@ }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -1325,9 +1318,8 @@ }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -1338,9 +1330,8 @@ }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -1353,9 +1344,8 @@ }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -1364,29 +1354,25 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true, + "license": "BSD-3-Clause", "peer": true }, "node_modules/@xtuc/long": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true, + "license": "Apache-2.0", "peer": true }, "node_modules/a-sync-waterfall": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", - "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/acorn": { "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1396,9 +1382,8 @@ }, "node_modules/acorn-import-assertions": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "dev": true, + "license": "MIT", "peer": true, "peerDependencies": { "acorn": "^8" @@ -1406,18 +1391,16 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1431,18 +1414,16 @@ }, "node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -1455,18 +1436,16 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1479,9 +1458,8 @@ }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1492,9 +1470,7 @@ }, "node_modules/archiver": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", - "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", - "dev": true, + "license": "MIT", "dependencies": { "archiver-utils": "^2.1.0", "async": "^3.2.3", @@ -1510,9 +1486,7 @@ }, "node_modules/archiver-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, + "license": "MIT", "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", @@ -1531,9 +1505,7 @@ }, "node_modules/archiver-utils/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -1546,74 +1518,92 @@ }, "node_modules/archiver-utils/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "license": "MIT" }, "node_modules/archiver-utils/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/array-differ": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/arrify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/assert-never": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.3.0.tgz", + "integrity": "sha512-9Z3vxQ+berkL/JJo0dK+EY3Lp0s3NtSnP3VCLsh5HDcZPrh0M+KQRK5sWhUeyPPH+/RCxZqOxLMR+YC6vlviEQ==", + "dev": true, + "optional": true }, "node_modules/async": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true + "license": "MIT" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "optional": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "optional": true, + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -1627,70 +1617,63 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/big-integer": { "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "dev": true, + "license": "Unlicense", "engines": { "node": ">=0.6" } }, "node_modules/big.js": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/binary": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "dev": true, + "license": "MIT", "dependencies": { "buffers": "~0.1.1", "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" } }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, "node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1698,9 +1681,8 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -1710,8 +1692,6 @@ }, "node_modules/browserslist": { "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "funding": [ { @@ -1723,6 +1703,7 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], + "license": "MIT", "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001449", @@ -1739,9 +1720,6 @@ }, "node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, "funding": [ { "type": "github", @@ -1756,6 +1734,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -1763,50 +1742,71 @@ }, "node_modules/buffer-crc32": { "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/buffer-indexof-polyfill": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/buffers": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "dev": true, "engines": { "node": ">=0.2.0" } }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { "version": "1.0.30001478", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001478.tgz", - "integrity": "sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==", "dev": true, "funding": [ { @@ -1822,25 +1822,20 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "CC-BY-4.0", "peer": true }, "node_modules/chainsaw": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "dev": true, + "license": "MIT/X11", "dependencies": { "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" } }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1852,26 +1847,33 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "dev": true, + "optional": true, + "dependencies": { + "is-regex": "^1.0.3" + } + }, "node_modules/chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/chartist": { "version": "0.11.4", - "resolved": "https://registry.npmjs.org/chartist/-/chartist-0.11.4.tgz", - "integrity": "sha512-H4AimxaUD738/u9Mq8t27J4lh6STsLi4BQHt65nOtpLk3xyrBPaLiLMrHw7/WV9CmsjGA02WihjuL5qpSagLYw==", "dev": true, + "license": "MIT OR WTFPL", "engines": { "node": ">=4.6.0" } }, "node_modules/chartist-plugin-tooltips-updated": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/chartist-plugin-tooltips-updated/-/chartist-plugin-tooltips-updated-0.1.4.tgz", - "integrity": "sha512-fp03cd49Z73nmphxyzm6zEm1o8hSJMUeKz9/xphRu943rcphFXUJZIlHs09SpetUnB+ebsvOl9IE69mdbJNb7w==", "dev": true, + "license": "MIT", "dependencies": { "chartist": "0.11.4", "lodash": "~4.17.19" @@ -1882,8 +1884,6 @@ }, "node_modules/chartist-plugin-zoom": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/chartist-plugin-zoom/-/chartist-plugin-zoom-0.6.0.tgz", - "integrity": "sha512-FrnJK/HVl6FEqCVrvAiz6WJiwt+5DMBc3AozSqiufpUdEk5ybfPjYqw7wWFC3phiKVRrJrVxJan3DwSI8VwhJA==", "dev": true, "engines": { "node": ">=0.8.0" @@ -1891,8 +1891,6 @@ }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -1900,6 +1898,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1918,9 +1917,8 @@ }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1930,19 +1928,29 @@ }, "node_modules/chrome-trace-event": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.0" } }, + "node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -1952,9 +1960,8 @@ }, "node_modules/cli-spinners": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.8.0.tgz", - "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -1964,27 +1971,24 @@ }, "node_modules/cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, + "license": "ISC", "engines": { "node": ">= 10" } }, "node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1994,24 +1998,20 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/commander": { "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12" } }, "node_modules/compress-commons": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "dev": true, + "license": "MIT", "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.2", @@ -2024,18 +2024,15 @@ }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "license": "MIT" }, "node_modules/concat-stream": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==", "dev": true, "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "inherits": "~2.0.1", "readable-stream": "~2.0.0", @@ -2044,15 +2041,13 @@ }, "node_modules/concat-stream/node_modules/process-nextick-args": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-stream/node_modules/readable-stream": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -2064,28 +2059,61 @@ }, "node_modules/concat-stream/node_modules/string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "deprecated": "Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "optional": true, + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } }, "node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true, + "license": "MIT", "peer": true }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "optional": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, "node_modules/copy-dir": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-1.3.0.tgz", - "integrity": "sha512-Q4+qBFnN4bwGwvtXXzbp4P/4iNk0MaiGAzvQ8OiMtlLjkIKjmNN689uVzShSM0908q7GoFHXIPx4zi75ocoaHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/core-js": { "version": "3.30.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.0.tgz", - "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -2093,15 +2121,11 @@ }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "license": "MIT" }, "node_modules/crc-32": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, + "license": "Apache-2.0", "bin": { "crc32": "bin/crc32.njs" }, @@ -2111,9 +2135,7 @@ }, "node_modules/crc32-stream": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dev": true, + "license": "MIT", "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" @@ -2124,9 +2146,8 @@ }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2138,21 +2159,51 @@ }, "node_modules/crypto-js": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + "license": "MIT" + }, + "node_modules/css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "node_modules/css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==", + "dev": true, + "optional": true, + "dependencies": { + "css": "^2.0.0" + } + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } }, "node_modules/csscolorparser": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/cssesc": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -2162,20 +2213,23 @@ }, "node_modules/csstype": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "license": "MIT" }, "node_modules/dayjs": { "version": "1.11.8", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", - "integrity": "sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==", - "dev": true + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "peer": true }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -2188,17 +2242,34 @@ } } }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10" + } + }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, "node_modules/defaults": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -2206,11 +2277,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -2218,20 +2306,23 @@ "node": ">=6.0.0" } }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", + "dev": true, + "optional": true + }, "node_modules/duplexer2": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, + "license": "BSD-3-Clause", "dependencies": { "readable-stream": "^2.0.2" } }, "node_modules/duplexer2/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -2244,61 +2335,50 @@ }, "node_modules/duplexer2/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "license": "MIT" }, "node_modules/duplexer2/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/earcut": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/electron-to-chromium": { "version": "1.4.361", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.361.tgz", - "integrity": "sha512-VocVwjPp05HUXzf3xmL0boRn5b0iyqC7amtDww84Jb1QJNPBc7F69gJyEeXRoriLBC4a5pSyckdllrXAg4mmRA==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/emojis-list": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/enhanced-resolve": { "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -2308,19 +2388,54 @@ "node": ">=10.13.0" } }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "optional": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/esbuild": { "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -2354,9 +2469,8 @@ }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -2364,9 +2478,8 @@ }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2376,9 +2489,8 @@ }, "node_modules/eslint": { "version": "8.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", - "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", @@ -2433,9 +2545,8 @@ }, "node_modules/eslint-config-prettier": { "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -2445,9 +2556,8 @@ }, "node_modules/eslint-plugin-prettier": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0" }, @@ -2466,9 +2576,8 @@ }, "node_modules/eslint-plugin-vue": { "version": "8.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz", - "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-utils": "^3.0.0", "natural-compare": "^1.4.0", @@ -2486,9 +2595,8 @@ }, "node_modules/eslint-plugin-vue/node_modules/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -2498,9 +2606,8 @@ }, "node_modules/eslint-plugin-vue/node_modules/semver": { "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -2513,15 +2620,13 @@ }, "node_modules/eslint-plugin-vue/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/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==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -2532,9 +2637,8 @@ }, "node_modules/eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -2550,18 +2654,16 @@ }, "node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -2572,9 +2674,8 @@ }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2584,18 +2685,16 @@ }, "node_modules/eslint/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/eslint/node_modules/globals": { "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -2608,9 +2707,8 @@ }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -2620,9 +2718,8 @@ }, "node_modules/espree": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", @@ -2637,9 +2734,8 @@ }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2649,9 +2745,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -2661,18 +2756,16 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -2682,41 +2775,36 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.8.x" @@ -2724,9 +2812,7 @@ }, "node_modules/exceljs": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.3.0.tgz", - "integrity": "sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w==", - "dev": true, + "license": "MIT", "dependencies": { "archiver": "^5.0.0", "dayjs": "^1.8.34", @@ -2744,9 +2830,7 @@ }, "node_modules/exceljs/node_modules/tmp": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, + "license": "MIT", "dependencies": { "rimraf": "^3.0.0" }, @@ -2756,9 +2840,8 @@ }, "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -2770,9 +2853,7 @@ }, "node_modules/fast-csv": { "version": "4.3.6", - "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", - "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", - "dev": true, + "license": "MIT", "dependencies": { "@fast-csv/format": "4.3.5", "@fast-csv/parse": "4.3.6" @@ -2783,42 +2864,42 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -2831,18 +2912,16 @@ }, "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -2852,9 +2931,8 @@ }, "node_modules/file-loader": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", "dev": true, + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -2872,9 +2950,8 @@ }, "node_modules/file-loader/node_modules/loader-utils": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -2886,15 +2963,12 @@ }, "node_modules/file-saver": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", - "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", - "dev": true + "license": "MIT" }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2904,9 +2978,8 @@ }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -2920,9 +2993,8 @@ }, "node_modules/flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -2933,42 +3005,47 @@ }, "node_modules/flatbush": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatbush/-/flatbush-3.3.1.tgz", - "integrity": "sha512-oKuPbtT+DS2CxH+9Vhbsq8HifmSCuOw+3Cy5zt/vCIrZl5KyengoTHDBLmtpZoBhcwa7/biNjgL1DwdLMJYm1A==", "dev": true, + "license": "ISC", "dependencies": { "flatqueue": "^1.2.1" } }, "node_modules/flatqueue": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/flatqueue/-/flatqueue-1.2.1.tgz", - "integrity": "sha512-X86TpWS1rGuY7m382HuA9vngLeDuWA9lJvhEG+GfgKMV5onSvx5a71cl7GMbXzhWtlN9dGfqOBrpfqeOtUfGYQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/flatted": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "license": "MIT" }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, "node_modules/fstream": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -2981,9 +3058,7 @@ }, "node_modules/fstream/node_modules/rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -2991,11 +3066,28 @@ "rimraf": "bin.js" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generic-names": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.3.tgz", + "integrity": "sha512-b6OHfQuKasIKM9b6YPkX+KUj/TLBTx3B/1aT1T5F12FEuEqyFMdr59OMS53aoaSw8eVtapdqieX6lbg5opaOhA==", + "dev": true, + "dependencies": { + "loader-utils": "^0.2.16" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.9.0" @@ -3003,9 +3095,8 @@ }, "node_modules/geotiff": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.0.7.tgz", - "integrity": "sha512-FKvFTNowMU5K6lHYY2f83d4lS2rsCNdpUC28AX61x9ZzzqPNaWFElWv93xj0eJFaNyOYA63ic5OzJ88dHpoA5Q==", "dev": true, + "license": "MIT", "dependencies": { "@petamoriken/float16": "^3.4.7", "lerc": "^3.0.0", @@ -3019,11 +3110,29 @@ "node": ">=10.19" } }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "optional": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3041,9 +3150,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -3053,47 +3161,157 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true, + "license": "BSD-2-Clause", "peer": true }, "node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "optional": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "license": "ISC" }, "node_modules/grapheme-splitter": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "optional": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "peer": true, + "bin": { + "he": "bin/he" + } + }, "node_modules/husky": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", "dev": true, + "license": "MIT", "bin": { "husky": "lib/bin.js" }, @@ -3106,9 +3324,8 @@ }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -3116,11 +3333,14 @@ "node": ">=0.10.0" } }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", + "dev": true + }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -3134,34 +3354,44 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/immediate": { "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "dev": true + "license": "MIT" }, "node_modules/immutable": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", - "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -3175,18 +3405,15 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3194,15 +3421,12 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "license": "ISC" }, "node_modules/inquirer": { "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -3226,9 +3450,8 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -3236,29 +3459,80 @@ "node": ">=8" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "optional": true, + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-expression/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "optional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -3268,78 +3542,105 @@ }, "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "optional": true + }, "node_modules/is-reference": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.1.tgz", - "integrity": "sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-valid-var-name": { + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-valid-var-name": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-valid-var-name/-/is-valid-var-name-1.0.2.tgz", - "integrity": "sha512-GsNf3qzJ/YnVhIKPhBOOgk7rh6g6JOo7BOleyr21ZVv0yLAhPFzJU3/dNl1YpH5mlkxhPx7RPY0eF31hSWkRPg==", "dev": true, + "license": "MIT", "dependencies": { "unicode-categories": "^0.9.1" } }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "optional": true + }, "node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/jest-worker": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/node": "*", @@ -3352,9 +3653,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -3366,34 +3666,42 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, "node_modules/js-priority-queue": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/js-priority-queue/-/js-priority-queue-0.1.5.tgz", - "integrity": "sha512-2dPmJT4GbXUpob7AZDR1wFMKz3Biy6oW69mwt5PTtdeoOgDin1i0p5gUV9k0LFeUxDpwkfr+JGMZDpcprjiY5w==", - "dev": true + "dev": true, + "license": "Public Domain" }, "node_modules/js-sdsl": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/js-sdsl" } }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "dev": true, + "optional": true + }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3403,9 +3711,8 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "peer": true, "bin": { "jsesc": "bin/jsesc" @@ -3416,35 +3723,30 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-pretty-compact": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz", - "integrity": "sha512-WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -3452,11 +3754,20 @@ "node": ">=6" } }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "dev": true, + "optional": true, + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, "node_modules/jszip": { "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -3466,15 +3777,11 @@ }, "node_modules/jszip/node_modules/pako": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true + "license": "(MIT AND Zlib)" }, "node_modules/jszip/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3487,39 +3794,31 @@ }, "node_modules/jszip/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "license": "MIT" }, "node_modules/jszip/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/jwt-decode": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", - "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", + "license": "MIT", "peer": true }, "node_modules/klona": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/lazystream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.0.5" }, @@ -3529,9 +3828,7 @@ }, "node_modules/lazystream/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3544,30 +3841,57 @@ }, "node_modules/lazystream/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "license": "MIT" }, "node_modules/lazystream/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/lerc": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lerc/-/lerc-3.0.0.tgz", - "integrity": "sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==", - "dev": true + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/less": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", + "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", + "dev": true, + "optional": true, + "dependencies": { + "copy-anything": "^2.0.1", + "tslib": "^1.10.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0" + } + }, + "node_modules/less/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "optional": true }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -3578,34 +3902,67 @@ }, "node_modules/lie": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, + "license": "MIT", "dependencies": { "immediate": "~3.0.5" } }, "node_modules/listenercount": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==", - "dev": true + "license": "ISC" }, "node_modules/loader-runner": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.11.5" } }, + "node_modules/loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", + "dev": true, + "dependencies": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "node_modules/loader-utils/node_modules/big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/loader-utils/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -3618,99 +3975,70 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.defaults": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true + "license": "MIT" }, "node_modules/lodash.difference": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true + "license": "MIT" }, "node_modules/lodash.escaperegexp": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", - "dev": true + "license": "MIT" }, "node_modules/lodash.flatten": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true + "license": "MIT" }, "node_modules/lodash.groupby": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", - "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==", - "dev": true + "license": "MIT" }, "node_modules/lodash.isboolean": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "dev": true + "license": "MIT" }, "node_modules/lodash.isequal": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true + "license": "MIT" }, "node_modules/lodash.isfunction": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", - "dev": true + "license": "MIT" }, "node_modules/lodash.isnil": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", - "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==", - "dev": true + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true + "license": "MIT" }, "node_modules/lodash.isundefined": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", - "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==", - "dev": true + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.union": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true + "license": "MIT" }, "node_modules/lodash.uniq": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -3724,9 +4052,8 @@ }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "yallist": "^3.0.2" @@ -3734,8 +4061,7 @@ }, "node_modules/magic-string": { "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.13" }, @@ -3743,31 +4069,76 @@ "node": ">=12" } }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/mapbox-to-css-font": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.2.tgz", - "integrity": "sha512-f+NBjJJY4T3dHtlEz1wCG7YFlkODEjFIYlxDdLIDMNpkSksqTt+l/d4rjuwItxuzkuMFvPyrjzV2lxRM4ePcIA==", "dev": true, + "license": "BSD-2-Clause", "peer": true }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mgrs": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mgrs/-/mgrs-1.0.0.tgz", - "integrity": "sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA==", "dev": true, + "license": "MIT", "peer": true }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.6" @@ -3775,9 +4146,8 @@ }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "mime-db": "1.52.0" @@ -3788,18 +4158,15 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3809,18 +4176,14 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -3830,24 +4193,21 @@ }, "node_modules/mri": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/multimatch": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimatch": "^3.0.3", "array-differ": "^3.0.0", @@ -3861,20 +4221,18 @@ }, "node_modules/mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/nanoid": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -3882,39 +4240,41 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/native-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.1.0.tgz", + "integrity": "sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/nth-check": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -3924,9 +4284,8 @@ }, "node_modules/nunjucks": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz", - "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "a-sync-waterfall": "^1.0.0", "asap": "^2.0.3", @@ -3949,17 +4308,24 @@ }, "node_modules/nunjucks/node_modules/commander": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/oidc-client": { "version": "1.11.5", - "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.11.5.tgz", - "integrity": "sha512-LcKrKC8Av0m/KD/4EFmo9Sg8fSQ+WFJWBrmtWd+tZkNn3WT/sQG3REmPANE9tzzhbjW6VkTNy4xhAXCfPApAOg==", + "license": "Apache-2.0", "dependencies": { "acorn": "^7.4.1", "base64-js": "^1.5.1", @@ -3970,8 +4336,7 @@ }, "node_modules/oidc-client-ts": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/oidc-client-ts/-/oidc-client-ts-2.2.4.tgz", - "integrity": "sha512-nOZwIomju+AmXObl5Oq5PjrES/qTt8bLsENJCIydVgi9TEWk7SCkOU6X3RNkY7yfySRM1OJJvDKdREZdmnDT2g==", + "license": "Apache-2.0", "peer": true, "dependencies": { "crypto-js": "^4.1.1", @@ -3983,8 +4348,7 @@ }, "node_modules/oidc-client/node_modules/acorn": { "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3994,17 +4358,15 @@ }, "node_modules/oidc-client/node_modules/serialize-javascript": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/ol": { "version": "6.15.1", - "resolved": "https://registry.npmjs.org/ol/-/ol-6.15.1.tgz", - "integrity": "sha512-ZG2CKTpJ8Q+tPywYysVwPk+yevwJzlbwjRKhoCvd7kLVWMbfBl1O/+Kg/yrZZrhG9FNXbFH4GeOZ5yVRqo3P4w==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "geotiff": "2.0.4", @@ -4019,9 +4381,8 @@ }, "node_modules/ol-mapbox-style": { "version": "8.2.1", - "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-8.2.1.tgz", - "integrity": "sha512-3kBBuZC627vDL8vnUdfVbCbfkhkcZj2kXPHQcuLhC4JJEA+XkEVEtEde8x8+AZctRbHwBkSiubTPaRukgLxIRw==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "@mapbox/mapbox-gl-style-spec": "^13.23.1", @@ -4030,9 +4391,8 @@ }, "node_modules/ol/node_modules/geotiff": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.0.4.tgz", - "integrity": "sha512-aG8h9bJccGusioPsEWsEqx8qdXpZN71A20WCvRKGxcnHSOWLKmC5ZmsAmodfxb9TRQvs+89KikGuPzxchhA+Uw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@petamoriken/float16": "^3.4.7", @@ -4050,9 +4410,8 @@ }, "node_modules/ol/node_modules/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==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "yallist": "^4.0.0" @@ -4063,25 +4422,21 @@ }, "node_modules/ol/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -4094,9 +4449,8 @@ }, "node_modules/optionator": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -4111,9 +4465,8 @@ }, "node_modules/ora": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -4134,18 +4487,16 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -4158,9 +4509,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -4173,24 +4523,21 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pako": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", - "dev": true + "dev": true, + "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -4200,42 +4547,42 @@ }, "node_modules/parse-headers": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, "node_modules/pbf": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "ieee754": "^1.1.12", "resolve-protobuf-schema": "^2.1.0" @@ -4246,14 +4593,12 @@ }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -4261,10 +4606,19 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/postcss": { "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", "funding": [ { "type": "opencollective", @@ -4279,6 +4633,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -4288,99 +4643,405 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "node_modules/postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==", "dev": true, "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/postcss-modules-local-by-default/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=4" } }, - "node_modules/prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "node_modules/postcss-modules-local-by-default/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "bin": { - "prettier": "bin-prettier.js" + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "node": ">=4" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "node_modules/postcss-modules-local-by-default/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" + "color-name": "1.1.3" } }, - "node_modules/pretty-quick": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.3.tgz", - "integrity": "sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==", + "node_modules/postcss-modules-local-by-default/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/postcss-modules-local-by-default/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "dependencies": { - "chalk": "^3.0.0", - "execa": "^4.0.0", - "find-up": "^4.1.0", - "ignore": "^5.1.4", - "mri": "^1.1.5", - "multimatch": "^4.0.0" - }, - "bin": { - "pretty-quick": "bin/pretty-quick.js" - }, "engines": { - "node": ">=10.13" - }, - "peerDependencies": { - "prettier": ">=2.0.0" + "node": ">=0.8.0" } }, - "node_modules/pretty-quick/node_modules/chalk": { + "node_modules/postcss-modules-local-by-default/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/pretty-quick/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "node_modules/postcss-modules-local-by-default/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==", + "dev": true, + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-scope/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/postcss-modules-scope/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/postcss-modules-scope/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-sync": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-sync/-/postcss-modules-sync-1.0.0.tgz", + "integrity": "sha512-kIDk2NYmxHshqUbjtFf1WdBij08IsvRdgDT0nOGWhvwkr8/z1piLSzxVrPt56J4DU6ON986h2H+5xcBnFhT8UQ==", + "dev": true, + "dependencies": { + "generic-names": "^1.0.2", + "icss-replace-symbols": "^1.0.2", + "postcss": "^5.2.5", + "postcss-modules-local-by-default": "^1.1.1", + "postcss-modules-scope": "^1.0.2", + "string-hash": "^1.1.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/postcss-modules-sync/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.7", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-quick": { + "version": "3.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^3.0.0", + "execa": "^4.0.0", + "find-up": "^4.1.0", + "ignore": "^5.1.4", + "mri": "^1.1.5", + "multimatch": "^4.0.0" + }, + "bin": { + "pretty-quick": "bin/pretty-quick.js" + }, + "engines": { + "node": ">=10.13" + }, + "peerDependencies": { + "prettier": ">=2.0.0" + } + }, + "node_modules/pretty-quick/node_modules/chalk": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/execa": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", @@ -4398,9 +5059,8 @@ }, "node_modules/pretty-quick/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -4411,9 +5071,8 @@ }, "node_modules/pretty-quick/node_modules/get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -4426,18 +5085,16 @@ }, "node_modules/pretty-quick/node_modules/human-signals": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8.12.0" } }, "node_modules/pretty-quick/node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -4447,9 +5104,8 @@ }, "node_modules/pretty-quick/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -4459,9 +5115,8 @@ }, "node_modules/pretty-quick/node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -4471,9 +5126,8 @@ }, "node_modules/pretty-quick/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -4486,9 +5140,8 @@ }, "node_modules/pretty-quick/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -4498,32 +5151,187 @@ }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "license": "MIT" }, "node_modules/proj4": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.9.0.tgz", - "integrity": "sha512-BoDXEzCVnRJVZoOKA0QHTFtYoE8lUxtX1jST38DJ8U+v1ixY70Kpwi0Llu6YqSWEH2xqu4XMEBNGcgeRIEywoA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "mgrs": "1.0.0", "wkt-parser": "^1.3.1" } }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "dependencies": { + "asap": "~2.0.3" + } + }, "node_modules/protocol-buffers-schema": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "dev": true }, + "node_modules/pug": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.3.tgz", + "integrity": "sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==", + "dev": true, + "optional": true, + "dependencies": { + "pug-code-gen": "^3.0.3", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "optional": true, + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.3.tgz", + "integrity": "sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==", + "dev": true, + "optional": true, + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.1.0", + "pug-runtime": "^3.0.1", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", + "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==", + "dev": true, + "optional": true + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "optional": true, + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "optional": true, + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "optional": true, + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "optional": true, + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "optional": true, + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true, + "optional": true + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "optional": true, + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true, + "optional": true + }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -4531,17 +5339,24 @@ }, "node_modules/punycode": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -4556,13 +5371,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz", - "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -4572,24 +5387,21 @@ }, "node_modules/quickselect": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/rbush": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "quickselect": "^2.0.0" @@ -4597,9 +5409,7 @@ }, "node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -4611,27 +5421,21 @@ }, "node_modules/readdir-glob": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, + "license": "Apache-2.0", "dependencies": { "minimatch": "^5.1.0" } }, "node_modules/readdir-glob/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/readdir-glob/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4641,9 +5445,8 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -4653,33 +5456,54 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/resolve-protobuf-schema": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", "dev": true, + "license": "MIT", "dependencies": { "protocol-buffers-schema": "^3.3.1" } }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true, + "optional": true + }, "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -4690,9 +5514,8 @@ }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -4700,9 +5523,7 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -4715,9 +5536,8 @@ }, "node_modules/rollup": { "version": "3.25.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.3.tgz", - "integrity": "sha512-ZT279hx8gszBj9uy5FfhoG4bZx8c+0A1sbqtr7Q3KNWIizpTdDEPZbV2xcbvHsnFp4MavCQYZyzApJ+virB8Yw==", "dev": true, + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -4729,11 +5549,51 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-commonjs": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz", + "integrity": "sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-commonjs.", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0", + "rollup-pluginutils": "^2.8.1" + }, + "peerDependencies": { + "rollup": ">=1.12.0" + } + }, + "node_modules/rollup-plugin-commonjs/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/rollup-plugin-commonjs/node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/rollup-plugin-commonjs/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/rollup-plugin-external-globals": { "version": "0.7.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-external-globals/-/rollup-plugin-external-globals-0.7.3.tgz", - "integrity": "sha512-rOxtHUyIYR06kV2H5xhxIjbmdfQ7YGw/LUPFzxi9qwUqTqnbBUbZlVpkc5hs13b8KVO20Zkb+LzT2TGpJgRaIg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.2", "estree-walker": "^3.0.1", @@ -4746,18 +5606,16 @@ }, "node_modules/rollup-plugin-external-globals/node_modules/estree-walker": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } }, "node_modules/rollup-plugin-external-globals/node_modules/magic-string": { "version": "0.26.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", - "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", "dev": true, + "license": "MIT", "dependencies": { "sourcemap-codec": "^1.4.8" }, @@ -4765,19 +5623,78 @@ "node": ">=12" } }, + "node_modules/rollup-plugin-scss": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-scss/-/rollup-plugin-scss-3.0.0.tgz", + "integrity": "sha512-UldNaNHEon2a5IusHvj/Nnwc7q13YDvbFxz5pfNbHBNStxGoUNyM+0XwAA/UafJ1u8XRPGdBMrhWFthrrGZdWQ==", + "dev": true, + "dependencies": { + "rollup-pluginutils": "^2.3.3" + } + }, + "node_modules/rollup-plugin-vue": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/rollup-plugin-vue/-/rollup-plugin-vue-5.1.9.tgz", + "integrity": "sha512-DXzrBUD2j68Y6nls4MmuJsFL1SrQDpdgjxvhk/oy04LzJmXJoX1x31yLEBFkkmvpbon6Q885WJLvEMiMyT+3rA==", + "dev": true, + "dependencies": { + "@vue/component-compiler": "^4.2.3", + "@vue/component-compiler-utils": "^3.1.2", + "debug": "^4.1.1", + "hash-sum": "^1.0.2", + "magic-string": "^0.25.7", + "querystring": "^0.2.0", + "rollup-pluginutils": "^2.8.2", + "source-map": "0.7.3", + "vue-runtime-helpers": "^1.1.2" + }, + "peerDependencies": { + "vue-template-compiler": "*" + } + }, + "node_modules/rollup-plugin-vue/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/rollup-plugin-vue/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, "node_modules/run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -4793,30 +5710,27 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rw": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", "dev": true, + "license": "BSD-3-Clause", "peer": true }, "node_modules/rxjs": { "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -4830,19 +5744,18 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sass": { "version": "1.62.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.0.tgz", - "integrity": "sha512-Q4USplo4pLYgCi+XlipZCWUQz5pkg/ruSSgJ0WRDSb/+3z9tXUOkQ7QPYn4XrhZKYAK4HlpaQecRwKLJX6+DBg==", "dev": true, + "license": "MIT", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -4857,9 +5770,8 @@ }, "node_modules/sass-loader": { "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", "dev": true, + "license": "MIT", "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" @@ -4893,11 +5805,16 @@ } } }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, "node_modules/saxes": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, + "license": "ISC", "dependencies": { "xmlchars": "^2.2.0" }, @@ -4907,9 +5824,8 @@ }, "node_modules/schema-utils": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -4925,34 +5841,47 @@ }, "node_modules/semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/serialize-javascript": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { "randombytes": "^2.1.0" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "optional": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true + "license": "MIT" }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -4962,23 +5891,19 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/sort-asc": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz", - "integrity": "sha512-jBgdDd+rQ+HkZF2/OHCmace5dvpos/aWQpcxuyRs9QUbPRnkEJmYVo81PIGpjIdpOcsnJ4rGjStfDHsbn+UVyw==", "dev": true, "peer": true, "engines": { @@ -4987,8 +5912,6 @@ }, "node_modules/sort-desc": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz", - "integrity": "sha512-jfZacW5SKOP97BF5rX5kQfJmRVZP5/adDUTY8fCSPvNcXDVpUEe2pr/iKGlcyZzchRJZrswnp68fgk3qBXgkJw==", "dev": true, "peer": true, "engines": { @@ -4997,8 +5920,6 @@ }, "node_modules/sort-object": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz", - "integrity": "sha512-aAQiEdqFTTdsvUFxXm3umdo04J7MRljoVGbBlkH7BgNsMvVNAJyGj7C/wV1A8wHWAJj/YikeZbfuCKqhggNWGA==", "dev": true, "peer": true, "dependencies": { @@ -5011,51 +5932,72 @@ }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "optional": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "optional": true + }, "node_modules/sourcemap-codec": { "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", + "dev": true + }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5067,9 +6009,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5079,18 +6020,16 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -5098,11 +6037,73 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "optional": true, + "dependencies": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stylus/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylus/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "optional": true + }, + "node_modules/stylus/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5110,11 +6111,22 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -5122,9 +6134,7 @@ }, "node_modules/tar-stream": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -5138,9 +6148,8 @@ }, "node_modules/terser": { "version": "5.18.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.2.tgz", - "integrity": "sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -5156,9 +6165,8 @@ }, "node_modules/terser-webpack-plugin": { "version": "5.3.7", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", - "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", @@ -5191,46 +6199,38 @@ }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/text-encoding-utf-8": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", - "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==", "dev": true }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/three": { "version": "0.135.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.135.0.tgz", - "integrity": "sha512-kuEpuuxRzLv0MDsXai9huCxOSQPZ4vje6y0gn80SRmQvgz6/+rI0NAvCRAw56zYaWKMGMfqKWsxF9Qa2Z9xymQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/three.meshline": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/three.meshline/-/three.meshline-1.4.0.tgz", - "integrity": "sha512-A8IsiMrWP8zmHisGDAJ76ZD7t/dOF/oCe/FUKNE6Bu01ZYEx8N6IlU/1Plb2aOZtAuWM2A8s8qS3hvY0OFuvOw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -5240,19 +6240,16 @@ }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -5260,26 +6257,26 @@ "node": ">=8.0" } }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "dev": true, + "optional": true + }, "node_modules/traverse": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "dev": true, - "engines": { - "node": "*" - } + "license": "MIT/X11" }, "node_modules/tslib": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -5289,9 +6286,8 @@ }, "node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -5301,17 +6297,14 @@ }, "node_modules/typedarray": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.7.tgz", - "integrity": "sha512-ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/unicode-categories": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/unicode-categories/-/unicode-categories-0.9.1.tgz", - "integrity": "sha512-61OCyQc95VLUzCzFwfNs61DicwfJ/Mv8+GiYkag2khY/42ujZnsjg7qMMMwOIcmFZT/YBD1YdXrf+gQZUoAgiQ==", "dev": true, "engines": { "node": ">=0.4.0" @@ -5319,9 +6312,7 @@ }, "node_modules/unzipper": { "version": "0.10.14", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", - "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "dev": true, + "license": "MIT", "dependencies": { "big-integer": "^1.6.17", "binary": "~0.3.0", @@ -5337,15 +6328,11 @@ }, "node_modules/unzipper/node_modules/bluebird": { "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", - "dev": true + "license": "MIT" }, "node_modules/unzipper/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -5358,23 +6345,17 @@ }, "node_modules/unzipper/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "license": "MIT" }, "node_modules/unzipper/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/update-browserslist-db": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "funding": [ { @@ -5386,6 +6367,7 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], + "license": "MIT", "peer": true, "dependencies": { "escalade": "^3.1.1", @@ -5400,33 +6382,39 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "optional": true + }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "license": "MIT" }, "node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, + "node_modules/viewer-plugin-reflect": { + "resolved": "src/plugins/reflect", + "link": true + }, "node_modules/vite": { "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.17.5", "postcss": "^8.4.23", @@ -5472,17 +6460,25 @@ }, "node_modules/vite-plugin-css-injected-by-js": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-2.4.0.tgz", - "integrity": "sha512-fQkJ5baPEasjjJLxHINLjXuPREO61VIDFUeUqleEBghOLfZZe/k/zrxG5b3kFZXu6JtdI11pnwtj3dh3CN9X4Q==", "dev": true, + "license": "MIT", "peerDependencies": { "vite": ">2.0.0-0" } }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/vue": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", - "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "license": "MIT", "dependencies": { "@vue/compiler-dom": "3.3.4", "@vue/compiler-sfc": "3.3.4", @@ -5493,9 +6489,8 @@ }, "node_modules/vue-eslint-parser": { "version": "8.3.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", - "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.2", "eslint-scope": "^7.0.0", @@ -5517,9 +6512,8 @@ }, "node_modules/vue-eslint-parser/node_modules/eslint-scope": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -5530,9 +6524,8 @@ }, "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -5542,18 +6535,16 @@ }, "node_modules/vue-eslint-parser/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/vue-eslint-parser/node_modules/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==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5563,9 +6554,8 @@ }, "node_modules/vue-eslint-parser/node_modules/semver": { "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5578,14 +6568,12 @@ }, "node_modules/vue-eslint-parser/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/vue-i18n": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz", - "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", + "license": "MIT", "dependencies": { "@intlify/core-base": "9.2.2", "@intlify/shared": "9.2.2", @@ -5601,8 +6589,7 @@ }, "node_modules/vue-router": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.2.tgz", - "integrity": "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==", + "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.5.0" }, @@ -5613,10 +6600,32 @@ "vue": "^3.2.0" } }, + "node_modules/vue-runtime-helpers": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vue-runtime-helpers/-/vue-runtime-helpers-1.1.2.tgz", + "integrity": "sha512-pZfGp+PW/IXEOyETE09xQHR1CKkR9HfHZdnMD/FVLUNI+HxYTa82evx5WrF6Kz4s82qtqHvMZ8MZpbk2zT2E1Q==", + "dev": true + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "peer": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, "node_modules/vuex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz", - "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==", + "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.0.0-beta.11" }, @@ -5626,8 +6635,7 @@ }, "node_modules/vuex-oidc": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vuex-oidc/-/vuex-oidc-4.0.2.tgz", - "integrity": "sha512-GOm4UTEJnrRI1nCI7BTzQdbD3w0Jm2O3mFHQtWI98n332+C8oPpcQUbWx2EhybditleLZOXZWbA9jtMvp4XEsA==", + "license": "MIT", "peerDependencies": { "oidc-client-ts": ">= 2.0.0", "vue": ">= 2.5.0", @@ -5637,9 +6645,8 @@ }, "node_modules/watchpack": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -5651,24 +6658,21 @@ }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/web-worker": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz", - "integrity": "sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/webpack": { "version": "5.79.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.79.0.tgz", - "integrity": "sha512-3mN4rR2Xq+INd6NnYuL9RC9GAmc1ROPKJoHhrZ4pAjdMFEkJJWrsPw8o2JjCIyQyTu7rTXYn4VG6OpyB3CobZg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -5714,9 +6718,8 @@ }, "node_modules/webpack-sources": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10.13.0" @@ -5724,9 +6727,8 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -5737,27 +6739,40 @@ "node": ">= 8" } }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "optional": true, + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/wkt-parser": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.3.3.tgz", - "integrity": "sha512-ZnV3yH8/k58ZPACOXeiHaMuXIiaTk1t0hSUVisbO0t4RjA5wPpUytcxeyiN2h+LZRrmuHIh/1UlrR9e7DHDvTw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/word-wrap": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5772,44 +6787,35 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "license": "ISC" }, "node_modules/xml-utils": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.7.0.tgz", - "integrity": "sha512-bWB489+RQQclC7A9OW8e5BzbT8Tu//jtAOvkYwewFr+Q9T9KDGvfzC1lp0pYPEQPEoPQLDkmxkepSC/2gIAZGw==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/xmlchars": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "license": "MIT" }, "node_modules/xmldom": { "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", - "deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0", "dev": true, + "license": "(LGPL-2.0 or MIT)", "engines": { "node": ">=0.1" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5819,9 +6825,7 @@ }, "node_modules/zip-stream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dev": true, + "license": "MIT", "dependencies": { "archiver-utils": "^2.1.0", "compress-commons": "^4.1.0", @@ -5831,19 +6835,6 @@ "node": ">= 10" } }, - "src/plugins/annotation": { - "version": "0.0.1", - "extraneous": true, - "devDependencies": { - "@bimdata/design-system": "^2.0.0-rc.22", - "@vitejs/plugin-vue": "^4.0.0", - "rollup-plugin-external-globals": "^0.7.1", - "sass": "^1.53.0", - "terser": "^5.17.1", - "vite": "^4.3.1", - "vite-plugin-css-injected-by-js": "^2.4.0" - } - }, "src/plugins/bimobject": { "name": "@bimdata/bimobject-viewer-plugin", "version": "2.0.2", @@ -5859,8 +6850,6 @@ }, "src/plugins/bimobject/node_modules/@bimdata/design-system": { "version": "2.1.1-rc.2", - "resolved": "https://registry.npmjs.org/@bimdata/design-system/-/design-system-2.1.1-rc.2.tgz", - "integrity": "sha512-6bwMWT4Q/jR3OL17sPkHMOp+NHzzuoV9qmc5uegu4erfBbfo1bc7GPri2QjDKf8WA7xU0uaJJdlVSCnlFm9FLQ==", "dev": true }, "src/plugins/bimworld": { @@ -5891,8 +6880,6 @@ }, "src/plugins/bsdd/node_modules/@bimdata/design-system": { "version": "2.1.1-rc.2", - "resolved": "https://registry.npmjs.org/@bimdata/design-system/-/design-system-2.1.1-rc.2.tgz", - "integrity": "sha512-6bwMWT4Q/jR3OL17sPkHMOp+NHzzuoV9qmc5uegu4erfBbfo1bc7GPri2QjDKf8WA7xU0uaJJdlVSCnlFm9FLQ==", "dev": true }, "src/plugins/christmasSleigh": { @@ -5940,8 +6927,6 @@ }, "src/plugins/giro3d/node_modules/@bimdata/design-system": { "version": "2.1.1-rc.2", - "resolved": "https://registry.npmjs.org/@bimdata/design-system/-/design-system-2.1.1-rc.2.tgz", - "integrity": "sha512-6bwMWT4Q/jR3OL17sPkHMOp+NHzzuoV9qmc5uegu4erfBbfo1bc7GPri2QjDKf8WA7xU0uaJJdlVSCnlFm9FLQ==", "dev": true }, "src/plugins/gltfExtractor": { @@ -6028,19 +7013,176 @@ } }, "src/plugins/reflect": { + "name": "viewer-plugin-reflect", "version": "0.0.1", - "extraneous": true, - "devDependencies": { - "@bimdata/design-system": "^1.4.0-rc.89", - "@vitejs/plugin-vue": "^4.0.0", + "dependencies": { + "@bimdata/design-system": "1.4.0-rc.51", "async": "^3.2.4", "exceljs": "^4.3.0", - "file-saver": "^2.0.5", - "rollup-plugin-external-globals": "^0.7.1", - "sass": "^1.53.0", - "terser": "^5.17.1", - "vite": "^4.3.1", - "vite-plugin-css-injected-by-js": "^2.4.0" + "file-saver": "^2.0.5" + }, + "devDependencies": { + "@rollup/plugin-node-resolve": "^13.0.5", + "@rollup/plugin-replace": "^5.0.1", + "@rollup/plugin-url": "^6.0.0", + "rollup": "^2.35.1", + "rollup-plugin-commonjs": "^10.1.0", + "rollup-plugin-scss": "^3.0.0", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-vue": "^5.1.9", + "sass": "^1.42.1" + } + }, + "src/plugins/reflect/node_modules/@bimdata/design-system": { + "version": "1.4.0-rc.51", + "resolved": "https://registry.npmjs.org/@bimdata/design-system/-/design-system-1.4.0-rc.51.tgz", + "integrity": "sha512-ZSOx5UfzzTdCthUDKianEqDvUh9j1v7+I+jNyVeHhWHopaKdjZP1TYLrMeA24Zj4/hQLa6Bs9N83lMLDi4RN7w==" + }, + "src/plugins/reflect/node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "src/plugins/reflect/node_modules/@rollup/plugin-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-url/-/plugin-url-6.1.0.tgz", + "integrity": "sha512-FJNWBnBB7nLzbcaGmu1no+U/LlRR67TtgfRFP+VEKSrWlDTE6n9jMns/N4Q/VL6l4x6kTHQX4HQfwTcldaAfHQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "make-dir": "^3.1.0", + "mime": "^2.4.6" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "src/plugins/reflect/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "src/plugins/reflect/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "src/plugins/reflect/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "src/plugins/reflect/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "src/plugins/reflect/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "src/plugins/reflect/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "src/plugins/reflect/node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "src/plugins/reflect/node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "src/plugins/reflect/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" } }, "src/plugins/snowflakes": { @@ -6068,19 +7210,6 @@ "vite": "^4.3.1", "vite-plugin-css-injected-by-js": "^2.4.0" } - }, - "src/plugins/toto": { - "version": "0.0.1", - "extraneous": true, - "devDependencies": { - "@bimdata/design-system": "^1.4.0-rc.89", - "@vitejs/plugin-vue": "^4.0.0", - "rollup-plugin-external-globals": "^0.7.1", - "sass": "^1.53.0", - "terser": "^5.17.1", - "vite": "^4.3.1", - "vite-plugin-css-injected-by-js": "^2.4.0" - } } } } diff --git a/src/plugins/reflect/assets/favicon-32x32.png b/src/plugins/reflect/assets/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..8e950083d8f6c2074c7d44261c7d1dafc9d144f3 GIT binary patch literal 1874 zcmZ{ic~H~W7RN6jp)ATgsRp6gSb^%$Ko+*7mI4C`6)=U63R;>yL~YXmQ7F;0R@r}AP|v&vWjd%5FWc>NkV^gI#XX~-XG_lIrn_d_nbTTq!I#- z?KHA50s!pv_3;XXJYw5E(1T7d;iVSH?O=KMdjN3n-^OZ+J{0Tl0*`rua`{KfZIb2_ z=nud-TL2Q00oZ`95~cx&K>;vB1^|B@05~`A@z+NH(ESg=kLbO%wWSzO6^adnVpzUN z?{T;HhI)B*ZK9?NS0LI^Akvc!NB4}U7Krrw-dtN!y{eXDgd$jxWY@%8P1k5*h3wO1 z)vJZom-jmCp7s*d8kKw`zH2mLZuwb-%w}l%mR752ALf=wKU6M=v|9DdqO`0XabJ#A zZ75ai%CXrht#(s7$ddF^=9cC6eYIMPk|VAM{4$@H=theRc*KD>iWd6QdlI}+3||sJ(|3=rCr~g zuTvbWkl8M&hR0^_6-#!Nw(VCgiUy``6iSSr^qzRPKKmQ|q;e`^T zfvMb=lfMj3->m9H&aWt@7n&>Z=y&T=qQ29kZ_AfeBlqPPasPK3 z?Pl*p#-rzMD{G_AM+F69{n9oop+vt>0-ImyuIjWOc$2@hyf8U6)Y~r=wU(9FT>15G z!nNCx=QFMUnQfYJ*W^a6VSckgq1d3b&2oC7Q98i7^~5;ks%K2nQC2J_jAL_>Wksa# z3!=e^bclFkIFV)^Oy3vG zuplulNes&%s(B#QoW`?B&hn^{@aC5X`zEu38T*KIbL#hY7gA5$F8Q&psi3E?Wq#qU zMy=UYuP7JAJ>zM0ilcGqyMyVLB&J0O`{VFfY|7sMTuMHs{)h zqRQJpiAvsc`s~3UE)j%f$qnM-k+B}t+RC@@<_>IcIQ953FYuGTl@Amca(zO00PGTP zo6c3cU6#-)AMo|^AiBzEWOto3zmCsJBTQU%J~#N(4DJ#c58H2RYa8Y^w4~O}^Got< zezfPO1q_yV>C$KxJo`1BO1+%bT;gtV=$ZJiASjHK0l$;ryFa@==@U31H^eu`L%&Wp z*eO#dZ^j}w)TnRbLCi__y_M6LX{9AOh#bBnR;L&(NG-|171gKM7@J|SX4O}n1Urk7 zdoK?3f1Y6SI)+c>GDrE}duPY-3~Cc{QWc_Knq)Up6;fUQ#EM%8v%d5p6Rpl?eu*BT zca|cWPLtya#EpxfKkrw{A*1G$>rG1?|A;j)x$Hi8-6}u-@&t_;Sgc9-pfu2=w~= z^V0nhVLW5Mo2d#|ZcXUmK$E-`R+N?z@JPpx^zHB$4L@kiYy)zSFlO#6=Qvm<2GtRr zAj5Xv#Kyf+>l?$7q4jiS)ubJ%JhXv{6yd|{Gk23i$!ETMN*OQeJk>~kJH{DwneVGT z>mr!h?|VKVpz_OsZ#=CZ&JI6}l4b7G>o?%`f&gKYTTC;4;=pMj@E zGav^rC=3dTLL)JbM3gfggT^~y?NBH@3iSYW5dA*|oG3b*8UOza#GD)HP{Gmd4!kHP zKaLX30KOawi{VdUv1w-!&h{?$u1FjLgF-tZQBFuS2Jto884=FsbMX!iadC0>>}?t{ zh_;W4W)1yo4iW_B+ls{S7!DPW_lly$a2Sz%Je~ldJb*6Vs&n`o^G8oSKAgd3h4TR# zhcN}wDG&pHPv=kO8#bLEzKtkK4}1V2``$zR*&GHxp34A#Oy$6hWPMph3iz9jKM|q; z+Q|jy>gbF^W8p#vHiVeIrxV0J#{ei#&#Zj6Stvz%FBKf<3z+N(2K0OfP9#4fisith z#Ik8okvxaLKE}b3iJ~znSRB<6!^APsSR4+8p;KLHjxK0tN2&|j9;&d1=CduF=RzHT MuXlh~xhFa4cSH+h$p8QV literal 0 HcmV?d00001 diff --git a/src/plugins/reflect/assets/reflect.png b/src/plugins/reflect/assets/reflect.png new file mode 100644 index 0000000000000000000000000000000000000000..37023052a5330f9434002f62cfe6b1814898f3c9 GIT binary patch literal 65548 zcmeFZc|6qn+dr;C6j>u%wj^a6LI@!wNh!-%qQS_XeJ6^hY#|zZB`Ir+y^um-&}KB& zWGhRy?Az~pch32o&wV=Q+@Jg0-`{_CkH>_W*SwbNx?b1vysqng7*C@3iC zwND(^r=Xz1Qc!GpPD2gv@K+Vt!XN5(>gs2-)z$gVxVd2M9Bn8l4#ZknS~8yyJ@ESC zMN7-qt%pQ*xOwa2aFP0!!7rW@`JO*-vTVB>k2f>>w1@H2w(~D2GSAkPJJ3b)trUyD z77gQZnrJDI(Q|RAed$+w@#(gQeyqU| zt69`3y12JIS|SIu^ABu!+qO)Vppo>ILug0zbHcH`g3i&S}%4D-+YvsI>^%4N%8zGsfNwXO>?@#o3h(phMc5mj*i{yOF~{6zlU zf*10gUw&?j3#Zr)e=)<$=kC_uMpI$$Zu{-`EzjXI3e|J!+S>5*oRyo6jkEhD7mpLs zn|kmD?d20_cM1wNA>_41TYuj)%-?Bu-q^!f_mqN_i<9_8YZr`-xR29iWFCs6J__)w zla0qkJ|8DXXLki3C4nC!6ySH{Z3zLsA45DGlmv`*&+w_cxY_W@h#wZ06j0v5$H#Zn z%^Itqe_Zp|uftzT0+&2IE-Oe#czb(`drOPExY|C7rka;g+Ts%FL1O$+U{`K#decJfg{l1d3`>)4>14x+s#tDnI!md(<<&F4)QjI)uY_*W__qpTV)0Y_X3$l#lD&40&Gf* zLt#hp*ygT*D-@J`6kBMHQEX-W=~ov@6GlRxF@fFd?FoC|YEJzxfkELUu47BO3Bq zm(joy&#AW5=k3h-aP1G=4aq?U3E3^sB7>x0kj>rOSN}NZBohoe=q$Sv8MGG$DJ7l{ z{o|l9WRQfr7acNa2MpRB$r|#!>{lF%N4mFZ~b>R{&qvpGaDCS!bFXq92;rRkdUZZ!mLkq zjJ70-we)%mV6W40=x<8U~on5@Edi6nRsf@So{$qFTK@Aw_q^_&|ENN%#x4P7> zmz_$H)!iHT{cTr9lC&+UZ}+&v`zA$u?;ckzvQv4leXv)buPxetvNTYvU4ao7PJxk4 zesqcT&!jR>+j6)$VRk59uX%m3-(podaK%HrPbhcz3n@QkqPRu8xLtYm!v-C%a%zm~ z8|GbsltNeV^fxma`2XY@9ShppWczae)V1olHbt9v542~S4;2ncFkjM~J-hw-UcX0? z9MYO)yTErW-bZmAr5H-* zr<1Z|M?&k4!adzeR-fx{6wfqrvG>VQk@ii`7Y3X61upi=WPFM}K%43}_So%>>UIsX zzpbvY#fSL_i#4@^niYHB1+uLoSHZ@zQyE#aX0dvz!jOWmy*%S79u{PI4NIoiE9;-2dT&9caUeGq?tq8j~vs(LZK z$7e9gt;4{mNo8Xu2K(}UU_fS+Y@Bra(R0y?-;QW2XUdihx@WAWu1&fGN8~%Lcpm#? zu`z66Jv-EtbWjj0eG&7EC-#x=3cghJto_toT}r1}dGp*&x;>K5PtP!)zoA=vo1*f) z7#}w6b5zw4jO^IbdD$4e0Y`-EIU8m|lcKdt#Q=5X_jfvnW}=Bhqh0Q8@>N5ARsZP_cGW$$sL!T{wbN}U&vh#P2U<-ijl;Rqtx% z!^XGYsveA1v|d}9nY~lHmSwiZ=40!px~oFVCo2zAQ z&1__V+wq;;lY!sS4ptmZLaD;DxK$oTDmhC4x3(QmK4|NRU$odT;K&fFncR3t7z}SN48`e)$3{rh7{|Fs$IyKL@>V@)`YP{<+2OSO{QQGOd{~1<<_9A6j*JstY#PL_ zflIkNFeEl@MNdY8*O9KAP<*MzJH0erx!&`qRn|S^SH5Is85Ld#VxuqFfstkO(P|OE z@`Q+~qU#-L)y|hu)#nu-+fl}ni4Xjmb!X_w%U$tb-)FP;1o~zR_j_$3w>eH?$9pe6 zY^e})0dKwIk%cfLO(L7-rBW~z2ismWFcQL;OvFIOZ@xDzqL=-6cR}7pINj&|zNw=J z21D>-Mmc|W))ai2f~UQ1bItNd%J7aCb+|HF7PlTJ zYNj5*7#jKD(B{5;SkK`Qd`E&-pR+94nq_%_A$U*g9g!h2FGiL@Y~6~9up+&qgC8Ty zx;$GD0c)3`Zjc=cs|`;pP99#Ke#y|XJM?AmJ`0Z&>wq5DSMp{;7IyWH$`@?*M&YB5 zm;>Xc5yl-Ojx}#XIQiarq1W4@^6SHteaouFqT4ZLqS`?v4E2tcvn7>W^?ACPr`S>5sZlGoa1sHv-%f(aq@zcC zz_*E*;592Wm|(}-I}Nv?xag|m!yyrYi{H#wwO%T(PFOuHnS-s2;;O|V zTD_^512^Do!)^@%j(h;q-19&awc0xsWK{6HQHJY;N&ll8{hvcvb++nj0XxMWXZ+fqfE+KZKU)#ouZ zyXJ-9qXe_Po*pNbMF@SoiX&To={Dbk>K0G5WDvk!y~j{|d2?gkhLnenTYLU^{TR_+ z?|?-xjvVkT=P)PAG^=ENVmE61I-$^@1V^@tme+KyUH7u+#-`~polx#vOm-+({*dV` z&O~soXf)o9;mU5vzc?B4tDQZbO30`iFt+Fb3|nVq3d2Ax0RF}oO!Z*9*zC=KqX zc2~bL6Jf)6)mZx~etl|l!$p4j`L;mEJ2J_Pm+b5wua9)5`+p-_U#q^(L|8Cxyg&=w z3jK*&HC6KCd4wVGBj-v}-zwnHf{ymW{MZgnmS?DX$7!0AofMcdv)FJpLIj&w+>p`N z&6$|s+dCbvJtcd**Bwr>O^@xX_E((TiyCKjIp4qplA7SmhDsS>S^<@!5b}KmM?M_$ z#t27#LwgNft8+)Z)SG9b=+)kfoUfl8#K>-YfD7lt3hroe&qX4$Lr=J2IsWTxgjYP? zsXcz<`NN@{GtQ@#=FeBIjOC_%gYe_OU&l1~&0W$1+*H`+{zc%)`_qa|C3f%kE%%_=w_`|D9Y-7lu!F>W zlFUysJ_RyXEb2M`uq6E2NsuA);r!V3jA>Rk4tFboXdLLbbMF7W@q^?e&bJc zsoIYz6G=Xhag3Q7>ATKPSmX8iJ7EMNlM7J?adjR zYqnoIa_`KW^JDV`qssU&vRz+}gN=Bh{_i$I&C`8(_)ZH54u}1+SEmMY$-1^P5#DN! zK69@Ve#(d44*AmwU5F_G`~hbN1q} z4_!DiYxEZhM#5XIFOJ)AXxmGNO!vSEz63^)fyufMtBkp+iq1H%M7_`Z45DnFVk z$Zqa&cG{4UP$&4L>xZ+bzgwM{c<}V@6jfpluFiy|rhcOS2FviH%;;j0T-X|O1>E%E zyH|G=7azcob~Ng$T`E0-Ta=d()8w@dj5BvSV_vb7?clO9vg@g z5B7jwmVEJ!6)q^Z&`&2wbk>aG6k6;L4u0dsNKl`Ru_T5>OVVf6ASMcE8l)T}=G@G@EUjEWaf@Hw-eRvo1$qai(38os?&dr+ zVaMVXyjbLu!&Hm}CaoKPw0-v;r=&PnX`enaaP4m=FKC!}ucsm=s2O>nN0`ck(FZQC zHCzXg4|JF^#u|NH(A(U?Khfr)^8(PNa4V`@t$WjKI1sXq}Xxe8H&&mih} zm#G!Q=LE#D^ezK&P>gjmF(`Ks}CBsKr`^Wh$2cxKP zXeHn9Z*XZ8Lbi?zVs}1wmjq{m!agJpN8UQkeM*C7WAhj%wN{AK z=b@_J>4L|{E%FnU%ADgYrgUl^AE^())2sIOCgafFj#h=Rf|6?Bx*&GmM*o4}9n3<_ z>bLkIo<#0p0ZFH>!(`vlv?%bmWHgPcZot(Q)cEP@l3F`!7G#p7Y);-P1JQhS@T9SLw%s5d{#zE|F+t5m>rm+xN^jF2KWJwtB0L{I3_Qb_On1 zXk}fh^un_hLw5{rFr#tkr2f+bJA6trG7we3DoL zVi@<#P?Det zCwt~JyK3|sUjaDB;nqWhlHF)ll*9GR{DU~O>AuMis{e}Jn`TLs1L0gl-TfP7i}V86 zYC-QRJ`72u?@nBvV^XvmJ`gDBn^fVGW!x^$Y8Ikl<58#-j@s)!WeSYIjg+cR& z$nZv**fNOq>yYhx4-l}eZe`)QFSK|AOM1MzoivBzz3E=fCOrkTwBKgz!(+`=I+-R? zZA-xS%`AyP?bGtZw@>Mm=B?BUzJIMpXR_4xUdp$zEyL&9Ia2_o%T9DXzKSn>`POiE zeV$mH*VuVg;=*Ki`GUrFFI-mczKo`M0H!)>Ecuq>LbB8SPSR~i$eW)h8_e#C1U;t} zClNR8%ZCnl7ww&oP$wq4da+OO!l#>xqv`jKaJT0-?1wOye4OYP6uZ{%c9ohwu6AR- zaD%<<2}ZysJ_fT#))60O&vVCTvDe#Svv&TK%0|&(NOQXGhSlX+E)E+NW|ZRPPtPxv zA@X=qV6DZ651WvMT;qRvaeUaxk(q3jb?yD9@O%J5989ml2Mb9~Zu;!CzY3INPqg#BKD}YV8PdiJAk)>I981dU5B>IIRbJwO(HzA9= zXTk>;x?R}&YrU>ni@ZGaYJD#w;Ty-R;;oC3#&K@_!Wfd$;76kq%3Fn(H)Hn1#Gh8s zj%)9o4@55OF8LwG{uVY9ml0x8F<|SvbM6I7f%~8ax*q*OK@~J4=bN}YXBBBPrmvm{h@S&f5j`jjKs^l%&CDlLN^TAs-(BE8X<&DALGkLXV zlscN~`UHc>UXP{C7NRCMmPNsV>5&ViDd4~R1 z;`ffk2J|`3W@#a)bg%eO#R_Cxrq;K+?u!^aqoWUaY#g7M<5mA~Dx8oApl{l@c9pvl zQLj$Sb{{L^k?Zw1Hz`-FHlKE4Kq6=+q8QU~^NiS#iQF>BT25|3vy5^O34#^1n9xY$jCq+p7?htk%s8I$B(`o?r5f(6mfETe-U@c7PT(oL~Q=WrlX;u>P* zM!7zMtr04dAap?Z z0ldh2uokIKTp399++FWzsNc{iW?prk*=~BaMS}eh>m{$*m@7g$i6_dPd!Kn;v7QN6 z7y~@v>?_++-)|g-uA1fme0T<2NS^8}%n&sxdEH`C##RYo*Dxe$$_&~n+UD9-BwmKo zM|{?CW=T>C-Ut}1Zj@v~bR1Zk7LV$ZysX-|d6XN~E zyxwv9WuKD|^)kd2Cri$q-`5z)A&5Xs$>}bY!))>!OM@NX-=7t18vX1HNGuQijTL#I z0faq&B6{m1D4S+hvTa7-nz+4P>Cp9QaE(a%rEMVg3byq$Opsg;?Vzl%&D&qsj}(gV zFjYVvYZx%)@k_X>(TzEk&2u&L`7V#Yj&~SYB+$$CNZyQ*u7DWB=EI}2_8-a4lz_WG z@>K$uOi@@GK_xlaHHe&K_Fnr9Yci4RY)!*KAoyj z?6#!Jj0=jFxYgmcHYBVP8?UE~HZ^tl9v?twH0x?+1DPGaIPeUc?vrT2@#F*V=~v{P zKK@nE>ZEY(`lQQCQRj-WU5XQDR$tJ){92jKk9HHx9ipsv6tZ&he%~YA)u7)5xIsds z(%eI2;g?AdR@uA{ZfX`Ze9(dA!>fY ze=k5Fof)>p-lUD!+VT6F; z?V=Z+eVmsfjkTvMnQBJvxtO2csy3cqo({Oo8?5$tDU!lK5RJUf4t+*ct`IHLpK+Wl z>ANpOqB~oUcNrM?;;`it`#a+1_UrqDSC8BhRX*^lmKr0wLFY7i#XnpuZU)gv8TWE| z@{Ehr5I{NCFyF28+I&@$;<@}UJ(i?BO0N#}rZqi1Y9;SCKPH4^RJ*(wj(nmhw4ig?dOs^G zYoRfeL^6#3IyMTNKYr~`IWHdbHd8BiEwMKmw@+n_evjncOny?jdalFB6SR32S9LPf=g5wSs%*B5dVsBUy#`A^J$Cr1N~Fi+g+$N zi|fBP({vuf$a4ET9dd7flX#*c2oks-9W3NyQ!OB6S5l6in##3U&pEpE>FT_LlW>zu zkWlTGhwDB7xd<&gUzdVhm(pW_KXWX?TLhOs7k&&n5dfELNXKF&j{VXJHVJ&D1q9lG z*GRI@m0of-e?fG6%o{TGUcWE=NK!AgquksFrQo?% zIUAtg{L@Qy9Z1drFlO_*gXD*T=wjEL707~jSZs+}2PO05(FzBqY^?Cg$g1AH(MM-9 zlNrt|oDztQ?|<^n&+ONbDSxtKb#{5qA@HmouvqV|wCGiQD@D^NcvN~_X@z0<$<)|( zCLB7WMA2d=s#{*rNYJprOr-az_Z8@&ES128B zgGoBuIP$;_u}@hC6n-_z_sKgkq|@h{YE&F@6N$zbc3)gQP7EI|wDbJNk^GLPdnZO#G`KZ)E*kyx>ooj# zR5ynotNW-j=_=myWkaBbdMDd|A?r(Kv$;a75jc@q|dmM;y(RVN=?21zknGdX=^n{(=11-lC{#DGbRuwCI@?8_Gd$QJ_P%=d!x*aDvgz z+h-IZZ7It62O}dJ!z8Hr8bVK=vK!n01f;xFD?V&HI16Z~PL*qiCb2Q$PKz@WLHui@ zITuW+QlDp@zQ4ogRUWO3oI4|=i#Uyba#n-^2RZ!&E1tY&(lJ3MNXIZJK~Q{jOTDAJ ztT^N-s~&I}In_Iw`BqM_p~mB!dm!-fno}os4cqC{qa4&)Te<7=xC$B#e)mG`%>YLD z%{@tqa3-|M#=UMc-c|27_WfO5E#tu0gkpKQ2U zi{r3Xn6+J7xGg6{uJmjMDud}~=Z%h8ZQ{t(JKNsDn|6CO3K@73$yPgKYE(BjcU+b{SGpZkJjfcKUythMAg-s#CFQK;ld89DoX2g>xe<;*gU{F%DL`NQF@);fN4GGQQz8u)ZoqocjT_Wb(pHy>3nWp$y1!|-OZ*4sl! zd2GX|AT~m}#9#}`A>u(6pdSA^>|?s$=jTjRCCYBU{(r>$KVtr$Wd5UTo&+c!s86A< z7+e;4Hd!!v>BWrgd4zT$oRBhc6#gN4H;_Y#07JKIrK5Xx0nSz@D zcaK^NK>ovU5P*0qkJI}FuxXa9phvs8cmKcDN61Fc=_v^TI4jrVRAYA{5y}n}pzNSy zsIy0IF;XV!{5+r~2Juq?{Wx+P$1n%f#HhEl8Y5bMKWO>=AGq68i3-;o&Tyg}C|U+{qrsI!;|)Ne#j-_RvO0SZCN@uOq}W%3=wKE0Ht-wFyjA}7PO{n5&yyG6mEvZ!qB z;LXD^_aU!;pE9Cdi^yhsDR(PUCZ+>rVt>$hzi8CMqAV%+z=1G!YjA`9|JgeNQ&ZD( zTE`xn)Bk_0voS1$!s>gzpgtl<+?~x{1>vw2Dkf>WT7bu8T zw7qQ$U?PK<92AT>S0ta;ASR!2Ke8P)&RC#o$AVg2>6RW&7p}2?!g)?Xa5||^efSnn zwzsV4{F;04`VC^x^34xcW*_;VG=yt4FI<&)Z7?xe-k%6?o|(Jau5aDtg%J52vEHfM z8Lj&xgYYibsPN%x(K2OR!~WJ;k{U5luKStdV0!EwW8YVT*p?Khw`u&?2w}9AQORSZe|AV(Dq?RhdnpQj#(U3zZ7Pl_{BI^-qa>8jCblGn7#GW z$`Jvy+d$3)#9lU;7FL5m=wtfi?TmzksG9dtKxmEI4iH(eiwj@<0p{!m|LCF>^N;on zJh%YKXB>jtAWe3NVB7AzscjRpYwuCx3js44F6R8`XZNE0`0E`%%%Gjp{lg7X&$6o% zHF+}LkAR0XBY>TpJ^VNvFLQ4M3znSTDCbA9_c29qOD2z@0uJm)J$<=L@%8tw%gVf6 zj5+Z8^N1P0IcHPc zNS(ndvbOu<&zU{aIe5QSe@$Xpdzh96lx12#-tfPA&oZH*f^JONz(FeC4@7v;b%@kd>kb@0cA zOVq&?+Qs_vI`uB@15FI)QQU*CV(uVmWYgReY%Y&70c-?>)G%c<{o-!h4-E)-I$Gij z{_L~=Zl7blPs>Ho#r2oV`t6{KyE-*swyBRzqu58CXCC75M}vf}ql563p{Pqa zyHyZ7`MDavmLXe})ui70yK>gQXsN`t%61b~ho^;@pa$5ucMHZ#hIS+TM_6QRTLH9fn&;8H?{As^meS{*u`&Qw%SGWAFBH`< z(aIoHt5%t#jovG+_UTb<;mLARO_I*Dxs9#9o^N@jVr(tFwpMp?9^eYXS})M@#tf;L z4QVF&s-iSOPtq1m$^(P3IC9VHt~5#4&&TDVNVF^P zboW&x*&Mc$-Op)f)92mZB@qx(N45FE#m)PzBq&ub8t)m6r~0LrudmJxN8a`6n%}`f zeA;Ha_Uu#Jm>nI?k2`rv`f8-?m&_{{Dm<1QX6Llznq;omk!ec2zKXn>h&7)k`p@t3 zU8=Mq?6y5GzLl$R(Q~RPQ{Iy4M%2FPIw$+rv@bnr%t)5H-2PxWR8jS3| z_3vF^`WX6+AibYB)a__>WS7d?<*ELv2hV-DMK z==`QPcR+RKiO8?cF+wE?TLBJAAl{h3TQau|cRWO+sGK*|KFNT!LBklQPa;m?Xysj3mFj8V*4f$xOfvg;Z zyur{r9f?-?+@;I=bX>y?9$mrbt2L7sUMmT5Wgm=GBO3DC5R?S4traL83558Le?$B| zYrmE4USyLqp6~OYN`SVZeoJhT$p4=9^D)8Df+Yn-642EYz1cu-I01S3XHZB6&?i>% z=||RmI;bFnq$qs;$#-c}@&1~lkvURZ5pK^-v7k~iIHWzm%#Sr~|7!}ZybA6QT%__{ zeEjvacbA>8@7l~O-E8*c>((OI3Z>!!@V`;@KFY2A3+q`MYCh~C7SC@{0$6uJt5CPC zfaPrYky)IAjD!}`8d7@}dLC+-SflT<PQD882KlE%|g3 zsZ4;d566wj4Kzq9K_B`9SX5V z4H}lBq5fZ}FQ69G!Y@53IYQ}ywK(!b-X4zah-9YzwPfb;u0f3~A@%YL+8{PUMKiR! zY+r`n9mgU}jee0fIJdG$>r{=drtHeo{`CTGua6gVsx+aDOz@I)QLpq!Tbk*Lzvd(M z-S1>gz+P;Egp)UaMPwn2|vBsWSN{-cv(17*eD`SaDlEtogfEBhbGw zM(J-`?nvAL4W?62Il_r9wKqtAe6TSc3NYO2sMskdg=F6^oh4IH?7EIT3!sUaH8Hz^ ziO`^`m!@E_05|$`*rO-ZAs@eSKy|A?$pWm&dD0<_k$^q0*ySMM`zd5QaldpfGa{}S z&A%2`=V_JM*MhTYQvq5~DK0O!^GHD#)J^!#G_VW#b~?Tmlx<>;ODF`GuR$9@p&SkQ z%lxS^W$3sD-X8(qQwaDXp|UN~Gyx0O?m-liVX0=RcjVEShX1E&^r7tY+>y`=;3a(y zhI=*)ofHX3g0R`Uso-Jkn*Gvkk#mL?)T@fH6y5DtVX)LiVP2}Ujo!rQJt#HVkCs?9=a>j-6g#F5V@Pxg|IxY;gBH(xiq=NtYGaWM9TeXP^Fnrf=6=Yb zeVApa1l`d?l>u7fiWlhrvTb44?J0wnTP&JuH^ytJv%uQiwCMPZLmRk$NLD2#+l1m} z1`V^&a7*o=0?zvEpXnKhu>)7W#~#0%%ngmC@t}^?A(+9hDEel<=iOY=LR2U8Uu@r> zWzeRrTw@7N`Ma(z&S$kB_vu`=+zb2gyTbhyl4NUjGtuNVVsYCsB35YFg&Phm^B)`< zf=%i$Zt~|}%M}eZI&tXTs0Yc2eY-qE3vs*N^VdE%@vSt?mU}QHisV5N99sH0yqpb^ z!+?dde`9=aTJ(P2Moo8Xd2Un(vW^Dd!|?`8>N&Jv`?s@aKpeA985x<4w1?1z^JD4n z%BKU#wnhF2WJ9_`I>drr(#yRruU&VN0gS!l_*oZ3k=He4Ll2Y+)xMX|(z9*fOMV<$ z{qnACer)R}#3~xtvB8eJ{#td)9tbjsV1Pc4biXl?uVAr~YZwXk_aDh2?#rj4b8t~I zw#E%Gqf)lS4M6sU|H$?CaGNeO5wJZuhj)U~boy(h32jr!4W=e0L*BKkX_4IW`nr1B zg1<@3Sj%x8E#Ra!A9hZpOU-v^Q*o7c|C3|V)iTOUK%8jQ3^(6 z?;a$v9XF0M5|)!}(vZHV=Kdq~c^pvq%~5`^6|9st*Iyf1>V`thjOtbDrc`M@A0bf}41Ui4T>8MGd}gTead5~*@^oX$FDzyD)KAzm`)wea zNX-wx&`GmDn7iea8qOjS-!a48Z}= zqy49o*Rl0uBE*JfUh&=;;w?Zrd1^cu2`f@>-!TD|k&FI6zT-crT)YJBF~aX3>c+Q2 zb(<=wop1oboKygF3Oe$t0-7;{?f>cIi#0xQy&WtTN?XLA`dD;Zt0GCAawH42+-Syw zN>Ncl%o-ZZ8X<00ZWqd-5#Yqe{F4MQI`96*=%~*4n?Hm805>QQ)R`q07jfgzf!bg_ zZ0=_XfpEV> zD(XK}N!6k?(45(QtI=XWmg98ep~GpN7eKqHXd*VRC3=`e&1;Nd!UP?rXsI z#362WuStxcVkC$^VuQv!vBp9ofr+sE9z@SJ(Gw~#4v7R0f>z4=Pqh-E0W5%1C3N@? zL)-oB#6&jR@e1)syr=Gw;6Q|V21%ecG7kUa&5J5SoP^YI?pvn0`VkRpN@$P$-->m4 z)e<~vVP7m3!s{{*n~ZffAU4Qj|d=*=#wARpeFrC|L7W2 zYWy>k*x&uRx5_jA_@gKuMN)UNEE~*u_fk1EV3qAs2GC%uheVqH$PDzct1J)24|h2f zCJeb>viiYCu%!Q6KB~O_Y_f6jHdNV@MQ^V~s}fg+dEO(c*^d9;XYgXn)loTjMuHdHC}aWweSQ7o1O~SI#PR;fCa+Q%Ou#!)0H#t-Us{sYlo z*kquf*xV$cn~whWc)E!++BM#n>zl&-ZQN}~#`2zeHu4Cg zyll1_c;LoOa4*ZV_g)Z+8HZ|R7Nl|UYfV2qR{-4uNp_2Ae3hmoWL@VQp{R2_6|K)sgVjmsfBIskWF5K+ z7$d~W@a#2AL_el*JPRcOC11gK_KKyfK=^=YUEaMj9A1L>R=(sxQAz@tazDQHp=p{M z6LE#bDHI)yc{@p4=UC2~)y_yv+#8DDhJ5{`IUiokAV^{-ubgx05y(wdPe)mjA|&fm z`S4Lqbz!)zlmsReoh>bvKCJl(SDhpETW(u^eCvKmI6?2&?FiWTB^FpA!dZ_7`!wr7 zV7O)3cgA{d(_k)GGTRbL z{+z8uSFg_DlW;+jrSnJCf{B56u!5Rlx?^20ZyQBYM%#C!xpX%bR-`Nb_W^w#5V|?A@whiQW>5 zZV4Tc)RIh5KWc=g#hQzx^ob*TG#lZ=dp>qn=mw^K&uQuVA+TUNbX0nBLeOf7Zl^gy z$!;Eci6o>O7<*5`+H^sxFwQj&}4f6oC%Bs?kG|gE{5J|Np#hd||jM?^Y zgsWYr!H%=fr3cj`LWTctglhbS9<(B(ye2;C2krwY*l1=wEjh0Bhz9%qRfwf*HTI!A z4OTZHrytlcAK|N~f`PpWoRS>Z6RlF>$4@5S{|-ler_SgO61ZRM@lKH2<|)sC+=43m zIYG-WN~VSacrl%2`ve`B_Sye#+Q0#5M`FIZok6@+4;Fn;c)ku8jo>WM_GFxOSk{$| zSKP!pR^ybHXBopdo$WirHjvR_HADPMNMr5IDYj^f&qOGK`PEnA2b*49zU| z*5zGDkt%~Laj&ZCR4BSs+^jq6d92o6k;WKai)8L=qFLG&k3(~*u~Psx?xn>B9w+#_2#iMl*)Hut4T+K}v$5bqV&GB`NuK zC4C1i@d9+dKb}v9a^2^5;x?g;S0=b_4VnbRF8F;FLfN*Zevr+*eQ#objs~6MQFeRu zP@SW1*Q%k^I9F6Z zhTUq3`qqVJ_b3SoJCmfZqiv7Gm$`-0Vh^zwzu?}F7dvIocK#Nq1S(pmGjw%%AtyAZ z)Fe$yKCjHuVCTDT7lm1t(RFm#FcWh;n~E0zjAw?je3$x{)`YWk~rEPDDtGc8EpZ?pYj6}Bl zikhRL=xSLTM}EARx~FFnCBfc&Hg6rC{L_FGbhpWma&Iv8x^M~XYPQB1=g;|;&2)m>6TEAi_LG+eoS=>eU z&xgn9go_Q|0Ud>28sfmrguN!J?Klr|eym85RYS5{^{$jG%kQFXlP`o^NRk^Z)>Ou| zh}1?sq;+(J}cOam8W}Zu44)m;qs?RndwQk zxZlkNl8x&frv)9QQ7%kL=+(citS)KlM}yhLNNgNB;28pTaajwR;GvE1j9CbqPS?fj zJoV7d=wCy#M4}sB^W#4SCY%I}&7+uzp*$sC~*cp^q z{rzs1P_nbg$qeAR5+!Oo4c5x-b``KJbvLxJ5>JjnPZ-kts4>-7 zErvcUt^OMG@Lcbr06u?}gK@9Qc;uOgs&*zKX`Sv3uL|6IF6YM&;gB2kVDkRj{6-{f zLLU;l7LVuoqA-(#lOSrlq2{4L$N`I`K@&Z4RxeNzJXN;67_?1evOl{hA4;yu*s?Mx zjPG!GDb@kpAZ1h_M))sHWYKK!Y?H8V#WK^S%OQW2pIH-2_hD3q+ARl8oqLM-dNZkn4-0hR(K2qa_cO=l!}>6~4mLrg4A{+J|J zeC7wLQ1a(t#JR1n+sLY-^Z|CTy;f}v>y1JCnd2bcd~%`~?VcxmaM;h|M+7x@DX)e^racc8Y{ zIr3x{C}T++_U2<1iI!#2XXO;Jp=jx}3L{TegxQ9F%k1bitHwyC>@+VE`7m2i&#UyZ zj8J}lzOjc~%v5asKHs?#3?G~8`b=@#8;5h{V!)7yiscz*VzNVnQtmy3KCS|PM<2JL zS9=H!c}3xu4s#A4xpnVD1G|M8_hf6L0vSZNHR0?q&l{ zYxJ!7&|+IlKc{z`K{$QnZ#nHd3yvx2Gm?t%-DQ1XdA`$vecSe3#9Pv)Y-)*)RUKl; zwGb#!xj^FZa~dlHed^34r*a__?Vf*X0g5UV8{naa_Qej5S3jB3=H?Zje5_n?5PX4z z;;)m;#D|?k-(8{TQD!doW0DS{2Ksll7Y_miSAE@I1O|tF zM2cVMqP|fTA1KA^?KyLK(s|8jJF6cnpBtscPB!aEIvBN!l4!7mMhieE-O)n$ zR-udzBG}PkqEn=$Z22`39V5{sUaIt-p7Qc>s0p+nrYXvK_7zJZ?duqLq+Zx=z1RBq z4+-Kp%d&R^gt4RJbh&PZU3=;rvtEvV@C`*jonPZ z<+c&po*cBziee%fDg>NP6ULVw`r!%?z!hk{pPX`(lHlyoYLj3odndq9nuTbRAYG0M zCHF9!NCU5Qn@@#nMstfeLqh+QZ_Dcvc(5pr%ems-ll!#j9r0D~sD8|Am}Z-H(V*=l z>@VMADOEuaCC258AbA{NwbNucCT;oV*n@$+pYWmm|~FJ$3WZXk44fvNlfiZi)I%!Sc+NqduHtf zh3v7Er_iqOGAA`bR#VdS>$JRQx+SUL870AMo`{LEl#Q@=o@FFfy_LCR5K1-DnTj`1Qc97&1B7}^;KdUaMBsoU>-Z&BDFGAfw1>o%ZZV6r=R(o$B#Ys{>M&!m6}H&?B%2-Y$o0 zKKFR#J&yTMO>8m5LHwaT$d*>hnLP2DZ2CjnyOKcArUPkg3tYw*zf5m^f_}ahxEG8b zhro9GpnoI*+l@xT8oN=b`9*9T|1D0vBO)PT6xalx{#(1+#v)EriB{rgi%mAW7N1w#dRF365{A&PVpGhL(8<$X*M3I?DP&0BIO^Npw+v!VK5c4a)D4Bh)PyTo8*%@NvkZtM*yHasKyK zA34`?S~)0WuhBHbk-J$UHaxE_l8Qx1^k_c3I_#q>G+TzwMTxzO4uIhIw0ipy5%MO7 z&-%Fp^D?p6LtNjcb9P06cbY+;Se|#E+!~`)SK~npWGWGbWw$Z2k!RyVK}ME#Pu~SW zjldCw0a@x_(a))q>Crib4{DFQ<2ZtlXO+34z-=U_>mm8;m6oE@LiA=s3c25+cZMeN z3Q@>Zu8DKz5z)`(g2GW2X|nD>mU@XT%&_#odxHMy-Y{_Lpr7rNBZr=K zGA5__`5wD5R5plJDqH{L`Wf>)8c97Fh$ivRhAJV8KRI6`ga*;1^FK$E_XR%Jzlm@) zY{|_m45v0eBELlId2lEDY)Gf+8?;`?*~=NXIDC)f9Y^nmjBziGl6bdn;{A75qyxkJ zi_a<>*ZqAjyBoRHLmBag(z`UAwB@+Io;Fp9d%fs6J6w|YF_Tz!f15EPe(y~#<6YCys?{|z% zHdY;F7udmf-0^TG#JciF1!^;UNc%V3ztmbmHJTDG&}{N4|xt z{;5@Qo70!;y_>z*A48K)i*x>fQd`LlRo5!l<-cAK{Q?GUjUtu3#nV9#{MHj4D7^Ug8c9 z)X%Ej$(e9*;#zPCH|0xlalgpDn7E*V^<7*UoYM0vr#!z?Rkc2WGyeCQwdV;GlS=p2 ziKQWu1p}l|_)<5YxZ7N{N0B-}m%qlm0?;k+g}8uYo+6ht4nT`lN3t0JV+;kwccDht z2x9fLt)hq8hi@=#<3T?6iVs#$yD}%GRa12pe2}BaHal_mS4~b|pMbIBi{mAb0?EtC zyPh#;!?ElKWI>AS!Hdg@Jxs4#p+F&T?Y0Ot*5bJIzrGNc6Nm6*KBSEV>q$VgkYrmC zZ5K-4xG(O0j8U3Oo*c#k1=PruZzN4NhL}5xjEOx(scd){r4_Md_aN3hize@ZT=X1w z7E{1jGTNPPC1kC`VXgPx6PGNN&%~<$wuuy-#l6|TO3)^oY|O=3IE-z3A8K!LCTTYv zAK{qqSX*?VHRZF>vyIUumS24%1qd+wX3J1xzAQiTQpgq0ai=rEvO4_Vvi{$){@-r> zUyg?V7XFtUDBB?7gOBGH^)Xa$T)v2rALK=6aS$0g$GAcoJsPcdCzgo z3p$^F0i?l)z*Z0Pp#lq6FW|DuOH*Quhbz*S*NMAVc(2^+2VgK2uEA7tmsh4Kst4S( zH{c#r!Ru`$J6tt7Wp)Llio@Gc36RubEJ6=Q)+lt4t)JiN#swe?l@0;26oDcV!F%kC zfOCmNfG*+%jBT6Vb}IhRRhq7vI4?IVK&(u71JgTwfjX&6%kYh!4(#az_u>Zzd&3ZxH|roa|LPV- zx}3P2m->)32_~Rq=<6C8aRyd642py)?Sq;Vm{XF~f<;le=0P@*VlZ!g{2T$NsiHD)o6MY=wn7OElx2mmQe&C9Eb6L@_{eiXK{)<7?N7F zJ?k(Y-?032)n4Qh*x3uLmkreIaX74rogPK$n8j%Zv{LiZ!`dYyzbI`Prz!tF>eCJ6 zl_9vB3E*x%tdMrnI|;NE6@#MLf&SgC?o+CuSsolzJv$ zUUZh+YcLiT&Vl5Auq&p)!jY6E|E+{~M!P&qLD@5CbO^4b1`8VhSukYZ8g6JTu70o> z`iT6_HJvq8b@(Ok-j#DFhhEVAnwB# ze&O#3jXJHb?;j=lU6!?C)MP7;ngf-=2bx&YU`U3cryw-XIKlz;T-KW&ObcUYMhrKN zi`##_K&F5F1s33B@raF4&2tJj>ug;95{NWzcYUh3G3gH zM;kyMOPzbKlXMHk@RbAkHTX=h3wRubJEqMTrJgx|aUu$E0rZu<0e*4?ls60lx%3fl z<8O7692(*Nt6t-lSt%``(VVMIdVT^}Cu_=HIN+xAJ@=!H`Cj?3JCSzRsPHB!28`L% zRDY1-T$LDd<^!I`^Dk25J7l9Us;R~3=XL_}O9jDJtQ9N`@xIj|uDvarGtKooEX#d} zT^UeJ(fX67@yH>h|DU|WOU`{aXJLJ9Ca0HQ!1x#(ag{Hh5MB|6^0Js=-dcH zM2O`%GWiI@155j_p8RrV2bg&D1Q`Ye@6nLkWkthZs5h$&h@nv3QuCwvXP*+pj%Nr> zqD1yp>{fAD5Q6XW|71x&18Rpx6O^mAT`Uv1Wt@kCN*p5j0|kmteX} z+!lXW`hS4^o)^Ggitp8x4$!^-DU(luGwIIt`xnjtK4EQ>2njCPpQlAi1&uxYUs$2N z%YIKfYGi+7Qt!rYpJb0=o>Z;i{oYIdp8H^F$yT$}y)cQ$#(;|H-D^SozTh8|{I&`FhBl{5x&o9<7#A7weM4L*5e0a~%Vc$vQ` zA5XJ%>?$bClEU;cO4&6O@5g{-LVJi7nJ&RJtYeaMgqJk}X-;IT**^aA zjE4bG>`_lX?I4|UC~LLun}RU;VypDki2^bz15G46Fa8&z4RV*<>XdP#f4^?WZ9q>` zy8QJzMN_`K%fJ{zqGDD;S3M}qa;?piU=2xOqb4!ifxs$s{8zS4K&jPAwReb z_3*)&W~071yMy~xDxERv-l+~T%S&9at z5d${^dan+wi)?Qj(a`qf8hlOyG(}wRl<&CzEgM>Ux&^F1YyMxA8Grft5|4O?btIAS zS{P4DRc8PfW(%-?pS^`mlWZ%9jo^EfzureOPnbzd4&|HM&H-#6m$!xyJz&vF0vh6+ z;8MYQ*uwt?GM3#9H69KQb+rZjbcj0&*x?&1V?BQd)%S9dge7MdSpULo;_ez@FWvi9 z0~OamcO}JSP~fB=F!s&optgtWPF{wrkUfRI!_EE%Utcb8bM3FRH`;<8Bt(Z*bd)!a zU9S*ziAI_dvhC%KxTz?}B{qNQ2L8J4`ili2={9`O!#fLh8u{_GyA|nZ(EFTp2sYMJ zjtwv0qCH#L>s=J9Sk2*o%#TE9TZS_$4|#AP(GPrTqi|w66(NV9HREbVapFQ5anH z*^YS?`|WWmHn{3nRl#*haL`*xNhdFQ;@zdlIY9=;*6lvSD!$t|x!H5$ifb8pnvwFH zc=W?CAz%v{^)=={R--+Y!G zp{ppg&NSI13}TdSC_(wKQO4GJy~#%Pwszj75#xQ}UdXNm=G?#L0G^ehVC}mf9>^tt z8=#B+6n7jn8MLX2VW1+^%&h{!W!ONCx*SGn$~k5`;U*i$JFB9` z#ml$JSck(j`?JYQ$F`+OTAdLfU&gLLM_3`#!a_LrRZpYO!%aTTmJF1??E>Y9Wg_q_}m z)CN8SB0p4x1UyWw=FUPDR;h|9Q2!<%0T?0)o~pR!0CW(JcSEWY^7KE%!vFl~jUi>6 zcGj9C?O=6EN@xPk>hf{k89*cJc2A(V)X_Ys~SsMzdy&fN+rf6(K}+Ca(5w(7MF zFUdCz^rnASJ_KgE4xo<9eT_!5gSjgu@K1iN1K(};o@eG}fmORV! zg;&Bafpm<29!DJ4%SS@d&kDTumcbVp z1$`dw4*@K?u)8YEB_JKwehuQ3l()ZcNhyEb?CT(PL-eOw^0b~T$UMw5b&s^#Z^5z- z{>8Gs-ik`{%Y6ftr}}4r#~xLIHu7=zBQg-t)AK?EQ;+;Df@R5a3WJ$yG5AYs%D;Z$ zHBsyK?dxa>GCG1S4v8W_H2rC1g^bLFxoKX%Vpr{YMbhEUt5ci*hqs7Ps$vepO*9u? zb>4HMP!6>svpWgyQ@I1eAwC$+fMd>$yU0x0l+R*TIssy*!jyFYcPhww?4peMYF#Uw zrV#CC%VXk-Zo$gZll_S>#FMDE>n7?iK3@k!2nK4%%Ut+}mx)!1Of4COd3(9^YKrwz z_G6F?NZ7n>!s68wM^xq#2rTy}7z-i_G67NiuiXQAAv5*ET~(;L*QGx^Qx^LICB3T@ zq@R<|JAMmf>O6^$gur8<7P^XrbLlk*>RTO*!Aa^NLDY>K_Yf+qWD)LyNbxl9fUzK2 zYF3hNPokiY(1QS16N2rSz4*k;-K?717qJ4POixD~TP6mFLVO z&TJXND5Vd5b?t>QAD!%zFys%X9{teOONt;5U2ZLXfnYmq*!_aH%i)`MEpf^Gz{kqZ zu;RqP+q;>U^g8^9z!!^Zp4tbB?uU+0WoydkU-a;re<~A-42WEMJQQ-9GjBK}yd0y{ zEPEhHG9SS_@x0N1cDQ<@i^wM-*zV) zU2w?L0eh;JUy)shpzc>rXz##QJ^zeXV0=GBmUF`J)#XZ11m;xS)Ws;px=dCFqNApO zN+wX>MhIZqgIZt5LCUcT$G|ElFlvb??pDl9qzBnhwozRf!^ zN-eTx^iV+7?p}UtwP^}YYQ-!xf>6|hW~)iY(#PVL5NitX_wx5l>!jV8=kom~L6A)} z_7+ZoWGe1xgmDGRQ-aVXu=aztc|!dCT~i8gB2#cfaNfYD3w!Vcj|~*n@^)|wWl{Z> znQS+Z-(cg*jc15MqbD5XH z1B4i6IK(_~!};r<3zzF^5UCOoylAcRpjH2=NGf5iWbm&S+5AvK13b0sy3OKMgm_Q_ z;z1D8IXcC7*gyLM$TiK+_1*;713S%}6B(Eh2FBXvA9R)Cq4-f+gG1Yk$9T_?-7yst zlKu|3(>BUXQ)ZMV(pX8m$upeGJGW4~dsBq9ZD5qd>~hwt!gzO)4-<%67GgGF0_G`e zH)Y~ZRnGiB(b*w6-~(Ma*4KSEtuOzOs0|t}mg^KG$QMZ{?f@vC0EcWtN%*%zeu<`$ z^_&*~{V(Qv&^}!!%WDLY)6}K+#s%fW%oWqPvC?5MM#dmguJaHjfTA3(x$Uw%v-e5TN7B7qOYfrRrZ{vXp`Pg1UE)y)k3^pF1^X4dXZ^A^cEpdLMVN6s^*FyaPr<&HO^YR&Ub=vza`KoJne&GPSS3rG6IV z{Z98L-;G7^jmtt!O1e+L$VyUj6(i^HGF;4%y-cQj`29$W`s-dhfP;jGFR6J;FZ<5Z zl5gusHNR1RU|9U&a@Z*UlqAIO@1(Lwn*Yzxh`lT1hl#_0(JqE?V;LfVyh(4eV4B;v zDJ-x1Umiu%*Sd;+y$WS6uv)dHF~8l`?fjg0dx%Xt79lk&OgJ%Q<6@a-Yl}(Yv3#Zj z`4r2%%T^)$=%VVvTS#L9eE}nk!#U)GSXx1xHLVCODtJ?w0!WxWSG9~#XpIRVMn;U? zX1=522eE1jT@m_mn{y(AxXEVm0sSg9B!0|`%A&}RnTcV9|1Jeq^dUeZ%r)AG(HD82 z5T|XZ``P#O!~_oeDslVVHtiWG+LL zD27f%q2l$stcW zTd{X6GvZnh7ah3K6vMQ<3PBR$Yx1YL?#~vq2$ec=?Ko!`hW(`Uqv%9VZ4j%{0^4T+ zIAHV00TcQCfW2yBjrE2SsTD>+w7?wJT>AWwslwv6i?bWG-^lZd-qnOm9W5h>m*X!s z=AXcN@PW(|Y!Zp}0yLhb=khSOx+2~VP1Giq8V7!ub%fmnUA`XA~a;lxKT&Re@e zmSZwrW;sMMa>bs1>|Tty9x`$9-~-F40rGj$f0m#@8sqbQ;8iHtyHEc5(4sk$Gr`a< zS=Ibm~k+AX1)+yF320@4Jj*Zz5i4;Alc*yOX;Mn7JNoxR{5u+n} zzs2F42DUN`u(_I5?~S7?gz?%W3HBBm#Knykv)^KQ4oMUt1s*q-m;W0dyN^Ra^xPKS9B8VrOI z1T;}K19AU`s>r#7Te=p$ptg)Gh=j1@Dg_tN~*>@QeAm& zINbCiNF5OUTV%<~H6~{^wFrFBE0}c@Ozia$w-^S1gn_Sfx!~vK06cb`0@8kUd*tE< z9onCSby7TcCm0~{1SUQ;b7Tp*Kj@dD;58areXEz*6U6%b-VPrrgjEZq-bwpCtZHJF z`hVhRI4%+RnrPYrMrs(>mFwtD#FYZAnSygn8(#9e zOkFle9yEJZAtuVa|H>(kw8VDl;+V7Hy=cDFWOH`wlG!A{7p)MQ7C+QHEUouCATO%h z4t41N;UC@VQ`cDrsb>cKl-kmNcomHPW8z0h_ZHHSFbm1%S*^XQWhCfA&51Eyp|AnH zK>#k?0gTO(>_HtgZJGLWCjzZW`y!ncqck$8$2cBoRf;SHKvwCJ*IIF;e6jUU7*$D* zjE6Bu|8$Wq%tcO~7rp^K{Oj6*fBXgkW3*_#KPJAsC^`V^!^x)H+sa(`njnj0_z82p zm8T1s84f_~P%|=G7NlUjUu~)0+O2&*F}~?U?b_Sn@zuwgT6!WsRflu>Zt35=0N_36Y{%B`K&dl$ zoET^;##z=3oxXqoj`~*?pFt{MQUUfCN;G7Z2;+uCb!9_YQEn}Z- z#7e((hoMZhPwVc=1>9eEH1J6q7qHU>Ll<9qDd|ICM35Ylw(u3M7eiWlifaw0KatiB zgy8r*;gi6%*N%NO$ccwR>oeL%P;N9`e#qv&ES z4KKfL@fdga7D!0FOf)(YDbt`?{@Qq|$itg{6@nFTg`V?B}6r z@lskCUjv@sRxb?Pb|g+=hnSAUGZMIjtkp^QRZ*E=tNR&iW#Nyg|Lu9Oguj0CuZREp zA1)#7nX)=B{wCi4`*Q!o-(7;UHN@1s_fMbk@5?I#yI+VT-uw@}{y#iJi^Tfq|x{kZj{KN4BbEbQhz+q4|&T-w<)q}fBrxR=n>Apa@X?Dci69Q^8f#` zi85`1kl;z>7au*uu(jt4GNcT8iLS&$k^a>_f_K=0{l`4_!_a6{2gD)InU~nH7GEVjBzX7z5*S%p{ z`(qfk-GY40L}rv|XP`E5ll2$?48BFbp)P}o_(E)fx`WGg=?e_eYDGwt(HdrUg%><> zHc-uTjYJ84J?{wJ-M^l3Pjwntj&mcB1GBCo!yW-9S|1f+kIicYvt5n~ux?Kzg&B%< z0$}EDx?1(`hoefhQ7|zD93b6ckXOqyd3GkGXN+IwW}YR(|uE6w9UmjoRr(IzuGqDG@!(?;1sfYR^WJvUsdXpV-Sh^?*)fdp?8@q0hG!2BX*5vO^+?KzSJ_GKRhHL zL=~Jlx+;X~v@D6pgxD6iyxFO}H*X@!4y14W_0ijYeh-xdnGm!lB1S!%;z#y&uDf8E zl78#6KN6@_649!#(jF-B%oJdGQ@$~HAMIl7z&=3nZWFT@2KJhe4N1{Z(&$qCL)JS64O`i$I@}`mkKoS+}HSI$s&g~)>c@%F&=Go;q>YoTTnKR z-9F+;(>4Y!%=*cbOZIB7{Pl3P#nF=D&v&Ha;~u0JV*0?G`KV=%8QmPUwURD&E?DF%I{)w^4}cWO)`R1=8I+RG3!fcy zERhT$o8Xc7BR(#lQz@n#%PUKN3WL!~GT3Dv+U>Z36vJ&-vb-5C=80(g2bud)@75;; zz+#J%p}mN?^7d+RoVwJq=xQQpUbK8u#Ra&uy;WkPsqH?bj`yj!#Pg)vyq}AAQLM##o6x4 z$|vxDW;GPjq6#w+?bvjbkn7iE++u4WPT+V1 z4mqO~seEAc?755IxxIwMP(9mnP5CWkm~k{wwb?`GN8X`Kg;lemOU%U(y7`T;4M6l` zx>_Brgj%Py3q$dk<1IljMYL^xqe7|jEu>`pA(^svAw5WL-!Y`WFN=ECY+99b>2}7s z57%RxpgEpp6Sd~v_x>oKtLy;I&aaGK7rk=;+nlB1tj9d%m0}kUius7UJL91voKH7T zu=HPn7xGYDrhLc8RQ%gdQy!`LejV0L1HQweXEe zk&dEfYm1=N9(M?25H+7-By@QPSxM|}Eew;4czQ*K51@!LhOu`*Lr`vaz3g!*=}+qp zq_*D1=$<>f!+b89=G5}Tmh2s#1YeTYDSgd&G$0Ejw>j!})z~M??3|GsI8)2?7k7(1V{}f9!H%+ z*eF~Q_L4qT(q11dXggjO6NFQcJ*HG3ehvPI7CTOoe3!`e~qewP{Q2`lIt| z-C`G8?C|D+uPOB9S{mC3(>yyCFsd}lrr{Dr^uHe~3Oi80n0iFp12Aoq6hhfU_5shF zE594=C=;%6h?JCwB(0kCbLlzA#pGe1?4w|o_>Dp1`kO8ADi_q!MwD3u&OA%8K=ozU z26|B(rS^56y-Tzt$4PmuiHR&b0n#&{Ho$34#z)=_i!&1Gi5>NKMW*?4vz2_fJUP-a z?fGOGQuB*|Iy^`pkW?T0q5b288UN8Zsc;2!)gp6G@6`G1_%&!b5~aAd$tJKw^RG7WjeARkJ0>I^BjxJp z`F=?;vJYtHj#nYgmflgU1-z~7h$`#?xA}Q0V`Auk(=F@E!7bC{NRr*ZOE4ZT*8Vy_(oKM zVA}cPA-De+v>}&2j$m)MY`y8WVDXmo3&=jwvu3AQRQ zU_Y`WUW9v1{-NLDwxFT%ZLFd!9%nVY_xR;V-BXcT={migewWQ$JVsTy3=C%04*7H67z)n-<(`aUKHk_-I8aveq7!?3Wf-W+;wCIg=hLe?8~2z8Tm|Fv zqU(o)Fs{xXExw`v5n}NnjCp0#(syiC*!S+aDz?Ee@7ImcA$Cfsf+qB*?me%Lr&ZK< z%C@ZC>I7(rK3aG$9EMBy&|W4tIznZntL>`fUT{u2j*g0+ljVDu!e@Ku!FPZwLf<|7 z5elOFqNC=cDhRK5f^ANf98TWqT)_Qqm~|&Z&$0<5-Ni1Mcmm&4MR#$XW5`}a7kzO# zC7ceq^h)Xjq5Sg~1;;*4Yg$_%1!?U~2X$Q-?}$FPD>V=#cO*o&N`30U0m{A&-34O> z_ozvdj>81uT0a;JL;C1e3{zTK){x1xvykqF7qFP1wlm$;a-;IEL36qM^HskmnoGl_ z#>r55Ck2VE!?`Ga)39xajb^@H#}*2)!H(=#C2uC|Y85|ld70{d6k27an{l%-c#4N$ zT?ieFv2y;%LF0pC%%e+c*&aPl=Y)Cp5Y@}0OL?OmN0&sjjvR&P+Bqn;(^25+)D~z^ zmBHRCyTnm4_#JEg+~Ff3;)d6eZM;{qUp4GzaPXeWWS0hFq%<71a$tq^Fcq$EceNsm z^I)-ey)Y!;`vtQPbg3`)9`u>td>FAG-E}o2lVp4En+~zlrF(zW5*fPUdaU1#T26^w zBsRrb&Yemgp+4p@FZdQFFzp@jl2FGGG-Wj(u?H_8DM8L+!5+Hu`4(RZAI(}_qx7kk zQ;B_vCqpS!()6e3INY6x-c|*uX5M1kD)OrnC&g4wtREt&WSVEW7VVSW}!0O z`NQ#IFLH~3Q*P&|VG()O;#&*}95qXq>5N387NjPyY%dM$&c`V8O^o!P5DLx{IReft zt)20*eX9Z7k&A06+M`z0%c%X&>Ll=|PQ5>6x#QcprBb^}l>8vcrsT=9zy&tp=f0qf zvak4-zKS@exv)}tW4YYq>EJSd=Lrz6J6- zay@W+p_SLAc!@cZux{BoqA-CXq7C5Hz7IbfDZMdpXo8vr$;*q9LWcV?!h;AU#C=oj z`}atO`Ne()&PkRGnUX8N;XLrTkdCe%u@B4=+LBQBGA$88B}fmiLvFZO9@+Bv1z$nsy6 zJzGL9)OxBLfPF}o zsgE2_G&fr)b4e&1JCv}AJjFqz3iADnheo$f`g`U)9ZvQ}_~!#hGV?4N=uf+l2TV{0 zdvA_EV^k(2+0A_N-H*`rjUve?uNcvj;xEqa)cG=$_%4)%rj}~M)TLEg(ouvX*EPQb zKtY@r_>^%|Fi|4U!XVPan|S=HocovKGtXCsx*L6*Lu>kWCCwNXvc|COdp=;}u(i|d zaU>=X(p-cL+YVi_lWuHo_U_^Lwb>-}VJUxYDrdF6$ZMq$ zR$umI`sSF0TVh4Q)nvQZ>^#+(vYY4g2sIb!SDxNW@c?rVXZdY_fLbf&6c=e3nw+5w zjaVlgmDC%(+JWuf6BUoWKd!idzV@}=-XVgom}U~2CjGsOL2LT6g;_Dwcc=vVnaul% zt-ee-2^i&CX77E~U2UwH+A+J{u2iKK4@zG6z(~PnG97SU|1&{X#Cm4UOk918$&V%S zzQkzdY(4MWFVA&BhOb0HH(md(UK{K@IFCgJ#kkT2G5iPKr zdh7g2qMV9CjOWAKi7v-XB$8lF#gj*dnyjLksOs{6{=*GwKkih3yCZj+ud> z`E#>7oz|6T1QIP&1aHdBI;m44PQl@My_==7BkL`}m^`hEhaY}|zSEOW=5I+h`PLnc zeR!IJ2oR?p*?BXk5A9Q|+LjB>H`@X6hzdCJQ@lyBy_W>D>41g!>HdFQ{GoWFi7da^rEn`->xy5fF0 zrunzpZ=$Bt$v33Oc0RXgvix|xWrw>IZvtrux!@=l64%}Ui9k(eZl$(xK~ zPLEdIUj$iO#@AeIWFz?8iEF;)SdeXq!k8O`{kZ=`VG)%}i2laCSdl2Ti3EExJ|X|_ zN@iJOk=U|dPBz@sf8Z2s_My7GA>a)2N@YD|`z(f9n4yS3_7TE#w?5)|lim2}tGu`f z*XL&v^cyWL9{0wpF?`Y{6YD}yuW7pcd_t}5L`^f=`)t$Sejr4v zGCQ^*{tw#R&)W#wk~(me+gsr+{GmI*|86TH-c+_()}evc>jj@mR?;OeXPV>FKHXFU zw6dtLTq*66fwZY2rY|_EjTqTbw72>`lm)5|zFTvgatEv*oj)Q|AfEN0*WLYf4F@;# zpm7#hzAhDdUW@vnF(Id^Ty?Fz;tRvRTA;4xN8)3qzH1*}Y!0GQq%0A>%~h8$OIk2z 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 EAKq%MdH?_b literal 0 HcmV?d00001 diff --git a/src/plugins/reflect/assets/rivp.png b/src/plugins/reflect/assets/rivp.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb2c8f2b4213f1b512d09a9081c7ad87d1de02f GIT binary patch literal 6908 zcmYM2byO5w^T(I2UAl9Z?vfOw7AfiOmQHCzKv+^@DUpy|=@5`kX_Sx!B&1WiyI!96 zeSYUR=gghYoiq3Q*PMIq9c^U=g)?dZz~H5vroN__Aua#_pnP&J6hJNjAgijW~L!( zJ~4M>q^QyNYl-rtm4B@F7c-_$r}deM8!HK$|OzaV&h-!PF zk5VMXH|TkR?=F}S6`zCYNP_iRIDpn-*`u;>%c_QEGf@3R@@zQba~$(n;cE&`XYK&T z!dm`jFXlv8TLrqOumbBC!gDq^lk@TnocKl3K{3JXrP=5rrTdAkaSLDK+u~yi3h(oR zM?Tlv(s4$0+UHH~TjWy7V!@xEqcLst1JMfdQ&1zEU$9Wm88{6SlJRW*{jT+ysSP7= zqB43$)BIz)r}(kuJkqLCRjy)0#;sP!ZoXJ%wdJHe@jPH*(-VEf5^f^EezI|kY*J+IJjJEw|scOBO!rF5|31Qd~6 zX3X@JI)r`&Svz`R%0SX`Kaubppu1DP8CD!e2E)b2CSdtEmW|5E4H#eRWpwtUT7+5G z{9kbDT{3D7Pf})J*!KBmik0L?p}!FVw~c6?0-)&f?`lRDR!&hkQ`gVK>2VOOY9>BC z+0yZ;9%EcLR(m%tXgjizcfaRJUmQj@ef+@O`8RTgTyvsB@vO)2_dC1Pwyf#W{%+o$%ss_;#psrHHdJ+4?cyceTA~gRVaq+QCHFf zmhKrKxbz>xFeXIw>?pq?4uYT+3&dW8KQtd3{({CRIY#Wq{ew-&6 zm!L_SP>c^?W35i)M~34o=?RrCEdQqB%EoPOmGyI}=CjlmUUh1s4wQQ@q)Ntm2Mj-` zFB51R@D6DJt;#k&IBf#-Iiqvc%Itp2%|Hv32xcH(3Y99)z3!WrL{LR)I=j|nGuPvR z&C1$S!UQCIIK;u3veNY>xa|mOeKFIljn>Yvo90YzEC@mJPM6mw67w+b$|%xA=BdxP z52!P|ABv9fu(!_fj3;n+OigDXd^{t(VAF}oj7A&eT=e)IJCrj^ZKvPhk&G0GoP0*1 zMLi+s{Da3`JY%$S4rt>746}YG-z) za#oy=Wk!$+?Cu(Wsx|)kNl@Nc0yI8Fco_siP2@+^4k4_Vpmqr^6Z-F37ol5iXV8Z3 zm7tQ3Z|9?*1rsu!nB}~;z6DW}OAyBBgUo8dd#{yYj(*@-G^O^}4C{@Xuy1F9ceOP7 z!pc8sfX!oJjMN!%E%S0c&w$MzghV7_#4Sm?F1aGTJMAV3&$w)>iR9#6MLy=wOe8C@U7mH>}A3ApxTUs5brISuA6DBJw`1E0orGtNxB=`I_66p}Miqa8Wq zqMY{j=@=laiZFHvM;+Q59oq#%TSTerfu#yU^NCD7CvP;JU@hvRgnriknoBM~lWN{o z)&jedA`W4=gw9nwM>xWlwGwYHI`f!z@GgNyN6d8LNJTz4gx4HPrdqiSlN|D}S5a!h zDj&14nbrj#Ew)t~g65u8uh)xmsD`J+TJX7z37!_jZh6dJdzbsq} zOh)E>Q<0!Nkz=R0Hj6ve^3f1juU-tYE)&24meK1GVu3Q(69uFLyaZjXl(yEAS(kFb zQSX|5A&jx#>ZP@j)czc_w}jYra`q?!OWM@uYy`HgvN1QHyz=l(eP#G1v(!FPfT8^4 z2IHiyxA-k@r`-}bn+s*l3H%azMJXzPVEXv&lJ}+9G>OF_$*21=<05eC>)ysFfK_R9 zi$G`s72$1=RC_IC%LHJ(7cDU%HXa-tj!Ps=BJP7lr#V%LowNj6KIMYF=;^zP3@hnO z40Se(UNvuPIBETpFt{_sQHGt8$Jv7EnU5he2b*==9N!gzvSLD{tOqCg&0GxX6Cl;F zH<_jp0VdicyYfK?7_``LG3!cb3 zINZh+UV%^hyhy;-nxAox*0wGw#hbFA4bgwXV_QC~7#L%9sI_*_0Na&SYV}s?^UuDk zz|)e*g)h_*{jlksWh1h-C}v&8UB_8*5H&PpPgzdXUUlK*zuvFPlLxZ;nsLY~D zvc}5wh!KGunFmJjfb8e5t>4_1Y{NgW?_%U9LiTuYE}}_1?OA0Fnuu7S0WZ^Ja23lk zbR$Zrzi-n^Y|2GvCQU_8e*APh59g~a8T@-UIT)2#j zp^hOSZ6wX)swDK_^7~aTY)`~1R<++nu=ML*c#!il@_@GI z1slaw4Q7`pXSh9!`sohjz)*YJkNO1V7^v(Ku6|XHBbiWQ0w_=;yiEB7U!v5U-3L+Y z$9Qlvbx1`~e)EQ9HZ&6b2$z)e6Qj}(h@5O_eb3Gi*D@Vr`3DH!@ReWDL>+s>^kcv? zQ}=x{Wr3YPPPZ_K4Rrl`s0-s>7gVA!?-W6;i=ph2a3s+UKen4(0|u0%G3>sjtsrY(9>x&t_ZzNo>ANfLvi_N(l(}L`!AfB{ z{QZ!n@3fKClp1BZZ<tC|(%=?}{q=53ze)s|}Wx zJvih14m7o0?}=8Lu>9Q7!rH%#1b%`n33OquGo{|f*bIuWl{jFRf;utB^Vh@+TLynd z$9gu&rons2)pWQB8{d*hw$N)yL_oK~)iD?CwWb=^t5;h2wU=74lNL}YGVrepBgk{1 zz`w!D{gu{(6*>H;W?Q6~RoQZ7_P-xk5NB-hDKvyzXdWXSk)+?i=L zTz`jhi^pxw?Hrg0u}Ja!_KkieP`)Rc7*o|r<0|w6oDcKNVQL=fe>ymLpr!M1;9Z*5 zfLM#UKv`Yz0|mTYleIFkn($z%*VB?J%r!+fqk$8!)k7TRmO*G@Za4R3BHltpt<_BP zr+;oV_}nV}%+C|mkw7ZEBw>Z3mc0f<2cZ^z%T7qn6q@j@prPZGC zP2kDbV0>lQ^8TxQR1Zn^W5a_RuBJMb-+~AY7s8IJugTN_Aw*PO+qODu4(*{Q^qQTm>0| zL$ygx6fiVfF4FcPddV}Ek|93W0JDPOz`yz&C% zTCoI{&r!;BT{L=ol-R=}#Qd5P*eM4U1L>1z+Xc2gDY`@wuXszQjW*lK zG8o4yC9Xrgb_vf(Xq>Z#L#44i0#(P;PPeRJW|oR#6IDVPx_F*aUG5Ed#~(zCAFi<* zT51$cLw7QIr<)?S#ZQMcQKielg0~S7qV&x)-NAV47wpgjeh=Ih+-uDn>6I<2BQFN^ zk>Foiv!m~c-+$Q$UOR(@>C8YiBkQkca0852ZKVL$L#pz~9ZZ>X-BsF;RawbsB;4qi z_f*N2T120)t#WTYYH6WOTO{_|;!1B`F*Qbay`bj9C=?EOzp3{RO& zyLqfx9xU3|b7`)N^FdPK*}Ds09@np(8A8@7{iI&_A1!}}`7H&p`i@2)@KiGIC;~G` z5mmF7gddTaQFr*z4%It`sO;kmGqgb(nRzI$3_gw0R=+#g!f0w-5UZEyXV0!PtkyKt z5fq)ZrY^YuBZ@Vc?gZ?fwAjNdBgO9!ts3^#B3umJRAEK|@7L2a^syNYK9PHsSS2TB z<1@`flkWnKM=D@gXZ7TJv99|1p`eaI_UctzZ-r9;mqK6{5^vGD$gd+vIW%0z-YYIQ zd7Rat62J)x`k9>{F~7Pjso%uH3)}*Jm6S_a)jqL#Zkko+aKIUiQYBj!utp!*Mw;I$ z7C9XKOTNyP@FE7M0U7U~D<4;bmo)wv-6aS6dag|L8n8ZXHzzk{`R1mZ-bUu~IV8~b z!*ZYsdA=H^Z5=|ia{~U^&K0@Fi~S)*2DytpU<*MFrht6mi4n^qUI|P+TU>d*9-vHf zKG=)+hBD;N$a#YY*(d6{N5>H#OZYl6zVKBL=FEXIVj@uG1D+6(*EfLt6^K~+^4nT+ zMIrTaVnLOnAc#AxNLO~|P?oa#J{s}cTD8{8t2Y^rWCI3NemTgo9sFYkeoz$fIqhvG z=1{n#b=zX>{TfUlPMjwiz_p$%4YQ^ry!dj?S9I;(Ms2M;Jjey#XKgo1knIq%nKSE2 zjgO!d-Bz3%+MU*v4NL>4+AANfaKQa+<5pZTx}^k|5TfT$g66A9K8P&aEYZc6mfc(| zBk1x<-={q(IE9bUVn3UJQffV~{I$};!fWWH#>;?^c+UYUz&CQw_HZzrn^&osTtUYG ze74f3F%xo%mFJK|*RB1Bk$eUvq8;5aIP7O5N&#hOXg1Dd)*U|c7nX{?*KszV(J6H> zOK5nbt+*0*sFVk;4IQt#1~gj=*ilowb`>U>VeqYI9J+iFAGDn9T6T!6xb+_Vpoe z-f`QSm=V-lc!=izakv{*cSCE|g1)2Q2 z%Rk?~BJELMkgvC{$LXLsUs;E)mx7&+e_=#D?{}-N_2-W6KD@8erQ@Po{|>HA2s*Zn zp&k%Q#3aH&56GaX$|nrxg)@PnnZ!Ku>b%M9>8Z5PHvPu zfRw9X%1Z?O$1*tN9wp@0W6}=Vg~620?cu&gv-|d99z%thb#7B|S4e-zcwoR=u}9~} zv9#CA)yoX;EkYSO+xNiU9eb09LGR{Pl#*qeLCB<&1fL*2#xm{O`le1FRFX^76kMW> zyN8j*73j~dJ5@$ZWxAx;2)(VFp9C8ds4||rY3`oi%G^B?mXoDM9Sn{f2PNF>0vB{L zbteq!!;jfVO>T)FQmbBN6j1tjLH&KR{2SD0RL@oqw9(xVv8V&w{<*Mx#Ym~+H0{>r zZmvMmfX4Ze53Qaxni$&_Hwwayxq-@GJC&D`cEdyZ9J!1Ay)7%3ZFG8$g(l?tL#Hr? zbkKRC79uvP9*q;siJ$$^75dBG{2Wg`yEw>HZDpq1B|Y@pAl78*Tv#mD@K1fS!ap%b zfQLq5RL9@AJGnyVyk#>{Mi3Ih# zzw+r#U`H!|E3|P|;~;|ijv+!>i#EOMme?o?oV-}GjqdO|fsSgPIiLr&QQwa)s28GP zN`m*SWpPx8-?(VxL@hl`C%W>kbu$>p8bv)6eQ>>qq+>30tfWq9%Xv*+5Q&C-fd&u^ zc^k$fZPFT5!SIeji$5PxLskH zlJc`Yx9@Wo5o}k;{}Ikur{_no7sTIG%m)7Kk;s$&9rk&TXjEUWl&tTVBR^(2j%oyS z*kNtv_9`JYsT$BqE+Jl+#(Z(&nVv*M>8$<$5+WdN=(&NkuV8g`3FjThY08Eq-FH`f zj5C@XT4H_WTKEpNPeHMhJ)Tm$#z-E^O^65!#ICR?sbRbZ6TWp- za^aovWAAZF=XukCCrvx^v*l85kxSGZ6I0Cb)f?6I=mUMPH5R9@H z@N*WmU%k$%m%t63^J;_{X_VJpq@A#h)4tp@T30)gdm=M$C=ZL#zFef=h&xu2bPwB*R9b-w zmfQ1%>!V7KkuSzFv40g#l=^_-bUeMRB_Ln@s-PBKU!R~Gv>5T~`PMYekY*p4MX3q| z*A|!{jxZ>ryqTqm?C%g1qFx`cM7@Lu2MRojg+De)C?kHzYr{ksO zefO6f%8qDk-|KT#aTY4EF{^hN&iU$O=WvuNP1HSJ$j(Kz30zmz3}Hk`GbH~4>1Q%u za?J}R^c;JO*O21&^V>i*w_}GM7>CoU-;%uk3OF|5{$chb{{^?J6Olz{<>u^xd6e+Q zrzA5x2}(jxya8QP`tWq=>!`QRZ?y-_`eRbY35_W|NYAp01yzEHp@Zh81C@Fj(sdms zmq#I~85)ITJT5~wY5P_b&m~_HZjPFk)Z>P(QjZ^T4KyTIFcNcc6|6mdb0#I?y&WxX zMGUo;bU+hdNr)nj`6eCQ$z{d;O)$=9{F?O~-8$Ya$NLl9XMaB-HQN?PzD6D&3we}m zMcJb&i)>huKX2(Sg3O9c6mkX!{Q#PrPa|O!s z{qAXF-yv8IqRriPXwo6i$;z!WS-~$*ataA=5w0*5{x#+M>P{<{c9%qWN=)f^|AC2T z**^YoqgS5LR(%wm)qaE-CzTcPD5A21A$=2Smh6=-l{b$Bw1ujd8~4A8$vWJKPj6sX ztPy&{#%Ric))T#9Vs3M}+ljXPK=6+KrHDcQu@EmiD|dT6*+Gek_>hQUtU@GqnjSs* zk5?3UpmhE{0CJPMAgY zomc%=KlC(wBf+XRK^qJ-|+zh_MzXp zfhky5Z12t@=XXErB~)Ru$n0p!X=A@fSWW}sCxelRSBi+Z6LN~eeIjALuA2HAs8f?r zf(hYXmXndo?VXOmcA{eqN>0k}i!V1@mSwo{{wxYc*8;2=E2`m)Y-NABACbl=GCW)3 zy~@5-0K*s<0PyQ5!k?-ItivvIVHc*2M<(?_ZSH+>d*axL&jBvy3R_lQW)e*ZyHt^G zsiiBEY@91rUHGZ;VleXE&e{fTBNxRkqwnT;Q8O<3UG8@Ex*d?=MHkFW;xpn!5A-Wr zQAZii^d}Mxp<={z>q^ru4M_qw{|e699l?0nnc^{DK1fC`tcglqUs1 i-oJSPetwj^|0zB`0syFa|5N0Cl0o~I^PbNCWB&nO>eV3t literal 0 HcmV?d00001 diff --git a/src/plugins/reflect/assets/tipee.png b/src/plugins/reflect/assets/tipee.png new file mode 100644 index 0000000000000000000000000000000000000000..83ac9807245af78bf722fa4ed35f387ed875bb97 GIT binary patch literal 3148 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.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", + "dev": true, + "optional": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "dev": true, + "optional": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bimdata/design-system": { + "version": "1.4.0-rc.51", + "resolved": "https://registry.npmjs.org/@bimdata/design-system/-/design-system-1.4.0-rc.51.tgz", + "integrity": "sha512-ZSOx5UfzzTdCthUDKianEqDvUh9j1v7+I+jNyVeHhWHopaKdjZP1TYLrMeA24Zj4/hQLa6Bs9N83lMLDi4RN7w==", + "dev": true + }, + "node_modules/@fast-csv/format": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", + "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isboolean": "^3.0.3", + "lodash.isequal": "^4.5.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0" + } + }, + "node_modules/@fast-csv/format/node_modules/@types/node": { + "version": "14.18.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.34.tgz", + "integrity": "sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA==" + }, + "node_modules/@fast-csv/parse": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", + "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.groupby": "^4.6.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0", + "lodash.isundefined": "^3.0.1", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/@fast-csv/parse/node_modules/@types/node": { + "version": "14.18.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.34.tgz", + "integrity": "sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA==" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.1.tgz", + "integrity": "sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.26.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace/node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace/node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" + }, + "node_modules/@rollup/plugin-replace/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/@rollup/plugin-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-url/-/plugin-url-6.1.0.tgz", + "integrity": "sha512-FJNWBnBB7nLzbcaGmu1no+U/LlRR67TtgfRFP+VEKSrWlDTE6n9jMns/N4Q/VL6l4x6kTHQX4HQfwTcldaAfHQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "make-dir": "^3.1.0", + "mime": "^2.4.6" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", + "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vue/component-compiler": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@vue/component-compiler/-/component-compiler-4.2.4.tgz", + "integrity": "sha512-tFGw3h3+nxiqnyborwWQ+rUgKAwSFl0Sdg+BCZkWTyFfkEF5fqunTNoklEUDdtRQMmVqsajn1pOZdm0zh4Uicw==", + "dev": true, + "dependencies": { + "@vue/component-compiler-utils": "^3.0.0", + "clean-css": "^4.1.11", + "hash-sum": "^1.0.2", + "postcss-modules-sync": "^1.0.0", + "source-map": "0.6.*" + }, + "optionalDependencies": { + "less": "^3.9.0", + "pug": "^3.0.1", + "sass": "^1.18.0", + "stylus": "^0.54.5" + }, + "peerDependencies": { + "postcss": ">=6.0", + "vue-template-compiler": "*" + } + }, + "node_modules/@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/component-compiler/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "optional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/archiver": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", + "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.3", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "optional": true + }, + "node_modules/assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true, + "optional": true + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "optional": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "optional": true, + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "dependencies": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-indexof-polyfill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "optional": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "dependencies": { + "traverse": ">=0.3.0 <0.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "dev": true, + "optional": true, + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/compress-commons": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", + "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "optional": true, + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "optional": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "node_modules/css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==", + "dev": true, + "optional": true, + "dependencies": { + "css": "^2.0.0" + } + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "peer": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", + "dev": true, + "optional": true + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/exceljs": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.3.0.tgz", + "integrity": "sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w==", + "dependencies": { + "archiver": "^5.0.0", + "dayjs": "^1.8.34", + "fast-csv": "^4.3.1", + "jszip": "^3.5.0", + "readable-stream": "^3.6.0", + "saxes": "^5.0.1", + "tmp": "^0.2.0", + "unzipper": "^0.10.11", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/fast-csv": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", + "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", + "dependencies": { + "@fast-csv/format": "4.3.5", + "@fast-csv/parse": "4.3.6" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fstream/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/generic-names": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.3.tgz", + "integrity": "sha512-b6OHfQuKasIKM9b6YPkX+KUj/TLBTx3B/1aT1T5F12FEuEqyFMdr59OMS53aoaSw8eVtapdqieX6lbg5opaOhA==", + "dev": true, + "dependencies": { + "loader-utils": "^0.2.16" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "optional": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "optional": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "peer": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", + "dev": true + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "optional": true, + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "optional": true + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "optional": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "dev": true, + "optional": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "dev": true, + "optional": true, + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/less": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", + "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", + "dev": true, + "optional": true, + "dependencies": { + "copy-anything": "^2.0.1", + "tslib": "^1.10.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" + }, + "node_modules/loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", + "dev": true, + "dependencies": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" + }, + "node_modules/lodash.groupby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", + "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" + }, + "node_modules/lodash.isnil": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", + "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isundefined": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", + "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/native-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.1.0.tgz", + "integrity": "sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw==", + "dev": true, + "optional": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true, + "peer": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "peer": true, + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==", + "dev": true, + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==", + "dev": true, + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-sync/-/postcss-modules-sync-1.0.0.tgz", + "integrity": "sha512-kIDk2NYmxHshqUbjtFf1WdBij08IsvRdgDT0nOGWhvwkr8/z1piLSzxVrPt56J4DU6ON986h2H+5xcBnFhT8UQ==", + "dev": true, + "dependencies": { + "generic-names": "^1.0.2", + "icss-replace-symbols": "^1.0.2", + "postcss": "^5.2.5", + "postcss-modules-local-by-default": "^1.1.1", + "postcss-modules-scope": "^1.0.2", + "string-hash": "^1.1.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/postcss-modules-sync/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-sync/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", + "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dev": true, + "optional": true, + "dependencies": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "optional": true, + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dev": true, + "optional": true, + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true, + "optional": true + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "optional": true, + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "optional": true, + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "optional": true, + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "optional": true, + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "optional": true, + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true, + "optional": true + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "optional": true, + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true, + "optional": true + }, + "node_modules/querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.2.tgz", + "integrity": "sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true, + "optional": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "devOptional": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-commonjs": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz", + "integrity": "sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-commonjs.", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0", + "rollup-pluginutils": "^2.8.1" + }, + "peerDependencies": { + "rollup": ">=1.12.0" + } + }, + "node_modules/rollup-plugin-commonjs/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/rollup-plugin-commonjs/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/rollup-plugin-scss": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-scss/-/rollup-plugin-scss-3.0.0.tgz", + "integrity": "sha512-UldNaNHEon2a5IusHvj/Nnwc7q13YDvbFxz5pfNbHBNStxGoUNyM+0XwAA/UafJ1u8XRPGdBMrhWFthrrGZdWQ==", + "dev": true, + "dependencies": { + "rollup-pluginutils": "^2.3.3" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-vue": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/rollup-plugin-vue/-/rollup-plugin-vue-5.1.9.tgz", + "integrity": "sha512-DXzrBUD2j68Y6nls4MmuJsFL1SrQDpdgjxvhk/oy04LzJmXJoX1x31yLEBFkkmvpbon6Q885WJLvEMiMyT+3rA==", + "dev": true, + "dependencies": { + "@vue/component-compiler": "^4.2.3", + "@vue/component-compiler-utils": "^3.1.2", + "debug": "^4.1.1", + "hash-sum": "^1.0.2", + "magic-string": "^0.25.7", + "querystring": "^0.2.0", + "rollup-pluginutils": "^2.8.2", + "source-map": "0.7.3", + "vue-runtime-helpers": "^1.1.2" + }, + "peerDependencies": { + "vue-template-compiler": "*" + } + }, + "node_modules/rollup-plugin-vue/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "node_modules/sass": { + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", + "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "optional": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "optional": true + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", + "dev": true + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "optional": true, + "dependencies": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stylus/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "optional": true + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "dev": true, + "optional": true + }, + "node_modules/traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "engines": { + "node": "*" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "optional": true + }, + "node_modules/unzipper": { + "version": "0.10.11", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", + "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", + "dependencies": { + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "graceful-fs": "^4.2.2", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" + } + }, + "node_modules/unzipper/node_modules/bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" + }, + "node_modules/unzipper/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/unzipper/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/unzipper/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "optional": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vue-runtime-helpers": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vue-runtime-helpers/-/vue-runtime-helpers-1.1.2.tgz", + "integrity": "sha512-pZfGp+PW/IXEOyETE09xQHR1CKkR9HfHZdnMD/FVLUNI+HxYTa82evx5WrF6Kz4s82qtqHvMZ8MZpbk2zT2E1Q==", + "dev": true + }, + "node_modules/vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "peer": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "optional": true, + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/zip-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "dependencies": { + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + } + } +} diff --git a/src/plugins/reflect/package.json b/src/plugins/reflect/package.json new file mode 100644 index 00000000..b598ee91 --- /dev/null +++ b/src/plugins/reflect/package.json @@ -0,0 +1,37 @@ +{ + "name": "viewer-plugin-reflect", + "version": "0.0.1", + "description": "Reflect BIMData Viewer Plugin", + "scripts": { + "build": "rollup -c --environment BUILD:production", + "watch": "rollup --watch -c", + "prepublishOnly": "npm run build" + }, + "main": "dist/reflect.plugin.js", + "files": [ + "dist" + ], + "keywords": [ + "BIMData", + "Viewer", + "Plugin", + "reflect" + ], + "dependencies": { + "@bimdata/design-system": "1.4.0-rc.51", + "async": "^3.2.4", + "exceljs": "^4.3.0", + "file-saver": "^2.0.5" + }, + "devDependencies": { + "@rollup/plugin-node-resolve": "^13.0.5", + "@rollup/plugin-replace": "^5.0.1", + "@rollup/plugin-url": "^6.0.0", + "rollup": "^2.35.1", + "rollup-plugin-commonjs": "^10.1.0", + "rollup-plugin-scss": "^3.0.0", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-vue": "^5.1.9", + "sass": "^1.42.1" + } +} diff --git a/src/plugins/reflect/rollup.config.js b/src/plugins/reflect/rollup.config.js new file mode 100644 index 00000000..a9a79f74 --- /dev/null +++ b/src/plugins/reflect/rollup.config.js @@ -0,0 +1,37 @@ +import VuePlugin from 'rollup-plugin-vue'; +import scssPlugin from 'rollup-plugin-scss'; +import url from '@rollup/plugin-url'; +import { terser } from 'rollup-plugin-terser'; +import commonjs from 'rollup-plugin-commonjs'; +import { nodeResolve } from '@rollup/plugin-node-resolve'; +import replace from '@rollup/plugin-replace'; + +const isProduction = (process.env.BUILD === 'production'); + +const plugins = [ + replace({ + 'process.env.NODE_ENV': JSON.stringify('production'), + }), + VuePlugin(), + scssPlugin(), + commonjs(), + nodeResolve(), + url({ + limit: 100 * 1024 *1024, + include: ['assets/*'] + }), +]; + +if (isProduction) { + plugins.push(terser()); +} + +export default { + input: 'src/reflect.plugin.js', + output: { + file: 'dist/reflect.plugin.js', + format: 'esm', + sourcemap: !isProduction, + }, + plugins +}; diff --git a/src/plugins/reflect/src/.archived/AddRuleReflect.vue b/src/plugins/reflect/src/.archived/AddRuleReflect.vue new file mode 100644 index 00000000..7790c879 --- /dev/null +++ b/src/plugins/reflect/src/.archived/AddRuleReflect.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/src/plugins/reflect/src/.archived/Reflect.vue b/src/plugins/reflect/src/.archived/Reflect.vue new file mode 100644 index 00000000..005e7139 --- /dev/null +++ b/src/plugins/reflect/src/.archived/Reflect.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/src/plugins/reflect/src/.archived/Rules.scss b/src/plugins/reflect/src/.archived/Rules.scss new file mode 100644 index 00000000..83b1c315 --- /dev/null +++ b/src/plugins/reflect/src/.archived/Rules.scss @@ -0,0 +1,41 @@ +.rules { + height: 100%; + display: flex; + flex-direction: column; + gap: var(--spacing-unit); + + &__header { + display: flex; + gap: var(--spacing-unit); + } + + &__body { + flex-grow: 1; + + .validation-table { + height: 100%; + + ::v-deep .bimdata-table__container { + height: 100%; + } + } + + .validation-status-cell { + height: 35px; + border-bottom: 1px solid var(--color-white); + display: flex; + justify-content: center; + align-items: center; + + &.valid { + background-color: #42B983; + color: var(--color-white); + } + + &.not-valid { + background-color: #DB0F0F; + color: var(--color-white); + } + } + } +} diff --git a/src/plugins/reflect/src/.archived/Rules.vue b/src/plugins/reflect/src/.archived/Rules.vue new file mode 100644 index 00000000..d30065f2 --- /dev/null +++ b/src/plugins/reflect/src/.archived/Rules.vue @@ -0,0 +1,483 @@ + + + + + diff --git a/src/plugins/reflect/src/.archived/ViewLinkCell.vue b/src/plugins/reflect/src/.archived/ViewLinkCell.vue new file mode 100644 index 00000000..366d1c9a --- /dev/null +++ b/src/plugins/reflect/src/.archived/ViewLinkCell.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/plugins/reflect/src/.archived/functions_exceljs.js b/src/plugins/reflect/src/.archived/functions_exceljs.js new file mode 100644 index 00000000..09e7c2ae --- /dev/null +++ b/src/plugins/reflect/src/.archived/functions_exceljs.js @@ -0,0 +1,296 @@ +/** + * Sub-function to autofitColums function + * @param {*} ws + * @param {*} col1 + * @param {*} col2 + * @param {*} cb + */ +function eachColumnInRange(ws, col1, col2, cb) { + for (let c = col1; c <= col2; c++) { + let col = ws.getColumn(c); + cb(col); + } +} + +/** + * Function autofitColumns auto-adjust the length of the cell accordingly to the column max length + * @param {*} ws + */ +export default function autofitColumns(ws) { + // no good way to get text widths + eachColumnInRange(ws, 1, ws.columnCount, (column) => { + let maxWidth = 10; + column.eachCell((cell) => { + if (!cell.isMerged && cell.value) { + // doesn't handle merged cells + + let text = ''; + if (typeof cell.value != 'object') { + // string, number, ... + text = cell.value.toString(); + } else if (cell.value.richText) { + // richText + text = cell.value.richText.reduce((text, obj) => text + obj.text.toString(), ''); + } + + // handle new lines -> don't forget to set wrapText: true + let values = text.split(/[\n\r]+/); + + for (let value of values) { + let width = value.length; + + if (cell.font && cell.font.bold) { + width *= 1.08; // bolding increases width + } + + maxWidth = Math.max(maxWidth, width); + } + } + }); + + maxWidth += 0.71; // compensate for observed reduction + maxWidth += 1; // buffer space + + column.width = maxWidth; + }); +} + +/** + * Function setPageBreak define the page Break in the Excel file + * @param {*} ws + * @param {*} alertData + * @param {*} alert + */ +function setPageBreak(ws, alertData, alert) { + // Set Print Area for a sheet + let rowBreak = 0; + if (alert.ALTXLSBREAK) { + let xlsBreak = JSON.parse(alert.ALTXLSBREAK); + //console.log(' parsing ALTXLSBREAK : ' + JSON.stringify(xlsBreak)); + for (let i = 0; i < xlsBreak.pageBreak.length; i++) { + if (xlsBreak.pageBreak[i].hasOwnProperty('every')) { + for (let j = xlsBreak.pageBreak[i].row; j < alertData.length; j += every) { + rowBreak = +xlsBreak.pageBreak[i].row; + //console.log('Adding Page break @ row :' + rowBreak); + ws.getRow(rowBreak + j).addPageBreak(); + } + } else { + rowBreak = +xlsBreak.pageBreak[i].row; + //console.log('Adding Page break @ row :' + rowBreak); + ws.getRow(rowBreak).addPageBreak(); + } + } + } +} + +/** + * Function formatXLS define the conditional rule in FormatRule for the worksheet + * @param {*} worksheet + * @param {*} formatRule + */ +function formatXLS(worksheet, dataRows, formatRule) { + if (formatRule) { + console.log('alert', 'formatting EXCEL : ' + JSON.stringify(formatRule), 'alert', 1); + + // preserve newlines, etc - use valid JSON + formatRule = formatRule + .replace(/\\n/g, '\\n') + .replace(/\\'/g, "\\'") + .replace(/\\"/g, '\\"') + .replace(/\\&/g, '\\&') + .replace(/\\r/g, '\\r') + .replace(/\\t/g, '\\t') + .replace(/\\b/g, '\\b') + .replace(/\\f/g, '\\f') + .replace(/null/g, ''); + // remove non-printable and other non-valid JSON chars + formatRule = formatRule.replace(/[\u0000-\u0019]+/g, ''); + + let cellRuleXLS = JSON.parse(formatRule); + if (cellRuleXLS != null) { + //console.log('alert', 'formatting EXCEL : ' + JSON.stringify(cellRuleXLS), 'alert', 1); + for (let i = 0; i < cellRuleXLS.conditionalRule.length; i++) { + let row = 0; + let maxRow = 1; + let every = 1; + if (cellRuleXLS.conditionalRule[i].easeRule.repeat === '1') { + row = +cellRuleXLS.conditionalRule[i].easeRule.lineStart; + if (cellRuleXLS.conditionalRule[i].easeRule.hasOwnProperty('lineStop')) { + maxRow = +cellRuleXLS.conditionalRule[i].easeRule.lineStop + 1; + } else { + maxRow = dataRows.length + row + 1; + } + every = +cellRuleXLS.conditionalRule[i].easeRule.every; + } + //worksheet.getRow(32).addPageBreak(); + for (let k = row; k < maxRow; k += every) { + if (cellRuleXLS.conditionalRule[i].hasOwnProperty('rules')) { + for (let j = 0; j < cellRuleXLS.conditionalRule[i].rules.length; j++) { + let reference = + cellRuleXLS.conditionalRule[i].easeRule.columnStart + k + ':' + cellRuleXLS.conditionalRule[i].easeRule.columnEnd + k; + if (cellRuleXLS.conditionalRule[i].rules[j].ref.length > 0 && maxRow == 1) { + reference = cellRuleXLS.conditionalRule[i].rules[j].ref; + } + for (let l = 0; l < cellRuleXLS.conditionalRule[i].rules[j].rule.length; l++) { + if (cellRuleXLS.conditionalRule[i].rules[j].rule[l].hasOwnProperty('formulae')) { + worksheet.addConditionalFormatting({ + ref: reference, + rules: [ + { + type: cellRuleXLS.conditionalRule[i].rules[j].rule[l].type, + formulae: cellRuleXLS.conditionalRule[i].rules[j].rule[l].formulae, + style: cellRuleXLS.conditionalRule[i].rules[j].rule[l].style, + }, + ], + }); + } + + if ( + cellRuleXLS.conditionalRule[i].rules[j].rule[l].hasOwnProperty('operator') && + cellRuleXLS.conditionalRule[i].rules[j].rule[l].hasOwnProperty('style') + ) { + worksheet.addConditionalFormatting({ + ref: reference, + rules: [ + { + type: cellRuleXLS.conditionalRule[i].rules[j].rule[l].type, + operator: cellRuleXLS.conditionalRule[i].rules[j].rule[l].operator, + style: cellRuleXLS.conditionalRule[i].rules[j].rule[l].style, + }, + ], + }); + } + if (cellRuleXLS.conditionalRule[i].rules[j].rule[l].hasOwnProperty('cfvo')) { + worksheet.addConditionalFormatting({ + ref: reference, + rules: [ + { + type: cellRuleXLS.conditionalRule[i].rules[j].rule[l].type, + operator: cellRuleXLS.conditionalRule[i].rules[j].rule[l].operator, + cfvo: cellRuleXLS.conditionalRule[i].rules[j].rule[l].cfvo, + color: cellRuleXLS.conditionalRule[i].rules[j].rule[l].color, + }, + ], + }); + } + + /*console.log('Ref : ' + reference); + console.log('j : ' + j);*/ + //console.log('rules : ' + JSON.stringify(cellRuleXLS.conditionalRule[i].rules[j]) ); + /*console.log('type : ' + cellRuleXLS.conditionalRule[i].rules[j].rule[l].type); + console.log('operator : ' + cellRuleXLS.conditionalRule[i].rules[j].rule[l].operator); + console.log('style : ' + cellRuleXLS.conditionalRule[i].rules[j].rule[l].style);*/ + } + } + } + if (cellRuleXLS.conditionalRule[i].hasOwnProperty('style')) { + // Code to parse the first letter column to the end + for ( + let m = cellRuleXLS.conditionalRule[i].easeRule.columnStart.charCodeAt(0); + m <= cellRuleXLS.conditionalRule[i].easeRule.columnEnd.charCodeAt(0); + m++ + ) { + //console.log('process...'); + //console.log('Lattre : ' + String.fromCharCode(m)); + let cellToFormat = String.fromCharCode(m) + k + ''; + worksheet.getCell(cellToFormat).style = cellRuleXLS.conditionalRule[i].style; + //worksheet.getCell(cellToFormat).value.result=undefined; + if (!Number.isNaN(parseFloat(worksheet.getCell(cellToFormat).value))) { + let value = parseFloat(worksheet.getCell(cellToFormat).value); + + worksheet.getCell(cellToFormat).value = value / 100; + } + //worksheet.getCell(cellToFormat).value=parseFloat(worksheet.getCell(cellToFormat).value)/100; + } + } + } + } + } + } +} + +/** + * Function setXLSHeader define top X rows header in the template report + * @param {*} worksheet + * @param {*} alertDataHeader + */ +function setXLSHeader(worksheet, alertData, extensionHeader) { + /** + * Excel file + * 4 first rows are the header reports + * Starting line 5 the table is deployed + * + */ + let tableRow = 5; + + worksheet.getCell('B2').value = 'Report Title'; + + worksheet.getCell('C2').value = alertData[0].ALTSUBJECT + ' ' + extensionHeader; + worksheet.getCell('C3').value = alertData[0].ALTCONTENT; + worksheet.mergeCells('C2', 'G2'); + worksheet.mergeCells('C3', 'G3'); + + worksheet.getCell('H2').value = 'Report ID'; + worksheet.getCell('I2').value = alertData[0].ALTID; + worksheet.mergeCells('I2', 'K2'); + worksheet.mergeCells('I3', 'K3'); + worksheet.getCell('H3').value = 'Report date'; + worksheet.getCell('I3').value = new Date(); + worksheet.getCell('I2').alignment = { vertical: 'top', horizontal: 'left' }; + worksheet.getCell('I3').alignment = { vertical: 'top', horizontal: 'left' }; + + for (let i = 0; i < tableRow; i++) { + worksheet.getRow(i).fill = { + type: 'pattern', + pattern: 'lightTrellis', + fgColor: { argb: 'FFFFFFFF' }, + bgColor: { argb: '04225E80' }, + }; + } + + // Styling the header + worksheet.getCell('B2').font = { + name: 'Arial', + family: 4, + color: { argb: 'FFFFFFFF' }, + size: 11, + underline: false, + bold: true, + }; + worksheet.getCell('H2').font = worksheet.getCell('B2').font; + worksheet.getCell('H3').font = worksheet.getCell('B2').font; + + worksheet.getCell('C2').font = { + name: 'Arial', + family: 4, + color: { argb: 'FFFFFFFF' }, + size: 14, + underline: false, + bold: true, + }; + + worksheet.getCell('C3').font = { + name: 'Arial', + family: 4, + color: { argb: '000000' }, + size: 14, + underline: false, + bold: false, + }; + + worksheet.getCell('I2').font = worksheet.getCell('C2').font; + worksheet.getCell('I3').font = worksheet.getCell('C2').font; +} + +/** + * Function setXLSProperties define the EXCEL file property + * @param {*} workbook + */ +function setXLSProperties(workbook) { + workbook.creator = 'B&B SYMPHONY LLC'; + workbook.lastModifiedBy = 'B&B SYMPHONY LLC'; + workbook.created = new Date(); + workbook.modified = new Date(); + workbook.lastPrinted = new Date(); + workbook.calcProperties.fullCalcOnLoad = true; +} diff --git a/src/plugins/reflect/src/.archived/icon.svg b/src/plugins/reflect/src/.archived/icon.svg new file mode 100644 index 00000000..9825006e --- /dev/null +++ b/src/plugins/reflect/src/.archived/icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/plugins/reflect/src/.archived/my_parser.js b/src/plugins/reflect/src/.archived/my_parser.js new file mode 100644 index 00000000..a95ad88e --- /dev/null +++ b/src/plugins/reflect/src/.archived/my_parser.js @@ -0,0 +1,8231 @@ +// +// Lark.js stand-alone parser +//=============================== + +"use strict"; + +/** + This is the main entrypoint into the generated Lark parser. + + @param {object} options An object with the following optional properties: + + - transformer: an object of {rule: callback}, or an instance of Transformer + - propagate_positions (bool): should all tree nodes calculate line/column info? + - tree_class (Tree): a class that extends Tree, to be used for creating the parse tree. + - debug (bool): in case of error, should the parser output debug info to the console? + + @returns {Lark} an object which provides the following methods: + + - parse + - parse_interactive + - lex + +*/ +function get_parser(options = {}) { + if ( + options.transformer && + options.transformer.constructor.name === "object" + ) { + options.transformer = Transformer.fromObj(options.transformer); + } + + return Lark._load_from_dict({ data: DATA, memo: MEMO, ...options }); +} + +const NO_VALUE = {}; +class _Decoratable {} +const Discard = {}; + +// +// Implementation of Scanner + module emulation for Python's stdlib re +// ------------------------------------------------------------------------- + +const re = { + escape(string) { + // See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + }, + compile(regex, flags) { + // May throw re.error + return new RegExp(regex, flags); + }, + error: SyntaxError, +}; + +function _get_match(re_, regexp, s, flags) { + const m = re_.compile(regexp, flags).exec(s); + if (m != null) return m[0]; +} + +class Scanner { + constructor(terminals, g_regex_flags, re_, use_bytes, match_whole = false) { + this.terminals = terminals; + this.g_regex_flags = g_regex_flags; + this.re_ = re_; + this.use_bytes = use_bytes; + this.match_whole = match_whole; + this.allowed_types = new Set(this.terminals.map(t => t.name)); + + this._regexps = this._build_mres(terminals); + } + + _build_mres(terminals) { + // TODO deal with priorities! + let postfix = this.match_whole ? "$" : ""; + let patterns_by_flags = segment_by_key(terminals, t => + t.pattern.flags.join("") + ); + + let regexps = []; + for (let [flags, patterns] of patterns_by_flags) { + const pattern = patterns + .map(t => `(?<${t.name}>${t.pattern.to_regexp() + postfix})`) + .join("|"); + regexps.push(new RegExp(pattern, this.g_regex_flags + flags + "y")); + } + + return regexps; + } + + match(text, pos) { + for (const re of this._regexps) { + re.lastIndex = pos; + let m = re.exec(text); + if (m) { + // Find group. Ugly hack, but javascript is forcing my hand. + let group = null; + for (let [k, v] of Object.entries(m.groups)) { + if (v) { + group = k; + break; + } + } + return [m[0], group]; + } + } + } +} +// +// Start of library code +// -------------------------- + +const util = null; + +class ABC {} + +const NotImplemented = {}; + +function dict_items(d) { + return Object.entries(d); +} +function dict_keys(d) { + return Object.keys(d); +} +function dict_values(d) { + return Object.values(d); +} + +function dict_pop(d, key) { + if (key === undefined) { + key = Object.keys(d)[0]; + } + let value = d[key]; + delete d[key]; + return value; +} + +function dict_get(d, key, otherwise = null) { + return d[key] || otherwise; +} + +function dict_update(self, other) { + if (self.constructor.name === "Map") { + for (const [k, v] of dict_items(other)) { + self.set(k, v); + } + } else { + for (const [k, v] of dict_items(other)) { + self[k] = v; + } + } +} + +function make_constructor(cls) { + return function () { + return new cls(...arguments); + }; +} + +function range(start, end) { + if (end === undefined) { + end = start; + start = 0; + } + const res = []; + for (let i = start; i < end; i++) res.push(i); + return res; +} + +function format(s) { + let counter = 0; + let args = [...arguments].slice(1); + + return s.replace(/%([sr])/g, function () { + const t = arguments[1]; + const item = args[counter++]; + if (t === "r") { + return util + ? util.inspect(item, false, null, true) + : JSON.stringify(item, null, 0); + } else { + return item; + } + }); +} + +function union(setA, setB) { + let _union = new Set(setA); + for (const elem of setB) { + _union.add(elem); + } + return _union; +} + +function intersection(setA, setB) { + let _intersection = new Set(); + for (const elem of setB) { + if (setA.has(elem)) { + _intersection.add(elem); + } + } + return _intersection; +} + +function set_subtract(a, b) { + return [...a].filter(e => !b.has(e)); +} + +function dict(d) { + return { ...d }; +} + +function bool(x) { + return !!x; +} + +function new_object(cls) { + return Object.create(cls.prototype); +} + +function copy(obj) { + if (typeof obj == "object") { + let empty_clone = Object.create(Object.getPrototypeOf(obj)); + return Object.assign(empty_clone, obj); + } + return obj; +} + +function map_pop(key) { + let value = this.get(key); + this.delete(key); + return value; +} + +function hash(x) { + return x; +} +function tuple(x) { + return x; +} +function frozenset(x) { + return new Set(x); +} + +function is_dict(x) { + return x && x.constructor.name === "Object"; +} +function is_array(x) { + return x && x.constructor.name === "Array"; +} +function callable(x) { + return typeof x === "function"; +} + +function* enumerate(it, start = 0) { + // Taken from: https://stackoverflow.com/questions/34336960/what-is-the-es6-equivalent-of-python-enumerate-for-a-sequence + let i = start; + for (const x of it) { + yield [i++, x]; + } +} + +function any(lst) { + for (const item of lst) { + if (item) { + return true; + } + } + return false; +} + +function all(lst) { + for (const item of lst) { + if (!item) { + return false; + } + } + return true; +} + +function filter(pred, lst) { + return lst.filter(pred || bool); +} + +function partial(f) { + let args = [...arguments].slice(1); + return function () { + return f(...args, ...arguments); + }; +} + +class EOFError extends Error {} + +function last_item(a) { + return a[a.length - 1]; +} + +function callable_class(cls) { + return function () { + let inst = new cls(...arguments); + return inst.__call__.bind(inst); + }; +} + +function list_repeat(list, count) { + return Array.from({ length: count }, () => list).flat(); +} + +function isupper(a) { + return /^[A-Z_$]*$/.test(a); +} + +function rsplit(s, delimiter, limit) { + const arr = s.split(delimiter); + return limit ? arr.splice(-limit - 1) : arr; +} + +function str_count(s, substr) { + let re = new RegExp(substr, "g"); + return (s.match(re) || []).length; +} + +function list_count(list, elem) { + let count = 0; + for (const e of list) { + if (e === elem) { + count++; + } + } + return count; +} + +function isSubset(subset, set) { + for (let elem of subset) { + if (!set.has(elem)) { + return false; + } + } + return true; +} + +function* segment_by_key(a, key) { + let buffer = []; + let last_k = null; + for (const item of a) { + const k = key(item); + if (last_k && k != last_k) { + yield [last_k, buffer]; + buffer = []; + } + buffer.push(item); + last_k = k; + } + yield [last_k, buffer]; +} + +// -------------------------- +// End of library code +// + +// +// Exceptions +// + +class LarkError extends Error { + // pass +} + +class ConfigurationError extends LarkError { + // pass +} + +function assert_config(value, options, msg = "Got %r, expected one of %s") { + if (!options.includes(value)) { + throw new ConfigurationError(format(msg, value, options)); + } +} + +class GrammarError extends LarkError { + // pass +} + +class ParseError extends LarkError { + // pass +} + +class LexError extends LarkError { + // pass +} + +/** + UnexpectedInput Error. + + Used as a base class for the following exceptions: + + - ``UnexpectedCharacters``: The lexer encountered an unexpected string + - ``UnexpectedToken``: The parser received an unexpected token + - ``UnexpectedEOF``: The parser expected a token, but the input ended + + After catching one of these exceptions, you may call the following helper methods to create a nicer error message. + +*/ + +class UnexpectedInput extends LarkError { + // const pos_in_stream = null; + // const _terminals_by_name = null; + + constructor() { + super(); + // invokes the setter + this.pos_in_stream = null; + this._terminals_by_name = null; + this.UnexpectedInput(); + + } + /** + Returns a pretty string pinpointing the error in the text, + with span amount of context characters around it. + + Note: + The parser doesn't hold a copy of the text it has to parse, + so you have to provide it again + + */ + get_context(text, span = 40) { + let after, before; + let pos = this.pos_in_stream; + let start = max(pos - span, 0); + let end = pos + span; + if (!(text instanceof bytes)) { + before = last_item(rsplit(text.slice(start, pos), "\n", 1)); + after = text.slice(pos, end).split("\n", 1)[0]; + return before + after + "\n" + " " * before.expandtabs().length + "^\n"; + } else { + before = last_item(rsplit(text.slice(start, pos), "\n", 1)); + after = text.slice(pos, end).split("\n", 1)[0]; + return ( + before + + after + + "\n" + + " " * before.expandtabs().length + + "^\n" + ).decode("ascii", "backslashreplace"); + } + } + + /** + Allows you to detect what's wrong in the input text by matching + against example errors. + + Given a parser instance and a dictionary mapping some label with + some malformed syntax examples, it'll return the label for the + example that bests matches the current error. The function will + iterate the dictionary until it finds a matching error, and + return the corresponding value. + + For an example usage, see `examples/error_reporting_lalr.py` + + Parameters: + parse_fn: parse function (usually ``lark_instance.parse``) + examples: dictionary of ``{'example_string': value}``. + use_accepts: Recommended to keep this as ``use_accepts=True``. + + */ + match_examples(parse_fn, examples, token_type_match_fallback = false) { + if (is_dict(examples)) { + examples = dict_items(examples); + } + + let candidate = [null, false]; + for (const [i, [label, example]] of enumerate(examples)) { + for (const [j, malformed] of enumerate(example)) { + try { + parse_fn(malformed); + } catch (ut) { + if (ut instanceof UnexpectedInput) { + if (ut.state.eq(this.state)) { + if (ut.token === this.token) { + return label; + } + + if (token_type_match_fallback) { + // Fallback to token types match + if ( + ut.token.type === this.token.type && + !last_item(candidate) + ) { + candidate = [label, true]; + } + } + if (candidate[0] === null) { + candidate = [label, false]; + } + } + } else { + throw ut; + } + } + } + } + + return candidate[0]; + } + + _format_expected(expected) { + let d; + if (this._terminals_by_name) { + d = this._terminals_by_name; + expected = expected.map(t_name => + t_name in d ? d[t_name].user_repr() : t_name + ); + } + + return format("Expected one of: \n\t* %s\n", expected.join("\n\t* ")); + } +} + +/** + An exception that is raised by the parser, when the input ends while it still expects a token. + +*/ + +class UnexpectedEOF extends UnexpectedInput { + constructor(expected, state = null, terminals_by_name = null) { + super(); + this.expected = expected; + this.state = state; + this.token = new Token("", ""); + // , line=-1, column=-1, pos_in_stream=-1) + this.pos_in_stream = -1; + this.line = -1; + this.column = -1; + this._terminals_by_name = terminals_by_name; + } +} + +/** + An exception that is raised by the lexer, when it cannot match the next + string of characters to any of its terminals. + +*/ + +class UnexpectedCharacters extends UnexpectedInput { + constructor({ + seq, + lex_pos, + line, + column, + allowed = null, + considered_tokens = null, + state = null, + token_history = null, + terminals_by_name = null, + considered_rules = null, + } = {}) { + super(); + // TODO considered_tokens and allowed can be figured out using state + this.line = line; + this.column = column; + this.pos_in_stream = lex_pos; + this.state = state; + this._terminals_by_name = terminals_by_name; + this.allowed = allowed; + this.considered_tokens = considered_tokens; + this.considered_rules = considered_rules; + this.token_history = token_history; + this.char = seq[lex_pos]; + // this._context = this.get_context(seq); + } +} + +/** + An exception that is raised by the parser, when the token it received + doesn't match any valid step forward. + + Parameters: + token: The mismatched token + expected: The set of expected tokens + considered_rules: Which rules were considered, to deduce the expected tokens + state: A value representing the parser state. Do not rely on its value or type. + interactive_parser: An instance of ``InteractiveParser``, that is initialized to the point of failture, + and can be used for debugging and error handling. + + Note: These parameters are available as attributes of the instance. + +*/ + +class UnexpectedToken extends UnexpectedInput { + constructor({ + token, + expected, + considered_rules = null, + state = null, + interactive_parser = null, + terminals_by_name = null, + token_history = null, + } = {}) { + super(); + // TODO considered_rules and expected can be figured out using state + this.line = (token && token["line"]) || "?"; + this.column = (token && token["column"]) || "?"; + this.pos_in_stream = (token && token["start_pos"]) || null; + this.state = state; + this.token = token; + this.expected = expected; + // XXX deprecate? `accepts` is better + this._accepts = NO_VALUE; + this.considered_rules = considered_rules; + this.interactive_parser = interactive_parser; + this._terminals_by_name = terminals_by_name; + this.token_history = token_history; + } + + get accepts() { + if (this._accepts === NO_VALUE) { + this._accepts = + this.interactive_parser && this.interactive_parser.accepts(); + } + + return this._accepts; + } +} + +/** + VisitError is raised when visitors are interrupted by an exception + + It provides the following attributes for inspection: + + Parameters: + rule: the name of the visit rule that failed + obj: the tree-node or token that was being processed + orig_exc: the exception that cause it to fail + + Note: These parameters are available as attributes + +*/ + +class VisitError extends LarkError { + constructor(rule, obj, orig_exc) { + let message = format( + 'Error trying to process rule "%s":\n\n%s', + rule, + orig_exc + ); + super(message); + this.rule = rule; + this.obj = obj; + this.orig_exc = orig_exc; + } +} + +// +// Utils +// + +function classify(seq, key = null, value = null) { + let k, v; + let d = new Map(); + for (const item of seq) { + k = key !== null ? key(item) : item; + v = value !== null ? value(item) : item; + if (d.has(k)) { + d.get(k).push(v); + } else { + d.set(k, [v]); + } + } + + return d; +} + +function _deserialize(data, namespace, memo) { + let class_; + if (is_dict(data)) { + if ("__type__" in data) { + // Object + class_ = namespace[data["__type__"]]; + return class_.deserialize(data, memo); + } else if ("@" in data) { + return memo[data["@"]]; + } + + return Object.fromEntries( + dict_items(data).map(([key, value]) => [ + key, + _deserialize(value, namespace, memo), + ]) + ); + } else if (is_array(data)) { + return data.map(value => _deserialize(value, namespace, memo)); + } + + return data; +} + +/** + Safe-ish serialization interface that doesn't rely on Pickle + + Attributes: + __serialize_fields__ (List[str]): Fields (aka attributes) to serialize. + __serialize_namespace__ (list): List of classes that deserialization is allowed to instantiate. + Should include all field types that aren't builtin types. + +*/ + +class Serialize { + static deserialize(data, memo) { + const cls = this; + let fields = cls && cls["__serialize_fields__"]; + if ("@" in data) { + return memo[data["@"]]; + } + + let inst = new_object(cls); + for (const f of fields) { + if (data && f in data) { + inst[f] = _deserialize(data[f], NAMESPACE, memo); + } else { + throw new KeyError("Cannot find key for class", cls, e); + } + } + + if ("_deserialize" in inst) { + inst._deserialize(); + } + + return inst; + } +} + +/** + A version of serialize that memoizes objects to reduce space +*/ + +class SerializeMemoizer extends Serialize { + static get __serialize_fields__() { + return ["memoized"]; + } + constructor(types_to_memoize) { + super(); + this.types_to_memoize = tuple(types_to_memoize); + this.memoized = new Enumerator(); + } + + in_types(value) { + return value instanceof this.types_to_memoize; + } + + serialize() { + return _serialize(this.memoized.reversed(), null); + } + + static deserialize(data, namespace, memo) { + const cls = this; + return _deserialize(data, namespace, memo); + } +} + +// +// Tree +// + +class Meta { + constructor() { + this.empty = true; + } +} + +/** + The main tree class. + + Creates a new tree, and stores "data" and "children" in attributes of the same name. + Trees can be hashed and compared. + + Parameters: + data: The name of the rule or alias + children: List of matched sub-rules and terminals + meta: Line & Column numbers (if ``propagate_positions`` is enabled). + meta attributes: line, column, start_pos, end_line, end_column, end_pos + +*/ + +class Tree { + constructor(data, children, meta = null) { + this.data = data; + this.children = children; + this._meta = meta; + } + + get meta() { + if (this._meta === null) { + this._meta = new Meta(); + } + + return this._meta; + } + + repr() { + return format("Tree(%r, %r)", this.data, this.children); + } + + _pretty_label() { + return this.data; + } + + _pretty(level, indent_str) { + if (this.children.length === 1 && !(this.children[0] instanceof Tree)) { + return [ + list_repeat(indent_str, level).join(""), + this._pretty_label(), + "\t", + format("%s", this.children[0].value), + "\n", + ]; + } + + let l = [ + list_repeat(indent_str, level).join(""), + this._pretty_label(), + "\n", + ]; + for (const n of this.children) { + if (n instanceof Tree) { + l.push(...n._pretty(level + 1, indent_str)); + } else { + l.push( + ...[ + list_repeat(indent_str, level + 1).join(""), + format("%s", n.value), + "\n", + ] + ); + } + } + + return l; + } + + /** + Returns an indented string representation of the tree. + + Great for debugging. + + */ + pretty(indent_str = " ") { + return this._pretty(0, indent_str).join(""); + } + + eq(other) { + if ( + other && + this && + other && + this && + other.children && + this.children && + other.data && + this.data + ) { + return this.data === other.data && this.children === other.children; + } else { + return false; + } + } + + /** + Depth-first iteration. + + Iterates over all the subtrees, never returning to the same node twice (Lark's parse-tree is actually a DAG). + + */ + iter_subtrees() { + let queue = [this]; + let subtrees = new Map(); + for (const subtree of queue) { + subtrees.set(subtree, subtree); + queue.push( + ...[...subtree.children] + .reverse() + .filter(c => c instanceof Tree && !subtrees.has(c)) + .map(c => c) + ); + } + + queue = undefined; + return [...subtrees.values()].reverse(); + } + + /** + Returns all nodes of the tree that evaluate pred(node) as true. + */ + find_pred(pred) { + return filter(pred, this.iter_subtrees()); + } + + /** + Returns all nodes of the tree whose data equals the given data. + */ + find_data(data) { + return this.find_pred(t => t.data === data); + } + + /** + Return all values in the tree that evaluate pred(value) as true. + + This can be used to find all the tokens in the tree. + + Example: + >>> all_tokens = tree.scan_values(lambda v: isinstance(v, Token)) + + */ + *scan_values(pred) { + for (const c of this.children) { + if (c instanceof Tree) { + for (const t of c.scan_values(pred)) { + yield t; + } + } else { + if (pred(c)) { + yield c; + } + } + } + } + + /** + Breadth-first iteration. + + Iterates over all the subtrees, return nodes in order like pretty() does. + + */ + *iter_subtrees_topdown() { + let node; + let stack = [this]; + while (stack.length) { + node = stack.pop(); + if (!(node instanceof Tree)) { + continue; + } + + yield node; + for (const child of [...node.children].reverse()) { + stack.push(child); + } + } + } + + copy() { + return type(this)(this.data, this.children); + } + + set(data, children) { + this.data = data; + this.children = children; + } +} + +// +// Visitors +// + +/** + Transformers work bottom-up (or depth-first), starting with visiting the leaves and working + their way up until ending at the root of the tree. + + For each node visited, the transformer will call the appropriate method (callbacks), according to the + node's ``data``, and use the returned value to replace the node, thereby creating a new tree structure. + + Transformers can be used to implement map & reduce patterns. Because nodes are reduced from leaf to root, + at any point the callbacks may assume the children have already been transformed (if applicable). + + If the transformer cannot find a method with the right name, it will instead call ``__default__``, which by + default creates a copy of the node. + + To discard a node, return Discard (``lark.visitors.Discard``). + + ``Transformer`` can do anything ``Visitor`` can do, but because it reconstructs the tree, + it is slightly less efficient. + + A transformer without methods essentially performs a non-memoized partial deepcopy. + + All these classes implement the transformer interface: + + - ``Transformer`` - Recursively transforms the tree. This is the one you probably want. + - ``Transformer_InPlace`` - Non-recursive. Changes the tree in-place instead of returning new instances + - ``Transformer_InPlaceRecursive`` - Recursive. Changes the tree in-place instead of returning new instances + + Parameters: + visit_tokens (bool, optional): Should the transformer visit tokens in addition to rules. + Setting this to ``False`` is slightly faster. Defaults to ``True``. + (For processing ignored tokens, use the ``lexer_callbacks`` options) + + +*/ + +class Transformer extends _Decoratable { + static get __visit_tokens__() { + return true; + } + // For backwards compatibility + + constructor(visit_tokens = true) { + super(); + this.__visit_tokens__ = visit_tokens; + } + + static fromObj(obj, ...args) { + class _T extends this {} + for (let [k, v] of Object.entries(obj)) { + _T.prototype[k] = v; + } + return new _T(...args); + } + + _call_userfunc(tree, new_children = null) { + let f, wrapper; + // Assumes tree is already transformed + let children = new_children !== null ? new_children : tree.children; + if (tree && tree.data && this && this[tree.data]) { + f = this && this[tree.data]; + try { + wrapper = (f && f["visit_wrapper"]) || null; + if (wrapper !== null) { + return f.visit_wrapper(f, tree.data, children, tree.meta); + } else { + return f(children); + } + } catch (e) { + if (e instanceof GrammarError) { + throw e; + } else if (e instanceof Error) { + throw new VisitError(tree.data, tree, e); + } else { + throw e; + } + } + } else { + return this.__default__(tree.data, children, tree.meta); + } + } + + _call_userfunc_token(token) { + let f; + if (token && token.type && this && this[token.type]) { + f = this && this[token.type]; + try { + return f(token); + } catch (e) { + if (e instanceof GrammarError) { + throw e; + } else if (e instanceof Error) { + throw new VisitError(token.type, token, e); + } else { + throw e; + } + } + } else { + return this.__default_token__(token); + } + } + + *_transform_children(children) { + let res; + for (const c of children) { + if (c instanceof Tree) { + res = this._transform_tree(c); + } else if (this.__visit_tokens__ && c instanceof Token) { + res = this._call_userfunc_token(c); + } else { + res = c; + } + if (res !== Discard) { + yield res; + } + } + } + + _transform_tree(tree) { + let children = [...this._transform_children(tree.children)]; + return this._call_userfunc(tree, children); + } + + /** + Transform the given tree, and return the final result + */ + transform(tree) { + return this._transform_tree(tree); + } + + /** + Default function that is called if there is no attribute matching ``data`` + + Can be overridden. Defaults to creating a new copy of the tree node (i.e. ``return Tree(data, children, meta)``) + + */ + __default__(data, children, meta) { + return new Tree(data, children, meta); + } + + /** + Default function that is called if there is no attribute matching ``token.type`` + + Can be overridden. Defaults to returning the token as-is. + + */ + __default_token__(token) { + return token; + } +} + +/** + Same as Transformer, but non-recursive, and changes the tree in-place instead of returning new instances + + Useful for huge trees. Conservative in memory. + +*/ + +class Transformer_InPlace extends Transformer { + _transform_tree(tree) { + // Cancel recursion + return this._call_userfunc(tree); + } + + transform(tree) { + for (const subtree of tree.iter_subtrees()) { + subtree.children = [...this._transform_children(subtree.children)]; + } + + return this._transform_tree(tree); + } +} + +/** + Same as Transformer but non-recursive. + + Like Transformer, it doesn't change the original tree. + + Useful for huge trees. + +*/ + +class Transformer_NonRecursive extends Transformer { + transform(tree) { + let args, res, size; + // Tree to postfix + let rev_postfix = []; + let q = [tree]; + while (q.length) { + const t = q.pop(); + rev_postfix.push(t); + if (t instanceof Tree) { + q.push(...t.children); + } + } + + // Postfix to tree + let stack = []; + for (const x of [...rev_postfix].reverse()) { + if (x instanceof Tree) { + size = x.children.length; + if (size) { + args = stack.slice(-size); + stack.splice(-size); + } else { + args = []; + } + res = this._call_userfunc(x, args); + if (res !== Discard) { + stack.push(res); + } + } else if (this.__visit_tokens__ && x instanceof Token) { + res = this._call_userfunc_token(x); + if (res !== Discard) { + stack.push(res); + } + } else { + stack.push(x); + } + } + + let [t] = stack; + // We should have only one tree remaining + return t; + } +} + +/** + Same as Transformer, recursive, but changes the tree in-place instead of returning new instances +*/ + +class Transformer_InPlaceRecursive extends Transformer { + _transform_tree(tree) { + tree.children = [...this._transform_children(tree.children)]; + return this._call_userfunc(tree); + } +} + +// Visitors + +class VisitorBase { + _call_userfunc(tree) { + const callback = this[tree.data]; + if (callback) { + return callback(tree); + } else { + return this.__default__(tree); + } + } + + /** + Default function that is called if there is no attribute matching ``tree.data`` + + Can be overridden. Defaults to doing nothing. + + */ + __default__(tree) { + return tree; + } + + __class_getitem__(_) { + return cls; + } +} + +/** + Tree visitor, non-recursive (can handle huge trees). + + Visiting a node calls its methods (provided by the user via inheritance) according to ``tree.data`` + +*/ + +class Visitor extends VisitorBase { + /** + Visits the tree, starting with the leaves and finally the root (bottom-up) + */ + visit(tree) { + for (const subtree of tree.iter_subtrees()) { + this._call_userfunc(subtree); + } + + return tree; + } + + /** + Visit the tree, starting at the root, and ending at the leaves (top-down) + */ + visit_topdown(tree) { + for (const subtree of tree.iter_subtrees_topdown()) { + this._call_userfunc(subtree); + } + + return tree; + } +} + +/** + Bottom-up visitor, recursive. + + Visiting a node calls its methods (provided by the user via inheritance) according to ``tree.data`` + + Slightly faster than the non-recursive version. + +*/ + +class Visitor_Recursive extends VisitorBase { + /** + Visits the tree, starting with the leaves and finally the root (bottom-up) + */ + visit(tree) { + for (const child of tree.children) { + if (child instanceof Tree) { + this.visit(child); + } + } + + this._call_userfunc(tree); + return tree; + } + + /** + Visit the tree, starting at the root, and ending at the leaves (top-down) + */ + visit_topdown(tree) { + this._call_userfunc(tree); + for (const child of tree.children) { + if (child instanceof Tree) { + this.visit_topdown(child); + } + } + + return tree; + } +} + +/** + Interpreter walks the tree starting at the root. + + Visits the tree, starting with the root and finally the leaves (top-down) + + For each tree node, it calls its methods (provided by user via inheritance) according to ``tree.data``. + + Unlike ``Transformer`` and ``Visitor``, the Interpreter doesn't automatically visit its sub-branches. + The user has to explicitly call ``visit``, ``visit_children``, or use the ``@visit_children_decor``. + This allows the user to implement branching and loops. + +*/ + +class Interpreter extends _Decoratable { + visit(tree) { + if (tree.data in this) { + return this[tree.data](tree); + } else { + return this.__default__(tree); + } + } + + visit_children(tree) { + return tree.children.map(child => + child instanceof Tree ? this.visit(child) : child + ); + } + + __default__(tree) { + return this.visit_children(tree); + } +} + +// +// Grammar +// + +var TOKEN_DEFAULT_PRIORITY = 0; +class Symbol extends Serialize { + // is_term = NotImplemented; + + constructor(name) { + super(); + this.name = name; + this.is_term = NotImplemented; + + } + + eq(other) { + return this.is_term === other.is_term && this.name === other.name; + } + + repr() { + return format("%s(%r)", type(this).name, this.name); + } + + static get fullrepr() { + return property(__repr__); + } + get fullrepr() { + return this.constructor.fullrepr; + } + renamed(f) { + return type(this)(f(this.name)); + } +} + +class Terminal extends Symbol { + static get __serialize_fields__() { + return ["name", "filter_out"]; + } + get is_term() { + return true; + } + + constructor(name, filter_out = false) { + super(); + this.name = name; + this.filter_out = filter_out; + } + + get fullrepr() { + return format("%s(%r, %r)", type(this).name, this.name, this.filter_out); + } + + renamed(f) { + return type(this)(f(this.name), this.filter_out); + } +} + +class NonTerminal extends Symbol { + static get __serialize_fields__() { + return ["name"]; + } + get is_term() { + return false; + } +} + +class RuleOptions extends Serialize { + static get __serialize_fields__() { + return [ + "keep_all_tokens", + "expand1", + "priority", + "template_source", + "empty_indices", + ]; + } + constructor( + keep_all_tokens = false, + expand1 = false, + priority = null, + template_source = null, + empty_indices = [] + ) { + super(); + this.keep_all_tokens = keep_all_tokens; + this.expand1 = expand1; + this.priority = priority; + this.template_source = template_source; + this.empty_indices = empty_indices; + } + + repr() { + return format( + "RuleOptions(%r, %r, %r, %r)", + this.keep_all_tokens, + this.expand1, + this.priority, + this.template_source + ); + } +} + +/** + + origin : a symbol + expansion : a list of symbols + order : index of this expansion amongst all rules of the same name + +*/ + +class Rule extends Serialize { + static get __serialize_fields__() { + return ["origin", "expansion", "order", "alias", "options"]; + } + static get __serialize_namespace__() { + return [Terminal, NonTerminal, RuleOptions]; + } + constructor(origin, expansion, order = 0, alias = null, options = null) { + super(); + this.origin = origin; + this.expansion = expansion; + this.alias = alias; + this.order = order; + this.options = options || new RuleOptions(); + this._hash = hash([this.origin, tuple(this.expansion)]); + } + + _deserialize() { + this._hash = hash([this.origin, tuple(this.expansion)]); + } + + repr() { + return format( + "Rule(%r, %r, %r, %r)", + this.origin, + this.expansion, + this.alias, + this.options + ); + } + + eq(other) { + if (!(other instanceof Rule)) { + return false; + } + + return this.origin === other.origin && this.expansion === other.expansion; + } +} + +// +// Lexer +// + +// Lexer Implementation + +class Pattern extends Serialize { + constructor(value, flags = [], raw = null) { + super(); + this.value = value; + this.flags = frozenset(flags); + this.raw = raw; + } + + repr() { + return repr(this.to_regexp()); + } + + eq(other) { + return ( + type(this) === type(other) && + this.value === other.value && + this.flags === other.flags + ); + } + + to_regexp() { + throw new NotImplementedError(); + } + + get min_width() { + throw new NotImplementedError(); + } + + get max_width() { + throw new NotImplementedError(); + } + + _get_flags(value) { + return value; + } +} + +class PatternStr extends Pattern { + static get __serialize_fields__() { + return ["value", "flags"]; + } + static get type() { + return "str"; + } + to_regexp() { + return this._get_flags(re.escape(this.value)); + } + + get min_width() { + return this.value.length; + } + + get max_width() { + return this.value.length; + } +} + +class PatternRE extends Pattern { + static get __serialize_fields__() { + return ["value", "flags", "_width"]; + } + static get type() { + return "re"; + } + to_regexp() { + return this._get_flags(this.value); + } + + _get_width() { + if (this._width === null) { + this._width = get_regexp_width(this.to_regexp()); + } + + return this._width; + } + + get min_width() { + return this._get_width()[0]; + } + + get max_width() { + return this._get_width()[1]; + } +} + +class TerminalDef extends Serialize { + static get __serialize_fields__() { + return ["name", "pattern", "priority"]; + } + static get __serialize_namespace__() { + return [PatternStr, PatternRE]; + } + constructor(name, pattern, priority = TOKEN_DEFAULT_PRIORITY) { + super(); + this.name = name; + this.pattern = pattern; + this.priority = priority; + } + + repr() { + return format("%s(%r, %r)", type(this).name, this.name, this.pattern); + } + + user_repr() { + if (this.name.startsWith("__")) { + // We represent a generated terminal + return this.pattern.raw || this.name; + } else { + return this.name; + } + } +} + +/** + A string with meta-information, that is produced by the lexer. + + When parsing text, the resulting chunks of the input that haven't been discarded, + will end up in the tree as Token instances. The Token class inherits from Python's ``str``, + so normal string comparisons and operations will work as expected. + + Attributes: + type: Name of the token (as specified in grammar) + value: Value of the token (redundant, as ``token.value == token`` will always be true) + start_pos: The index of the token in the text + line: The line of the token in the text (starting with 1) + column: The column of the token in the text (starting with 1) + end_line: The line where the token ends + end_column: The next column after the end of the token. For example, + if the token is a single character with a column value of 4, + end_column will be 5. + end_pos: the index where the token ends (basically ``start_pos + len(token)``) + +*/ + +class Token { + constructor( + type_, + value, + start_pos = null, + line = null, + column = null, + end_line = null, + end_column = null, + end_pos = null + ) { + this.type = type_; + this.start_pos = start_pos; + this.value = value; + this.line = line; + this.column = column; + this.end_line = end_line; + this.end_column = end_column; + this.end_pos = end_pos; + } + + update(type_ = null, value = null) { + return Token.new_borrow_pos( + type_ !== null ? type_ : this.type, + value !== null ? value : this.value, + this + ); + } + + static new_borrow_pos(type_, value, borrow_t) { + const cls = this; + return new cls( + type_, + value, + borrow_t.start_pos, + borrow_t.line, + borrow_t.column, + borrow_t.end_line, + borrow_t.end_column, + borrow_t.end_pos + ); + } + + repr() { + return format("Token(%r, %r)", this.type, this.value); + } + + eq(other) { + if (other instanceof Token && this.type !== other.type) { + return false; + } + + return str.__eq__(this, other); + } + + static get __hash__() { + return str.__hash__; + } +} + +class LineCounter { + constructor(newline_char) { + this.newline_char = newline_char; + this.char_pos = 0; + this.line = 1; + this.column = 1; + this.line_start_pos = 0; + } + + eq(other) { + if (!(other instanceof LineCounter)) { + return NotImplemented; + } + + return ( + this.char_pos === other.char_pos && + this.newline_char === other.newline_char + ); + } + + /** + Consume a token and calculate the new line & column. + + As an optional optimization, set test_newline=False if token doesn't contain a newline. + + */ + feed(token, test_newline = true) { + let newlines; + if (test_newline) { + newlines = str_count(token, this.newline_char); + if (newlines) { + this.line += newlines; + this.line_start_pos = + this.char_pos + token.lastIndexOf(this.newline_char) + 1; + } + } + + this.char_pos += token.length; + this.column = this.char_pos - this.line_start_pos + 1; + } +} + +class _UnlessCallback { + constructor(scanner) { + this.scanner = scanner; + } + + __call__(t) { + let _value; + let res = this.scanner.match(t.value, 0); + if (res) { + [_value, t.type] = res; + } + + return t; + } +} + +const UnlessCallback = callable_class(_UnlessCallback); +class _CallChain { + constructor(callback1, callback2, cond) { + this.callback1 = callback1; + this.callback2 = callback2; + this.cond = cond; + } + + __call__(t) { + let t2 = this.callback1(t); + return this.cond(t2) ? this.callback2(t) : t2; + } +} + +const CallChain = callable_class(_CallChain); +function _create_unless(terminals, g_regex_flags, re_, use_bytes) { + let s, unless; + let tokens_by_type = classify(terminals, t => t.pattern.constructor.type); + let embedded_strs = new Set(); + let callback = {}; + for (const retok of tokens_by_type.get("re") || []) { + unless = []; + for (const strtok of tokens_by_type.get("str") || []) { + if (strtok.priority !== retok.priority) { + continue; + } + + s = strtok.pattern.value; + if (s === _get_match(re_, retok.pattern.to_regexp(), s, g_regex_flags)) { + unless.push(strtok); + if ( + isSubset(new Set(strtok.pattern.flags), new Set(retok.pattern.flags)) + ) { + embedded_strs.add(strtok); + } + } + } + + if (unless.length) { + callback[retok.name] = new UnlessCallback( + new Scanner(unless, g_regex_flags, re_, use_bytes, true) + ); + } + } + + let new_terminals = terminals.filter(t => !embedded_strs.has(t)).map(t => t); + return [new_terminals, callback]; +} + +/** + Expressions that may indicate newlines in a regexp: + - newlines (\n) + - escaped newline (\\n) + - anything but ([^...]) + - any-char (.) when the flag (?s) exists + - spaces (\s) + + */ +function _regexp_has_newline(r) { + return ( + r.includes("\n") || + r.includes("\\n") || + r.includes("\\s") || + r.includes("[^") || + (r.includes("(?s") && r.includes(".")) + ); +} + +/** + Represents the current state of the lexer as it scans the text + (Lexer objects are only instanciated per grammar, not per text) + +*/ + +class LexerState { + constructor(text, line_ctr = null, last_token = null) { + this.text = text; + this.line_ctr = line_ctr || new LineCounter("\n"); + this.last_token = last_token; + } + + eq(other) { + if (!(other instanceof LexerState)) { + return NotImplemented; + } + + return ( + this.text === other.text && + this.line_ctr === other.line_ctr && + this.last_token === other.last_token + ); + } +} + +/** + A thread that ties a lexer instance and a lexer state, to be used by the parser + +*/ + +class LexerThread { + constructor(lexer, lexer_state) { + this.lexer = lexer; + this.state = lexer_state; + } + + static from_text(lexer, text) { + return new this(lexer, new LexerState(text)); + } + + lex(parser_state) { + return this.lexer.lex(this.state, parser_state); + } +} + +/** + Lexer interface + + Method Signatures: + lex(self, lexer_state, parser_state) -> Iterator[Token] + +*/ + +class Lexer extends ABC { + lex(lexer_state, parser_state) { + return NotImplemented; + } +} + +function sort_by_key_tuple(arr, key) { + arr.sort((a, b) => { + let ta = key(a); + let tb = key(b); + for (let i = 0; i < ta.length; i++) { + if (ta[i] > tb[i]) { + return 1; + } else if (ta[i] < tb[i]) { + return -1; + } + } + return 0; + }); +} + +class BasicLexer extends Lexer { + constructor(conf) { + super(); + let terminals = [...conf.terminals]; + this.re = conf.re_module; + if (!conf.skip_validation) { + // Sanitization + for (const t of terminals) { + try { + this.re.compile(t.pattern.to_regexp(), conf.g_regex_flags); + } catch (e) { + if (e instanceof this.re.error) { + throw new LexError( + format("Cannot compile token %s: %s", t.name, t.pattern) + ); + } else { + throw e; + } + } + if (t.pattern.min_width === 0) { + throw new LexError( + format( + "Lexer does not allow zero-width terminals. (%s: %s)", + t.name, + t.pattern + ) + ); + } + } + + if (!(new Set(conf.ignore) <= new Set(terminals.map(t => t.name)))) { + throw new LexError( + format( + "Ignore terminals are not defined: %s", + set_subtract( + new Set(conf.ignore), + new Set(terminals.map(t => t.name)) + ) + ) + ); + } + } + + // Init + this.newline_types = frozenset( + terminals + .filter(t => _regexp_has_newline(t.pattern.to_regexp())) + .map(t => t.name) + ); + this.ignore_types = frozenset(conf.ignore); + sort_by_key_tuple(terminals, x => [ + -x.priority, + -x.pattern.max_width, + -x.pattern.value.length, + x.name, + ]); + this.terminals = terminals; + this.user_callbacks = conf.callbacks; + this.g_regex_flags = conf.g_regex_flags; + this.use_bytes = conf.use_bytes; + this.terminals_by_name = conf.terminals_by_name; + this._scanner = null; + } + + _build_scanner() { + let terminals; + [terminals, this.callback] = _create_unless( + this.terminals, + this.g_regex_flags, + this.re, + this.use_bytes + ); + for (const [type_, f] of dict_items(this.user_callbacks)) { + if (type_ in this.callback) { + // Already a callback there, probably UnlessCallback + this.callback[type_] = new CallChain( + this.callback[type_], + f, + t => t.type === type_ + ); + } else { + this.callback[type_] = f; + } + } + + this._scanner = new Scanner( + terminals, + this.g_regex_flags, + this.re, + this.use_bytes + ); + } + + get scanner() { + if (this._scanner === null) { + this._build_scanner(); + } + + return this._scanner; + } + + match(text, pos) { + return this.scanner.match(text, pos); + } + + *lex(state, parser_state) { + try { + while (true) { + yield this.next_token(state, parser_state); + } + } catch (e) { + if (e instanceof EOFError) { + // pass + } else { + throw e; + } + } + } + + next_token(lex_state, parser_state = null) { + let allowed, res, t, t2, type_, value; + let line_ctr = lex_state.line_ctr; + while (line_ctr.char_pos < lex_state.text.length) { + res = this.match(lex_state.text, line_ctr.char_pos); + if (!res) { + allowed = set_subtract(this.scanner.allowed_types, this.ignore_types); + if (!allowed) { + allowed = new Set([""]); + } + + throw new UnexpectedCharacters({ + seq: lex_state.text, + lex_pos: line_ctr.char_pos, + line: line_ctr.line, + column: line_ctr.column, + allowed: allowed, + token_history: lex_state.last_token && [lex_state.last_token], + state: parser_state, + terminals_by_name: this.terminals_by_name, + }); + } + + let [value, type_] = res; + if (!this.ignore_types.has(type_)) { + t = new Token( + type_, + value, + line_ctr.char_pos, + line_ctr.line, + line_ctr.column + ); + line_ctr.feed(value, this.newline_types.has(type_)); + t.end_line = line_ctr.line; + t.end_column = line_ctr.column; + t.end_pos = line_ctr.char_pos; + if (t.type in this.callback) { + t = this.callback[t.type](t); + if (!(t instanceof Token)) { + throw new LexError( + format("Callbacks must return a token (returned %r)", t) + ); + } + } + + lex_state.last_token = t; + return t; + } else { + if (type_ in this.callback) { + t2 = new Token( + type_, + value, + line_ctr.char_pos, + line_ctr.line, + line_ctr.column + ); + this.callback[type_](t2); + } + + line_ctr.feed(value, this.newline_types.has(type_)); + } + } + + // EOF + throw new EOFError(this); + } +} + +class ContextualLexer extends Lexer { + constructor({ conf, states, always_accept = [] } = {}) { + super(); + let accepts, key, lexer, lexer_conf; + let terminals = [...conf.terminals]; + let terminals_by_name = conf.terminals_by_name; + let trad_conf = copy(conf); + trad_conf.terminals = terminals; + let lexer_by_tokens = new Map(); + this.lexers = {}; + for (let [state, accepts] of dict_items(states)) { + key = frozenset(accepts); + if (lexer_by_tokens.has(key)) { + lexer = lexer_by_tokens.get(key); + } else { + accepts = union(new Set(accepts), [ + ...new Set(conf.ignore), + ...new Set(always_accept), + ]); + lexer_conf = copy(trad_conf); + lexer_conf.terminals = [...accepts] + .filter(n => n in terminals_by_name) + .map(n => terminals_by_name[n]); + lexer = new BasicLexer(lexer_conf); + lexer_by_tokens.set(key, lexer); + } + this.lexers[state] = lexer; + } + + this.root_lexer = new BasicLexer(trad_conf); + } + + *lex(lexer_state, parser_state) { + let last_token, lexer, token; + try { + while (true) { + lexer = this.lexers[parser_state.position]; + yield lexer.next_token(lexer_state, parser_state); + } + } catch (e) { + if (e instanceof EOFError) { + // pass + } else if (e instanceof UnexpectedCharacters) { + // In the contextual lexer, UnexpectedCharacters can mean that the terminal is defined, but not in the current context. + // This tests the input against the global context, to provide a nicer error. + try { + last_token = lexer_state.last_token; + // Save last_token. Calling root_lexer.next_token will change this to the wrong token + token = this.root_lexer.next_token(lexer_state, parser_state); + throw new UnexpectedToken({ + token: token, + expected: e.allowed, + state: parser_state, + token_history: [last_token], + terminals_by_name: this.root_lexer.terminals_by_name, + }); + } catch (e) { + if (e instanceof UnexpectedCharacters) { + throw e; + } else { + throw e; + } + } + } else { + throw e; + } + } + } +} + +// +// Common +// + +class LexerConf extends Serialize { + static get __serialize_fields__() { + return ["terminals", "ignore", "g_regex_flags", "use_bytes", "lexer_type"]; + } + static get __serialize_namespace__() { + return [TerminalDef]; + } + constructor({ + terminals, + re_module, + ignore = [], + postlex = null, + callbacks = null, + g_regex_flags = "", + skip_validation = false, + use_bytes = false, + } = {}) { + super(); + this.terminals = terminals; + this.terminals_by_name = Object.fromEntries( + this.terminals.map(t => [t.name, t]) + ); + this.ignore = ignore; + this.postlex = postlex; + this.callbacks = Object.keys(callbacks).length || {}; + this.g_regex_flags = g_regex_flags; + this.re_module = re_module; + this.skip_validation = skip_validation; + this.use_bytes = use_bytes; + this.lexer_type = null; + } + + _deserialize() { + this.terminals_by_name = Object.fromEntries( + this.terminals.map(t => [t.name, t]) + ); + } +} + +class ParserConf extends Serialize { + static get __serialize_fields__() { + return ["rules", "start", "parser_type"]; + } + constructor(rules, callbacks, start) { + super(); + this.rules = rules; + this.callbacks = callbacks; + this.start = start; + this.parser_type = null; + } +} + +// +// Parse Tree Builder +// + +class _ExpandSingleChild { + constructor(node_builder) { + this.node_builder = node_builder; + } + + __call__(children) { + if (children.length === 1) { + return children[0]; + } else { + return this.node_builder(children); + } + } +} + +const ExpandSingleChild = callable_class(_ExpandSingleChild); +class _PropagatePositions { + constructor(node_builder, node_filter = null) { + this.node_builder = node_builder; + this.node_filter = node_filter; + } + + __call__(children) { + let first_meta, last_meta, res_meta; + let res = this.node_builder(children); + if (res instanceof Tree) { + // Calculate positions while the tree is streaming, according to the rule: + // - nodes start at the start of their first child's container, + // and end at the end of their last child's container. + // Containers are nodes that take up space in text, but have been inlined in the tree. + + res_meta = res.meta; + first_meta = this._pp_get_meta(children); + if (first_meta !== null) { + if (!("line" in res_meta)) { + // meta was already set, probably because the rule has been inlined (e.g. `?rule`) + res_meta.line = + (first_meta && first_meta["container_line"]) || first_meta.line; + res_meta.column = + (first_meta && first_meta["container_column"]) || first_meta.column; + res_meta.start_pos = + (first_meta && first_meta["container_start_pos"]) || + first_meta.start_pos; + res_meta.empty = false; + } + + res_meta.container_line = + (first_meta && first_meta["container_line"]) || first_meta.line; + res_meta.container_column = + (first_meta && first_meta["container_column"]) || first_meta.column; + } + + last_meta = this._pp_get_meta([...children].reverse()); + if (last_meta !== null) { + if (!("end_line" in res_meta)) { + res_meta.end_line = + (last_meta && last_meta["container_end_line"]) || + last_meta.end_line; + res_meta.end_column = + (last_meta && last_meta["container_end_column"]) || + last_meta.end_column; + res_meta.end_pos = + (last_meta && last_meta["container_end_pos"]) || last_meta.end_pos; + res_meta.empty = false; + } + + res_meta.container_end_line = + (last_meta && last_meta["container_end_line"]) || last_meta.end_line; + res_meta.container_end_column = + (last_meta && last_meta["container_end_column"]) || + last_meta.end_column; + } + } + + return res; + } + + _pp_get_meta(children) { + for (const c of children) { + if (this.node_filter !== null && !this.node_filter(c)) { + continue; + } + + if (c instanceof Tree) { + if (!c.meta.empty) { + return c.meta; + } + } else if (c instanceof Token) { + return c; + } + } + } +} + +const PropagatePositions = callable_class(_PropagatePositions); +function make_propagate_positions(option) { + if (callable(option)) { + return partial({ + unknown_param_0: PropagatePositions, + node_filter: option, + }); + } else if (option === true) { + return PropagatePositions; + } else if (option === false) { + return null; + } + + throw new ConfigurationError( + format("Invalid option for propagate_positions: %r", option) + ); +} + +class _ChildFilter { + constructor(to_include, append_none, node_builder) { + this.node_builder = node_builder; + this.to_include = to_include; + this.append_none = append_none; + } + + __call__(children) { + let filtered = []; + for (const [i, to_expand, add_none] of this.to_include) { + if (add_none) { + filtered.push(...list_repeat([null], add_none)); + } + + if (to_expand) { + filtered.push(...children[i].children); + } else { + filtered.push(children[i]); + } + } + + if (this.append_none) { + filtered.push(...list_repeat([null], this.append_none)); + } + + return this.node_builder(filtered); + } +} + +const ChildFilter = callable_class(_ChildFilter); +/** + Optimized childfilter for LALR (assumes no duplication in parse tree, so it's safe to change it) +*/ + +class _ChildFilterLALR extends _ChildFilter { + __call__(children) { + let filtered = []; + for (const [i, to_expand, add_none] of this.to_include) { + if (add_none) { + filtered.push(...list_repeat([null], add_none)); + } + + if (to_expand) { + if (filtered.length) { + filtered.push(...children[i].children); + } else { + // Optimize for left-recursion + filtered = children[i].children; + } + } else { + filtered.push(children[i]); + } + } + + if (this.append_none) { + filtered.push(...list_repeat([null], this.append_none)); + } + + return this.node_builder(filtered); + } +} + +const ChildFilterLALR = callable_class(_ChildFilterLALR); +/** + Optimized childfilter for LALR (assumes no duplication in parse tree, so it's safe to change it) +*/ + +class _ChildFilterLALR_NoPlaceholders extends _ChildFilter { + constructor(to_include, node_builder) { + super(); + this.node_builder = node_builder; + this.to_include = to_include; + } + + __call__(children) { + let filtered = []; + for (const [i, to_expand] of this.to_include) { + if (to_expand) { + if (filtered.length) { + filtered.push(...children[i].children); + } else { + // Optimize for left-recursion + filtered = children[i].children; + } + } else { + filtered.push(children[i]); + } + } + + return this.node_builder(filtered); + } +} + +const ChildFilterLALR_NoPlaceholders = callable_class( + _ChildFilterLALR_NoPlaceholders +); +function _should_expand(sym) { + return !sym.is_term && sym.name.startsWith("_"); +} + +function maybe_create_child_filter( + expansion, + keep_all_tokens, + ambiguous, + _empty_indices +) { + let empty_indices, s; + // Prepare empty_indices as: How many Nones to insert at each index? + if (_empty_indices.length) { + s = _empty_indices.map(b => (0 + b).toString()).join(""); + empty_indices = s.split("0").map(ones => ones.length); + } else { + empty_indices = list_repeat([0], expansion.length + 1); + } + let to_include = []; + let nones_to_add = 0; + for (const [i, sym] of enumerate(expansion)) { + nones_to_add += empty_indices[i]; + if (keep_all_tokens || !(sym.is_term && sym.filter_out)) { + to_include.push([i, _should_expand(sym), nones_to_add]); + nones_to_add = 0; + } + } + + nones_to_add += empty_indices[expansion.length]; + if ( + _empty_indices.length || + to_include.length < expansion.length || + any(to_include.map(([i, to_expand, _]) => to_expand)) + ) { + if ((_empty_indices.length || ambiguous).length) { + return partial( + ambiguous ? ChildFilter : ChildFilterLALR, + to_include, + nones_to_add + ); + } else { + // LALR without placeholders + return partial( + ChildFilterLALR_NoPlaceholders, + to_include.map(([i, x, _]) => [i, x]) + ); + } + } +} + +/** + + Propagate ambiguous intermediate nodes and their derivations up to the + current rule. + + In general, converts + + rule + _iambig + _inter + someChildren1 + ... + _inter + someChildren2 + ... + someChildren3 + ... + + to + + _ambig + rule + someChildren1 + ... + someChildren3 + ... + rule + someChildren2 + ... + someChildren3 + ... + rule + childrenFromNestedIambigs + ... + someChildren3 + ... + ... + + propagating up any nested '_iambig' nodes along the way. + +*/ + +function inplace_transformer(func) { + function f(children) { + // function name in a Transformer is a rule name. + let tree = new Tree(func.name, children); + return func(tree); + } + + f = wraps(func)(f); + return f; +} + +function apply_visit_wrapper(func, name, wrapper) { + if (wrapper === _vargs_meta || wrapper === _vargs_meta_inline) { + throw new NotImplementedError( + "Meta args not supported for internal transformer" + ); + } + + function f(children) { + return wrapper(func, name, children, null); + } + + f = wraps(func)(f); + return f; +} + +class ParseTreeBuilder { + constructor( + rules, + tree_class, + propagate_positions = false, + ambiguous = false, + maybe_placeholders = false + ) { + this.tree_class = tree_class; + this.propagate_positions = propagate_positions; + this.ambiguous = ambiguous; + this.maybe_placeholders = maybe_placeholders; + this.rule_builders = [...this._init_builders(rules)]; + } + + *_init_builders(rules) { + let expand_single_child, keep_all_tokens, options, wrapper_chain; + let propagate_positions = make_propagate_positions( + this.propagate_positions + ); + for (const rule of rules) { + options = rule.options; + keep_all_tokens = options.keep_all_tokens; + expand_single_child = options.expand1; + wrapper_chain = [ + ...filter(null, [ + expand_single_child && !rule.alias && ExpandSingleChild, + maybe_create_child_filter( + rule.expansion, + keep_all_tokens, + this.ambiguous, + this.maybe_placeholders ? options.empty_indices : [] + ), + propagate_positions, + ]), + ]; + yield [rule, wrapper_chain]; + } + } + + create_callback(transformer = null) { + let f, user_callback_name, wrapper; + let callbacks = new Map(); + for (const [rule, wrapper_chain] of this.rule_builders) { + user_callback_name = + rule.alias || rule.options.template_source || rule.origin.name; + if (transformer && transformer[user_callback_name]) { + f = transformer && transformer[user_callback_name]; + wrapper = (f && f["visit_wrapper"]) || null; + if (wrapper !== null) { + f = apply_visit_wrapper(f, user_callback_name, wrapper); + } else if (transformer instanceof Transformer_InPlace) { + f = inplace_transformer(f); + } + } else { + f = partial(this.tree_class, user_callback_name); + } + for (const w of wrapper_chain) { + f = w(f); + } + + if (callbacks.has(rule)) { + throw new GrammarError(format("Rule '%s' already exists", rule)); + } + + callbacks.set(rule, f); + } + + return callbacks; + } +} + +// +// Lalr Parser +// + +class LALR_Parser extends Serialize { + constructor({ parser_conf, debug = false } = {}) { + super(); + let analysis = new LALR_Analyzer({ + unknown_param_0: parser_conf, + debug: debug, + }); + analysis.compute_lalr(); + let callbacks = parser_conf.callbacks; + this._parse_table = analysis.parse_table; + this.parser_conf = parser_conf; + this.parser = new _Parser(analysis.parse_table, callbacks, debug); + } + + static deserialize(data, memo, callbacks, debug = false) { + const cls = this; + let inst = new_object(cls); + inst._parse_table = IntParseTable.deserialize(data, memo); + inst.parser = new _Parser(inst._parse_table, callbacks, debug); + return inst; + } + + serialize(memo) { + return this._parse_table.serialize(memo); + } + + parse_interactive(lexer, start) { + return this.parser.parse({ + lexer: lexer, + start: start, + start_interactive: true, + }); + } + + parse({ lexer, start, on_error = null } = {}) { + let e, p, s; + try { + return this.parser.parse({ lexer: lexer, start: start }); + } catch (e) { + if (e instanceof UnexpectedInput) { + if (on_error === null) { + throw e; + } + + while (true) { + if (e instanceof UnexpectedCharacters) { + s = e.interactive_parser.lexer_thread.state; + p = s.line_ctr.char_pos; + } + + if (!on_error(e)) { + throw e; + } + + if (e instanceof UnexpectedCharacters) { + // If user didn't change the character position, then we should + if (p === s.line_ctr.char_pos) { + s.line_ctr.feed(s.text.slice(p, p + 1)); + } + } + + try { + return e.interactive_parser.resume_parse(); + } catch (e2) { + if (e2 instanceof UnexpectedToken) { + if ( + e instanceof UnexpectedToken && + e.token.type === e2.token.type && + e2.token.type === "$END" && + e.interactive_parser.eq(e2.interactive_parser) + ) { + // Prevent infinite loop + throw e2; + } + + e = e2; + } else if (e2 instanceof UnexpectedCharacters) { + e = e2; + } else { + throw e2; + } + } + } + } else { + throw e; + } + } + } +} + +class ParseConf { + constructor(parse_table, callbacks, start) { + this.parse_table = parse_table; + this.start_state = this.parse_table.start_states[start]; + this.end_state = this.parse_table.end_states[start]; + this.states = this.parse_table.states; + this.callbacks = callbacks; + this.start = start; + } +} + +class ParserState { + constructor(parse_conf, lexer, state_stack = null, value_stack = null) { + this.parse_conf = parse_conf; + this.lexer = lexer; + this.state_stack = state_stack || [this.parse_conf.start_state]; + this.value_stack = value_stack || []; + } + + get position() { + return last_item(this.state_stack); + } + + // Necessary for match_examples() to work + + eq(other) { + if (!(other instanceof ParserState)) { + return NotImplemented; + } + + return ( + this.state_stack.length === other.state_stack.length && + this.position === other.position + ); + } + + copy() { + return copy(this); + } + + feed_token(token, is_end = false) { + let _action, action, arg, expected, new_state, rule, s, size, state, value; + let state_stack = this.state_stack; + let value_stack = this.value_stack; + let states = this.parse_conf.states; + let end_state = this.parse_conf.end_state; + let callbacks = this.parse_conf.callbacks; + while (true) { + state = last_item(state_stack); + if (token.type in states[state]) { + [action, arg] = states[state][token.type]; + } else { + expected = new Set( + dict_keys(states[state]) + .filter(s => isupper(s)) + .map(s => s) + ); + throw new UnexpectedToken({ + token: token, + expected: expected, + state: this, + interactive_parser: null, + }); + } + if (action === Shift) { + // shift once and return + + state_stack.push(arg); + value_stack.push( + !(token.type in callbacks) ? token : callbacks[token.type](token) + ); + return; + } else { + // reduce+shift as many times as necessary + rule = arg; + size = rule.expansion.length; + if (size) { + s = value_stack.slice(-size); + state_stack.splice(-size); + value_stack.splice(-size); + } else { + s = []; + } + value = callbacks.get(rule)(s); + [_action, new_state] = states[last_item(state_stack)][rule.origin.name]; + state_stack.push(new_state); + value_stack.push(value); + if (is_end && last_item(state_stack) === end_state) { + return last_item(value_stack); + } + } + } + } +} + +class _Parser { + constructor(parse_table, callbacks, debug = false) { + this.parse_table = parse_table; + this.callbacks = callbacks; + this.debug = debug; + } + + parse({ + lexer, + start, + value_stack = null, + state_stack = null, + start_interactive = false, + } = {}) { + let parse_conf = new ParseConf(this.parse_table, this.callbacks, start); + let parser_state = new ParserState( + parse_conf, + lexer, + state_stack, + value_stack + ); + if (start_interactive) { + return new InteractiveParser(this, parser_state, parser_state.lexer); + } + + return this.parse_from_state(parser_state); + } + + parse_from_state(state) { + let end_token, token; + // Main LALR-parser loop + try { + token = null; + for (token of state.lexer.lex(state)) { + state.feed_token(token); + } + + end_token = token + ? Token.new_borrow_pos("$END", "", token) + : new Token("$END", "", 0, 1, 1); + return state.feed_token(end_token, true); + } catch (e) { + if (e instanceof UnexpectedInput) { + try { + e.interactive_parser = new InteractiveParser( + this, + state, + state.lexer + ); + } catch (e) { + if (e instanceof ReferenceError) { + // pass + } else { + throw e; + } + } + throw e; + } else if (e instanceof Error) { + if (this.debug) { + console.log(""); + console.log("STATE STACK DUMP"); + console.log("----------------"); + for (const [i, s] of enumerate(state.state_stack)) { + console.log(format("%d)", i), s); + } + + console.log(""); + } + + throw e; + } else { + throw e; + } + } + } +} + +// +// Lalr Interactive Parser +// + +// This module provides a LALR interactive parser, which is used for debugging and error handling + +/** + InteractiveParser gives you advanced control over parsing and error handling when parsing with LALR. + + For a simpler interface, see the ``on_error`` argument to ``Lark.parse()``. + +*/ + +class InteractiveParser { + constructor(parser, parser_state, lexer_thread) { + this.parser = parser; + this.parser_state = parser_state; + this.lexer_thread = lexer_thread; + this.result = null; + } + + /** + Feed the parser with a token, and advance it to the next state, as if it received it from the lexer. + + Note that ``token`` has to be an instance of ``Token``. + + */ + feed_token(token) { + return this.parser_state.feed_token(token, token.type === "$END"); + } + + /** + Step through the different stages of the parse, by reading tokens from the lexer + and feeding them to the parser, one per iteration. + + Returns an iterator of the tokens it encounters. + + When the parse is over, the resulting tree can be found in ``InteractiveParser.result``. + + */ + *iter_parse() { + for (const token of this.lexer_thread.lex(this.parser_state)) { + yield token; + this.result = this.feed_token(token); + } + } + + /** + Try to feed the rest of the lexer state into the interactive parser. + + Note that this modifies the instance in place and does not feed an '$END' Token + + */ + exhaust_lexer() { + return [...this.iter_parse()]; + } + + /** + Feed a '$END' Token. Borrows from 'last_token' if given. + */ + feed_eof(last_token = null) { + let eof = + last_token !== null + ? Token.new_borrow_pos("$END", "", last_token) + : new Token("$END", "", 0, 1, 1); + return this.feed_token(eof); + } + + copy() { + return copy(this); + } + + eq(other) { + if (!(other instanceof InteractiveParser)) { + return false; + } + + return ( + this.parser_state === other.parser_state && + this.lexer_thread === other.lexer_thread + ); + } + + /** + Convert to an ``ImmutableInteractiveParser``. + */ + as_immutable() { + let p = copy(this); + return new ImmutableInteractiveParser( + p.parser, + p.parser_state, + p.lexer_thread + ); + } + + /** + Print the output of ``choices()`` in a way that's easier to read. + */ + pretty() { + let out = ["Parser choices:"]; + for (const [k, v] of dict_items(this.choices())) { + out.push(format("\t- %s -> %r", k, v)); + } + + out.push(format("stack size: %s", this.parser_state.state_stack.length)); + return out.join("\n"); + } + + /** + Returns a dictionary of token types, matched to their action in the parser. + + Only returns token types that are accepted by the current state. + + Updated by ``feed_token()``. + + */ + choices() { + return this.parser_state.parse_conf.parse_table.states[ + this.parser_state.position + ]; + } + + /** + Returns the set of possible tokens that will advance the parser into a new valid state. + */ + accepts() { + let new_cursor; + let accepts = new Set(); + for (const t of this.choices()) { + if (isupper(t)) { + // is terminal? + new_cursor = copy(this); + let exc = null; + try { + new_cursor.feed_token(new Token(t, "")); + } catch (e) { + exc = e; + if (e instanceof UnexpectedToken) { + // pass + } else { + throw e; + } + } + if (!exc) { + accepts.add(t); + } + } + } + + return accepts; + } + + /** + Resume automated parsing from the current state. + */ + resume_parse() { + return this.parser.parse_from_state(this.parser_state); + } +} + +/** + Same as ``InteractiveParser``, but operations create a new instance instead + of changing it in-place. + +*/ + +class ImmutableInteractiveParser extends InteractiveParser { + constructor() { + super(); + this.result = null; + + } + feed_token(token) { + let c = copy(this); + c.result = InteractiveParser.feed_token(c, token); + return c; + } + + /** + Try to feed the rest of the lexer state into the parser. + + Note that this returns a new ImmutableInteractiveParser and does not feed an '$END' Token + */ + exhaust_lexer() { + let cursor = this.as_mutable(); + cursor.exhaust_lexer(); + return cursor.as_immutable(); + } + + /** + Convert to an ``InteractiveParser``. + */ + as_mutable() { + let p = copy(this); + return new InteractiveParser(p.parser, p.parser_state, p.lexer_thread); + } +} + +// +// Lalr Analysis +// + +class Action { + constructor(name) { + this.name = name; + } + + repr() { + return this.toString(); + } +} + +var Shift = new Action("Shift"); +var Reduce = new Action("Reduce"); +class ParseTable { + constructor(states, start_states, end_states) { + this.states = states; + this.start_states = start_states; + this.end_states = end_states; + } + + serialize(memo) { + let tokens = new Enumerator(); + let states = Object.fromEntries( + dict_items(this.states).map(([state, actions]) => [ + state, + Object.fromEntries( + dict_items(actions).map(([token, [action, arg]]) => [ + dict_get(tokens, token), + action === Reduce ? [1, arg.serialize(memo)] : [0, arg], + ]) + ), + ]) + ); + return { + tokens: tokens.reversed(), + states: states, + start_states: this.start_states, + end_states: this.end_states, + }; + } + + static deserialize(data, memo) { + const cls = this; + let tokens = data["tokens"]; + let states = Object.fromEntries( + dict_items(data["states"]).map(([state, actions]) => [ + state, + Object.fromEntries( + dict_items(actions).map(([token, [action, arg]]) => [ + tokens[token], + action === 1 ? [Reduce, Rule.deserialize(arg, memo)] : [Shift, arg], + ]) + ), + ]) + ); + return new cls(states, data["start_states"], data["end_states"]); + } +} + +class IntParseTable extends ParseTable { + static from_ParseTable(parse_table) { + const cls = this; + let enum_ = [...parse_table.states]; + let state_to_idx = Object.fromEntries( + enumerate(enum_).map(([i, s]) => [s, i]) + ); + let int_states = {}; + for (let [s, la] of dict_items(parse_table.states)) { + la = Object.fromEntries( + dict_items(la).map(([k, v]) => [ + k, + v[0] === Shift ? [v[0], state_to_idx[v[1]]] : v, + ]) + ); + int_states[state_to_idx[s]] = la; + } + + let start_states = Object.fromEntries( + dict_items(parse_table.start_states).map(([start, s]) => [ + start, + state_to_idx[s], + ]) + ); + let end_states = Object.fromEntries( + dict_items(parse_table.end_states).map(([start, s]) => [ + start, + state_to_idx[s], + ]) + ); + return new cls(int_states, start_states, end_states); + } +} + +// +// Parser Frontends +// + +function _wrap_lexer(lexer_class) { + let future_interface = + (lexer_class && lexer_class["__future_interface__"]) || false; + if (future_interface) { + return lexer_class; + } else { + class CustomLexerWrapper extends Lexer { + constructor(lexer_conf) { + super(); + this.lexer = lexer_class(lexer_conf); + } + + lex(lexer_state, parser_state) { + return this.lexer.lex(lexer_state.text); + } + } + + return CustomLexerWrapper; + } +} + +class MakeParsingFrontend { + constructor(parser_type, lexer_type) { + this.parser_type = parser_type; + this.lexer_type = lexer_type; + } + + deserialize(data, memo, lexer_conf, callbacks, options) { + let parser_conf = ParserConf.deserialize(data["parser_conf"], memo); + let parser = LALR_Parser.deserialize( + data["parser"], + memo, + callbacks, + options.debug + ); + parser_conf.callbacks = callbacks; + return new ParsingFrontend({ + lexer_conf: lexer_conf, + parser_conf: parser_conf, + options: options, + parser: parser, + }); + } +} + +// ... Continued later in the module + +function _deserialize_parsing_frontend( + data, + memo, + lexer_conf, + callbacks, + options +) { + let parser_conf = ParserConf.deserialize(data["parser_conf"], memo); + let parser = LALR_Parser.deserialize( + data["parser"], + memo, + callbacks, + options.debug + ); + parser_conf.callbacks = callbacks; + return new ParsingFrontend({ + lexer_conf: lexer_conf, + parser_conf: parser_conf, + options: options, + parser: parser, + }); +} + +var _parser_creators = {}; + +class ParsingFrontend extends Serialize { + static get __serialize_fields__() { + return ["lexer_conf", "parser_conf", "parser"]; + } + constructor({ lexer_conf, parser_conf, options, parser = null } = {}) { + super(); + let create_lexer, create_parser; + this.parser_conf = parser_conf; + this.lexer_conf = lexer_conf; + this.options = options; + // Set-up parser + if (parser) { + // From cache + this.parser = parser; + } else { + create_parser = dict_get(_parser_creators, parser_conf.parser_type); + this.parser = create_parser(lexer_conf, parser_conf, options); + } + // Set-up lexer + let lexer_type = lexer_conf.lexer_type; + this.skip_lexer = false; + if (["dynamic", "dynamic_complete"].includes(lexer_type)) { + this.skip_lexer = true; + return; + } + + const lexers = { + basic: create_basic_lexer, + contextual: create_contextual_lexer, + }; + if (lexer_type in lexers) { + create_lexer = lexers[lexer_type]; + this.lexer = create_lexer( + lexer_conf, + this.parser, + lexer_conf.postlex, + options + ); + } else { + this.lexer = _wrap_lexer(lexer_type)(lexer_conf); + } + if (lexer_conf.postlex) { + this.lexer = new PostLexConnector(this.lexer, lexer_conf.postlex); + } + } + + _verify_start(start = null) { + let start_decls; + if (start === null) { + start_decls = this.parser_conf.start; + if (start_decls.length > 1) { + throw new ConfigurationError( + "Lark initialized with more than 1 possible start rule. Must specify which start rule to parse", + start_decls + ); + } + + [start] = start_decls; + } else if (!this.parser_conf.start.includes(start)) { + throw new ConfigurationError( + format( + "Unknown start rule %s. Must be one of %r", + start, + this.parser_conf.start + ) + ); + } + + return start; + } + + _make_lexer_thread(text) { + return this.skip_lexer ? text : LexerThread.from_text(this.lexer, text); + } + + parse(text, start = null, on_error = null) { + let chosen_start = this._verify_start(start); + let kw = on_error === null ? {} : { on_error: on_error }; + let stream = this._make_lexer_thread(text); + return this.parser.parse({ + lexer: stream, + start: chosen_start, + ...kw, + }); + } + + parse_interactive(text = null, start = null) { + let chosen_start = this._verify_start(start); + if (this.parser_conf.parser_type !== "lalr") { + throw new ConfigurationError( + "parse_interactive() currently only works with parser='lalr' " + ); + } + + let stream = this._make_lexer_thread(text); + return this.parser.parse_interactive(stream, chosen_start); + } +} + +function _validate_frontend_args(parser, lexer) { + let expected; + assert_config(parser, ["lalr", "earley", "cyk"]); + if (!(typeof lexer === "object")) { + // not custom lexer? + expected = { + lalr: ["basic", "contextual"], + earley: ["basic", "dynamic", "dynamic_complete"], + cyk: ["basic"], + }[parser]; + assert_config( + lexer, + expected, + format( + "Parser %r does not support lexer %%r, expected one of %%s", + parser + ) + ); + } +} + +function _get_lexer_callbacks(transformer, terminals) { + let callback; + let result = {}; + for (const terminal of terminals) { + callback = (transformer && transformer[terminal.name]) || null; + if (callback !== null) { + result[terminal.name] = callback; + } + } + + return result; +} + +class PostLexConnector { + constructor(lexer, postlexer) { + this.lexer = lexer; + this.postlexer = postlexer; + } + + lex(lexer_state, parser_state) { + let i = this.lexer.lex(lexer_state, parser_state); + return this.postlexer.process(i); + } +} + +function create_basic_lexer(lexer_conf, parser, postlex, options) { + return new BasicLexer(lexer_conf); +} + +function create_contextual_lexer(lexer_conf, parser, postlex, options) { + let states = Object.fromEntries( + dict_items(parser._parse_table.states).map(([idx, t]) => [ + idx, + [...dict_keys(t)], + ]) + ); + let always_accept = postlex ? postlex.always_accept : []; + return new ContextualLexer({ + conf: lexer_conf, + states: states, + always_accept: always_accept, + }); +} + +function create_lalr_parser(lexer_conf, parser_conf, options = null) { + let debug = options ? options.debug : false; + return new LALR_Parser({ parser_conf: parser_conf, debug: debug }); +} + +_parser_creators["lalr"] = create_lalr_parser; + +// +// Lark +// + +class PostLex extends ABC { + process(stream) { + return stream; + } + constructor(name) { + super(); + this.always_accept = []; + } +} + +/** + Specifies the options for Lark + + +*/ + +class LarkOptions extends Serialize { + + + + constructor(options_dict) { + super(); + // Adding a new option needs to be done in multiple places: + // - In the dictionary below. This is the primary truth of which options `Lark.__init__` accepts + // - In the docstring above. It is used both for the docstring of `LarkOptions` and `Lark`, and in readthedocs + // - As an attribute of `LarkOptions` above + // - Potentially in `_LOAD_ALLOWED_OPTIONS` below this class, when the option doesn't change how the grammar is loaded + // - Potentially in `lark.tools.__init__`, if it makes sense, and it can easily be passed as a cmd argument + this._defaults = { + debug: false, + keep_all_tokens: false, + tree_class: null, + cache: false, + postlex: null, + parser: "earley", + lexer: "auto", + transformer: null, + start: "start", + priority: "auto", + ambiguity: "auto", + regex: false, + propagate_positions: false, + lexer_callbacks: {}, + maybe_placeholders: true, + edit_terminals: null, + g_regex_flags: "", + use_bytes: false, + import_paths: [], + source_path: null, + _plugins: null, + }; + this.OPTIONS_DOC = ` + **=== General Options ===** + + start + The start symbol. Either a string, or a list of strings for multiple possible starts (Default: "start") + debug + Display debug information and extra warnings. Use only when debugging (Default: \`\`False\`\`) + When used with Earley, it generates a forest graph as "sppf.png", if 'dot' is installed. + transformer + Applies the transformer to every parse tree (equivalent to applying it after the parse, but faster) + propagate_positions + Propagates (line, column, end_line, end_column) attributes into all tree branches. + Accepts \`\`False\`\`, \`\`True\`\`, or a callable, which will filter which nodes to ignore when propagating. + maybe_placeholders + When \`\`True\`\`, the \`\`[]\`\` operator returns \`\`None\`\` when not matched. + When \`\`False\`\`, \`\`[]\`\` behaves like the \`\`?\`\` operator, and returns no value at all. + (default= \`\`True\`\`) + cache + Cache the results of the Lark grammar analysis, for x2 to x3 faster loading. LALR only for now. + + - When \`\`False\`\`, does nothing (default) + - When \`\`True\`\`, caches to a temporary file in the local directory + - When given a string, caches to the path pointed by the string + regex + When True, uses the \`\`regex\`\` module instead of the stdlib \`\`re\`\`. + g_regex_flags + Flags that are applied to all terminals (both regex and strings) + keep_all_tokens + Prevent the tree builder from automagically removing "punctuation" tokens (Default: \`\`False\`\`) + tree_class + Lark will produce trees comprised of instances of this class instead of the default \`\`lark.Tree\`\`. + + **=== Algorithm Options ===** + + parser + Decides which parser engine to use. Accepts "earley" or "lalr". (Default: "earley"). + (there is also a "cyk" option for legacy) + lexer + Decides whether or not to use a lexer stage + + - "auto" (default): Choose for me based on the parser + - "basic": Use a basic lexer + - "contextual": Stronger lexer (only works with parser="lalr") + - "dynamic": Flexible and powerful (only with parser="earley") + - "dynamic_complete": Same as dynamic, but tries *every* variation of tokenizing possible. + ambiguity + Decides how to handle ambiguity in the parse. Only relevant if parser="earley" + + - "resolve": The parser will automatically choose the simplest derivation + (it chooses consistently: greedy for tokens, non-greedy for rules) + - "explicit": The parser will return all derivations wrapped in "_ambig" tree nodes (i.e. a forest). + - "forest": The parser will return the root of the shared packed parse forest. + + **=== Misc. / Domain Specific Options ===** + + postlex + Lexer post-processing (Default: \`\`None\`\`) Only works with the basic and contextual lexers. + priority + How priorities should be evaluated - "auto", \`\`None\`\`, "normal", "invert" (Default: "auto") + lexer_callbacks + Dictionary of callbacks for the lexer. May alter tokens during lexing. Use with caution. + use_bytes + Accept an input of type \`\`bytes\`\` instead of \`\`str\`\`. + edit_terminals + A callback for editing the terminals before parse. + import_paths + A List of either paths or loader functions to specify from where grammars are imported + source_path + Override the source of from where the grammar was loaded. Useful for relative imports and unconventional grammar loading + **=== End of Options ===** + `; + let value; + let o = dict(options_dict); + let options = this; + for (const [name, default_] of dict_items(this._defaults)) { + if (name in o) { + value = dict_pop(o, name); + if ( + typeof default_ === "boolean" && + !["cache", "use_bytes", "propagate_positions"].includes(name) + ) { + value = bool(value); + } + } else { + value = default_; + } + options[name] = value; + } + + if (typeof options["start"] === "string") { + options["start"] = [options["start"]]; + } + + this["options"] = options; + assert_config(this.parser, ["earley", "lalr", "cyk", null]); + if (this.parser === "earley" && this.transformer) { + throw new ConfigurationError( + "Cannot specify an embedded transformer when using the Earley algorithm. " + + "Please use your transformer on the resulting parse tree, or use a different algorithm (i.e. LALR)" + ); + } + + if (Object.keys(o).length) { + throw new ConfigurationError(format("Unknown options: %s", dict_keys(o))); + } + } + + serialize(memo) { + return this.options; + } + + static deserialize(data, memo) { + const cls = this; + return new cls(data); + } +} + +// Options that can be passed to the Lark parser, even when it was loaded from cache/standalone. +// These options are only used outside of `load_grammar`. +var _LOAD_ALLOWED_OPTIONS = new Set([ + "postlex", + "transformer", + "lexer_callbacks", + "use_bytes", + "debug", + "g_regex_flags", + "regex", + "propagate_positions", + "tree_class", +]); +var _VALID_PRIORITY_OPTIONS = ["auto", "normal", "invert", null]; +var _VALID_AMBIGUITY_OPTIONS = ["auto", "resolve", "explicit", "forest"]; +/** + Main interface for the library. + + It's mostly a thin wrapper for the many different parsers, and for the tree constructor. + + Parameters: + grammar: a string or file-object containing the grammar spec (using Lark's ebnf syntax) + options: a dictionary controlling various aspects of Lark. + + Example: + >>> Lark(r'''start: "foo" ''') + Lark(...) + +*/ + +class Lark extends Serialize { + static get __serialize_fields__() { + return ["parser", "rules", "options"]; + } + _build_lexer(dont_ignore = false) { + let lexer_conf = this.lexer_conf; + if (dont_ignore) { + lexer_conf = copy(lexer_conf); + lexer_conf.ignore = []; + } + + return new BasicLexer(lexer_conf); + } + + _prepare_callbacks() { + this._callbacks = new Map(); + // we don't need these callbacks if we aren't building a tree + if (this.options.ambiguity !== "forest") { + this._parse_tree_builder = new ParseTreeBuilder( + this.rules, + this.options.tree_class || make_constructor(Tree), + this.options.propagate_positions, + this.options.parser !== "lalr" && this.options.ambiguity === "explicit", + this.options.maybe_placeholders + ); + this._callbacks = this._parse_tree_builder.create_callback( + this.options.transformer + ); + } + + dict_update( + this._callbacks, + _get_lexer_callbacks(this.options.transformer, this.terminals) + ); + } + + /** + Saves the instance into the given file object + + Useful for caching and multiprocessing. + + */ + /** + Loads an instance from the given file object + + Useful for caching and multiprocessing. + + */ + _deserialize_lexer_conf(data, memo, options) { + let lexer_conf = LexerConf.deserialize(data["lexer_conf"], memo); + lexer_conf.callbacks = options.lexer_callbacks || {}; + lexer_conf.re_module = options.regex ? regex : re; + lexer_conf.use_bytes = options.use_bytes; + lexer_conf.g_regex_flags = options.g_regex_flags || ""; + lexer_conf.skip_validation = true; + lexer_conf.postlex = options.postlex; + return lexer_conf; + } + + _load({ f, ...kwargs } = {}) { + let d; + if (is_dict(f)) { + d = f; + } else { + d = pickle.load(f); + } + let memo_json = d["memo"]; + let data = d["data"]; + let memo = SerializeMemoizer.deserialize( + memo_json, + { Rule: Rule, TerminalDef: TerminalDef }, + {} + ); + let options = dict(data["options"]); + // if ( + // (new Set(kwargs) - _LOAD_ALLOWED_OPTIONS) & + // new Set(LarkOptions._defaults) + // ) { + // throw new ConfigurationError( + // "Some options are not allowed when loading a Parser: {}".format( + // new Set(kwargs) - _LOAD_ALLOWED_OPTIONS + // ) + // ); + // } + + dict_update(options, kwargs); + this.options = LarkOptions.deserialize(options, memo); + this.rules = data["rules"].map(r => Rule.deserialize(r, memo)); + this.source_path = ""; + _validate_frontend_args(this.options.parser, this.options.lexer); + this.lexer_conf = this._deserialize_lexer_conf( + data["parser"], + memo, + this.options + ); + this.terminals = this.lexer_conf.terminals; + this._prepare_callbacks(); + this._terminals_dict = Object.fromEntries( + this.terminals.map(t => [t.name, t]) + ); + this.parser = _deserialize_parsing_frontend( + data["parser"], + memo, + this.lexer_conf, + this._callbacks, + this.options + ); + return this; + } + + static _load_from_dict({ data, memo, ...kwargs } = {}) { + const cls = this; + let inst = new_object(cls); + return inst._load({ + f: { data: data, memo: memo }, + ...kwargs, + }); + } + + /** + Create an instance of Lark with the grammar given by its filename + + If ``rel_to`` is provided, the function will find the grammar filename in relation to it. + + Example: + + >>> Lark.open("grammar_file.lark", rel_to=__file__, parser="lalr") + Lark(...) + + + */ + /** + Create an instance of Lark with the grammar loaded from within the package `package`. + This allows grammar loading from zipapps. + + Imports in the grammar will use the `package` and `search_paths` provided, through `FromPackageLoader` + + Example: + + Lark.open_from_package(__name__, "example.lark", ("grammars",), parser=...) + + */ + repr() { + return format( + "Lark(open(%r), parser=%r, lexer=%r, ...)", + this.source_path, + this.options.parser, + this.options.lexer + ); + } + + /** + Only lex (and postlex) the text, without parsing it. Only relevant when lexer='basic' + + When dont_ignore=True, the lexer will return all tokens, even those marked for %ignore. + + :raises UnexpectedCharacters: In case the lexer cannot find a suitable match. + + */ + lex(text, dont_ignore = false) { + let lexer; + if (!("lexer" in this) || dont_ignore) { + lexer = this._build_lexer(dont_ignore); + } else { + lexer = this.lexer; + } + let lexer_thread = LexerThread.from_text(lexer, text); + let stream = lexer_thread.lex(null); + if (this.options.postlex) { + return this.options.postlex.process(stream); + } + + return stream; + } + + /** + Get information about a terminal + */ + get_terminal(name) { + return this._terminals_dict[name]; + } + + /** + Start an interactive parsing session. + + Parameters: + text (str, optional): Text to be parsed. Required for ``resume_parse()``. + start (str, optional): Start symbol + + Returns: + A new InteractiveParser instance. + + See Also: ``Lark.parse()`` + + */ + parse_interactive(text = null, start = null) { + return this.parser.parse_interactive({ + unknown_param_0: text, + start: start, + }); + } + + /** + Parse the given text, according to the options provided. + + Parameters: + text (str): Text to be parsed. + start (str, optional): Required if Lark was given multiple possible start symbols (using the start option). + on_error (function, optional): if provided, will be called on UnexpectedToken error. Return true to resume parsing. + LALR only. See examples/advanced/error_handling.py for an example of how to use on_error. + + Returns: + If a transformer is supplied to ``__init__``, returns whatever is the + result of the transformation. Otherwise, returns a Tree instance. + + :raises UnexpectedInput: On a parse error, one of these sub-exceptions will rise: + ``UnexpectedCharacters``, ``UnexpectedToken``, or ``UnexpectedEOF``. + For convenience, these sub-exceptions also inherit from ``ParserError`` and ``LexerError``. + + + */ + parse(text, start = null, on_error = null) { + return this.parser.parse(text, start, on_error); + } +} + +// +// Indenter +// + +class DedentError extends LarkError { + // pass +} + +class Indenter extends PostLex { + constructor() { + super(); + this.paren_level = 0; + this.indent_level = [0]; + } + + *handle_NL(token) { + if (this.paren_level > 0) { + return; + } + + yield token; + let indent_str = rsplit(token.value, "\n", 1)[1]; + // Tabs and spaces + let indent = + str_count(indent_str, " ") + str_count(indent_str, "\t") * this.tab_len; + if (indent > last_item(this.indent_level)) { + this.indent_level.push(indent); + yield Token.new_borrow_pos(this.INDENT_type, indent_str, token); + } else { + while (indent < last_item(this.indent_level)) { + this.indent_level.pop(); + yield Token.new_borrow_pos(this.DEDENT_type, indent_str, token); + } + + if (indent !== last_item(this.indent_level)) { + throw new DedentError( + format( + "Unexpected dedent to column %s. Expected dedent to %s", + indent, + last_item(this.indent_level) + ) + ); + } + } + } + + *_process(stream) { + for (const token of stream) { + if (token.type === this.NL_type) { + yield* this.handle_NL(token); + } else { + yield token; + } + if (this.OPEN_PAREN_types.includes(token.type)) { + this.paren_level += 1; + } else if (this.CLOSE_PAREN_types.includes(token.type)) { + this.paren_level -= 1; + } + } + + while (this.indent_level.length > 1) { + this.indent_level.pop(); + yield new Token(this.DEDENT_type, ""); + } + } + + process(stream) { + this.paren_level = 0; + this.indent_level = [0]; + return this._process(stream); + } + + // XXX Hack for ContextualLexer. Maybe there's a more elegant solution? + + get always_accept() { + return [this.NL_type]; + } + + get NL_type() { + throw new NotImplementedError(); + } + + get OPEN_PAREN_types() { + throw new NotImplementedError(); + } + + get CLOSE_PAREN_types() { + throw new NotImplementedError(); + } + + get INDENT_type() { + throw new NotImplementedError(); + } + + get DEDENT_type() { + throw new NotImplementedError(); + } + + get tab_len() { + throw new NotImplementedError(); + } +} + +class PythonIndenter extends Indenter { + static get NL_type() { + return "_NEWLINE"; + } + get NL_type() { + return this.constructor.NL_type; + } + static get OPEN_PAREN_types() { + return ["LPAR", "LSQB", "LBRACE"]; + } + get OPEN_PAREN_types() { + return this.constructor.OPEN_PAREN_types; + } + static get CLOSE_PAREN_types() { + return ["RPAR", "RSQB", "RBRACE"]; + } + get CLOSE_PAREN_types() { + return this.constructor.CLOSE_PAREN_types; + } + static get INDENT_type() { + return "_INDENT"; + } + get INDENT_type() { + return this.constructor.INDENT_type; + } + static get DEDENT_type() { + return "_DEDENT"; + } + get DEDENT_type() { + return this.constructor.DEDENT_type; + } + static get tab_len() { + return 8; + } + get tab_len() { + return this.constructor.tab_len; + } +} + +const NAMESPACE = { + Terminal: Terminal, + NonTerminal: NonTerminal, + RuleOptions: RuleOptions, + PatternStr: PatternStr, + PatternRE: PatternRE, + TerminalDef: TerminalDef, +}; + +module.exports = { + LarkError, + ConfigurationError, + GrammarError, + ParseError, + LexError, + UnexpectedInput, + UnexpectedEOF, + UnexpectedCharacters, + UnexpectedToken, + VisitError, + Meta, + Tree, + Discard, + Transformer, + Transformer_InPlace, + Transformer_NonRecursive, + Transformer_InPlaceRecursive, + VisitorBase, + Visitor, + Visitor_Recursive, + Interpreter, + Symbol, + Terminal, + NonTerminal, + RuleOptions, + Rule, + Pattern, + PatternStr, + PatternRE, + TerminalDef, + Token, + Lexer, + LexerConf, + ParserConf, + InteractiveParser, + ImmutableInteractiveParser, + PostLex, + Lark, + DedentError, + Indenter, + PythonIndenter, + get_parser, +}; + +var DATA = { + parser: { + lexer_conf: { + terminals: [ + { + "@": 0, + }, + { + "@": 1, + }, + { + "@": 2, + }, + { + "@": 3, + }, + { + "@": 4, + }, + { + "@": 5, + }, + { + "@": 6, + }, + { + "@": 7, + }, + { + "@": 8, + }, + { + "@": 9, + }, + { + "@": 10, + }, + { + "@": 11, + }, + { + "@": 12, + }, + { + "@": 13, + }, + { + "@": 14, + }, + { + "@": 15, + }, + { + "@": 16, + }, + { + "@": 17, + }, + { + "@": 18, + }, + { + "@": 19, + }, + { + "@": 20, + }, + { + "@": 21, + }, + { + "@": 22, + }, + { + "@": 23, + }, + { + "@": 24, + }, + { + "@": 25, + }, + { + "@": 26, + }, + { + "@": 27, + }, + ], + ignore: ["WS"], + g_regex_flags: 0, + use_bytes: false, + lexer_type: "contextual", + __type__: "LexerConf", + }, + parser_conf: { + rules: [ + { + "@": 28, + }, + { + "@": 29, + }, + { + "@": 30, + }, + { + "@": 31, + }, + { + "@": 32, + }, + { + "@": 33, + }, + { + "@": 34, + }, + { + "@": 35, + }, + { + "@": 36, + }, + { + "@": 37, + }, + { + "@": 38, + }, + { + "@": 39, + }, + { + "@": 40, + }, + { + "@": 41, + }, + { + "@": 42, + }, + { + "@": 43, + }, + { + "@": 44, + }, + { + "@": 45, + }, + { + "@": 46, + }, + { + "@": 47, + }, + { + "@": 48, + }, + { + "@": 49, + }, + { + "@": 50, + }, + { + "@": 51, + }, + { + "@": 52, + }, + { + "@": 53, + }, + { + "@": 54, + }, + { + "@": 55, + }, + { + "@": 56, + }, + { + "@": 57, + }, + { + "@": 58, + }, + { + "@": 59, + }, + { + "@": 60, + }, + { + "@": 61, + }, + { + "@": 62, + }, + { + "@": 63, + }, + { + "@": 64, + }, + { + "@": 65, + }, + { + "@": 66, + }, + { + "@": 67, + }, + { + "@": 68, + }, + { + "@": 69, + }, + { + "@": 70, + }, + { + "@": 71, + }, + { + "@": 72, + }, + { + "@": 73, + }, + { + "@": 74, + }, + { + "@": 75, + }, + { + "@": 76, + }, + { + "@": 77, + }, + { + "@": 78, + }, + { + "@": 79, + }, + { + "@": 80, + }, + { + "@": 81, + }, + { + "@": 82, + }, + { + "@": 83, + }, + { + "@": 84, + }, + { + "@": 85, + }, + { + "@": 86, + }, + ], + start: ["start"], + parser_type: "lalr", + __type__: "ParserConf", + }, + parser: { + tokens: { + 0: "$END", + 1: "VBAR", + 2: "AMPERSAND", + 3: "RPAR", + 4: "__ANON_3", + 5: "LESSTHAN", + 6: "BANG", + 7: "MORETHAN", + 8: "__ANON_4", + 9: "EQUAL", + 10: "__ANON_5", + 11: "__ANON_6", + 12: "DOT", + 13: "guid_selector", + 14: "class_selector", + 15: "HASH", + 16: "ESCAPED_STRING", + 17: "NULL", + 18: "SIGNED_FLOAT", + 19: "BOOLEAN", + 20: "SIGNED_INT", + 21: "or", + 22: "lfunction", + 23: "and", + 24: "__ANON_1", + 25: "WORD", + 26: "STAR", + 27: "__ANON_2", + 28: "LPAR", + 29: "AT", + 30: "__comparison_star_1", + 31: "RSQB", + 32: "not", + 33: "lessthan", + 34: "oneof", + 35: "morethanequalto", + 36: "comparison", + 37: "morethan", + 38: "equal", + 39: "contains", + 40: "lessthanequalto", + 41: "filter", + 42: "LSQB", + 43: "selector", + 44: "types", + 45: "inverse_relationship", + 46: "group", + 47: "start", + 48: "bounded_by", + 49: "query", + 50: "decomposed_by", + 51: "__start_star_0", + 52: "__ANON_0", + 53: "pset_or_qto", + 54: "filter_key", + 55: "filter_value", + }, + states: { + 0: { + 0: [ + 1, + { + "@": 34, + }, + ], + 1: [ + 1, + { + "@": 34, + }, + ], + 2: [ + 1, + { + "@": 34, + }, + ], + 3: [ + 1, + { + "@": 34, + }, + ], + }, + 1: { + 4: [ + 1, + { + "@": 85, + }, + ], + 5: [ + 1, + { + "@": 85, + }, + ], + 6: [ + 1, + { + "@": 85, + }, + ], + 7: [ + 1, + { + "@": 85, + }, + ], + 8: [ + 1, + { + "@": 85, + }, + ], + 9: [ + 1, + { + "@": 85, + }, + ], + 10: [ + 1, + { + "@": 85, + }, + ], + 11: [ + 1, + { + "@": 85, + }, + ], + }, + 2: { + 12: [0, 7], + 13: [0, 0], + 14: [0, 64], + 15: [0, 40], + }, + 3: { + 16: [ + 1, + { + "@": 68, + }, + ], + 17: [ + 1, + { + "@": 68, + }, + ], + 18: [ + 1, + { + "@": 68, + }, + ], + 19: [ + 1, + { + "@": 68, + }, + ], + 20: [ + 1, + { + "@": 68, + }, + ], + }, + 4: { + 21: [0, 8], + 2: [0, 42], + 1: [0, 25], + 22: [0, 70], + 23: [0, 17], + 0: [ + 1, + { + "@": 28, + }, + ], + }, + 5: { + 4: [ + 1, + { + "@": 61, + }, + ], + 5: [ + 1, + { + "@": 61, + }, + ], + 6: [ + 1, + { + "@": 61, + }, + ], + 7: [ + 1, + { + "@": 61, + }, + ], + 8: [ + 1, + { + "@": 61, + }, + ], + 9: [ + 1, + { + "@": 61, + }, + ], + 10: [ + 1, + { + "@": 61, + }, + ], + 11: [ + 1, + { + "@": 61, + }, + ], + }, + 6: { + 24: [0, 14], + }, + 7: { + 25: [0, 15], + }, + 8: { + 26: [ + 1, + { + "@": 52, + }, + ], + 27: [ + 1, + { + "@": 52, + }, + ], + 15: [ + 1, + { + "@": 52, + }, + ], + 12: [ + 1, + { + "@": 52, + }, + ], + 28: [ + 1, + { + "@": 52, + }, + ], + 29: [ + 1, + { + "@": 52, + }, + ], + }, + 9: { + 16: [ + 1, + { + "@": 75, + }, + ], + 17: [ + 1, + { + "@": 75, + }, + ], + 18: [ + 1, + { + "@": 75, + }, + ], + 19: [ + 1, + { + "@": 75, + }, + ], + 20: [ + 1, + { + "@": 75, + }, + ], + }, + 10: { + 0: [ + 1, + { + "@": 41, + }, + ], + 2: [ + 1, + { + "@": 41, + }, + ], + 3: [ + 1, + { + "@": 41, + }, + ], + 1: [ + 1, + { + "@": 41, + }, + ], + }, + 11: { + 30: [0, 19], + 11: [0, 48], + 4: [0, 62], + 31: [0, 13], + 9: [0, 69], + 32: [0, 1], + 7: [0, 26], + 33: [0, 9], + 34: [0, 20], + 10: [0, 66], + 5: [0, 44], + 8: [0, 53], + 35: [0, 35], + 36: [0, 63], + 37: [0, 38], + 6: [0, 5], + 38: [0, 24], + 39: [0, 45], + 40: [0, 67], + }, + 12: { + 12: [0, 6], + }, + 13: { + 0: [ + 1, + { + "@": 42, + }, + ], + 2: [ + 1, + { + "@": 42, + }, + ], + 3: [ + 1, + { + "@": 42, + }, + ], + 1: [ + 1, + { + "@": 42, + }, + ], + }, + 14: { + 4: [ + 1, + { + "@": 50, + }, + ], + 5: [ + 1, + { + "@": 50, + }, + ], + 6: [ + 1, + { + "@": 50, + }, + ], + 7: [ + 1, + { + "@": 50, + }, + ], + 8: [ + 1, + { + "@": 50, + }, + ], + 9: [ + 1, + { + "@": 50, + }, + ], + 10: [ + 1, + { + "@": 50, + }, + ], + 31: [ + 1, + { + "@": 50, + }, + ], + 11: [ + 1, + { + "@": 50, + }, + ], + }, + 15: { + 41: [0, 30], + 42: [0, 49], + 2: [ + 1, + { + "@": 40, + }, + ], + 0: [ + 1, + { + "@": 40, + }, + ], + 3: [ + 1, + { + "@": 40, + }, + ], + 1: [ + 1, + { + "@": 40, + }, + ], + }, + 16: { + 12: [ + 1, + { + "@": 55, + }, + ], + 15: [ + 1, + { + "@": 55, + }, + ], + }, + 17: { + 26: [ + 1, + { + "@": 51, + }, + ], + 27: [ + 1, + { + "@": 51, + }, + ], + 15: [ + 1, + { + "@": 51, + }, + ], + 12: [ + 1, + { + "@": 51, + }, + ], + 28: [ + 1, + { + "@": 51, + }, + ], + 29: [ + 1, + { + "@": 51, + }, + ], + }, + 18: { + 0: [ + 1, + { + "@": 84, + }, + ], + 1: [ + 1, + { + "@": 84, + }, + ], + 2: [ + 1, + { + "@": 84, + }, + ], + 3: [ + 1, + { + "@": 84, + }, + ], + }, + 19: { + 11: [0, 48], + 38: [0, 72], + 33: [0, 3], + 4: [0, 62], + 34: [0, 27], + 40: [0, 39], + 37: [0, 28], + 9: [0, 69], + 32: [0, 58], + 39: [0, 31], + 7: [0, 26], + 10: [0, 66], + 5: [0, 44], + 8: [0, 53], + 35: [0, 32], + 6: [0, 5], + }, + 20: { + 16: [ + 1, + { + "@": 69, + }, + ], + 17: [ + 1, + { + "@": 69, + }, + ], + 18: [ + 1, + { + "@": 69, + }, + ], + 19: [ + 1, + { + "@": 69, + }, + ], + 20: [ + 1, + { + "@": 69, + }, + ], + }, + 21: { + 21: [0, 8], + 2: [0, 42], + 3: [0, 34], + 22: [0, 70], + 23: [0, 17], + 1: [0, 25], + }, + 22: { + 4: [ + 1, + { + "@": 44, + }, + ], + 5: [ + 1, + { + "@": 44, + }, + ], + 6: [ + 1, + { + "@": 44, + }, + ], + 7: [ + 1, + { + "@": 44, + }, + ], + 8: [ + 1, + { + "@": 44, + }, + ], + 9: [ + 1, + { + "@": 44, + }, + ], + 10: [ + 1, + { + "@": 44, + }, + ], + 31: [ + 1, + { + "@": 44, + }, + ], + 11: [ + 1, + { + "@": 44, + }, + ], + }, + 23: { + 12: [ + 1, + { + "@": 58, + }, + ], + 15: [ + 1, + { + "@": 58, + }, + ], + }, + 24: { + 16: [ + 1, + { + "@": 73, + }, + ], + 17: [ + 1, + { + "@": 73, + }, + ], + 18: [ + 1, + { + "@": 73, + }, + ], + 19: [ + 1, + { + "@": 73, + }, + ], + 20: [ + 1, + { + "@": 73, + }, + ], + }, + 25: { + 26: [ + 1, + { + "@": 60, + }, + ], + 29: [ + 1, + { + "@": 60, + }, + ], + 27: [ + 1, + { + "@": 60, + }, + ], + 15: [ + 1, + { + "@": 60, + }, + ], + 12: [ + 1, + { + "@": 60, + }, + ], + 28: [ + 1, + { + "@": 60, + }, + ], + }, + 26: { + 20: [ + 1, + { + "@": 81, + }, + ], + 16: [ + 1, + { + "@": 81, + }, + ], + 17: [ + 1, + { + "@": 81, + }, + ], + 18: [ + 1, + { + "@": 81, + }, + ], + 19: [ + 1, + { + "@": 81, + }, + ], + }, + 27: { + 16: [ + 1, + { + "@": 62, + }, + ], + 17: [ + 1, + { + "@": 62, + }, + ], + 18: [ + 1, + { + "@": 62, + }, + ], + 19: [ + 1, + { + "@": 62, + }, + ], + 20: [ + 1, + { + "@": 62, + }, + ], + }, + 28: { + 16: [ + 1, + { + "@": 67, + }, + ], + 17: [ + 1, + { + "@": 67, + }, + ], + 18: [ + 1, + { + "@": 67, + }, + ], + 19: [ + 1, + { + "@": 67, + }, + ], + 20: [ + 1, + { + "@": 67, + }, + ], + }, + 29: { + 43: [0, 57], + 15: [0, 40], + 44: [0, 60], + 12: [0, 7], + 45: [0, 2], + 46: [0, 46], + 28: [0, 56], + 14: [0, 43], + 47: [0, 71], + 48: [0, 16], + 49: [0, 37], + 27: [0, 23], + 13: [0, 33], + 29: [0, 41], + 26: [0, 47], + 50: [0, 50], + }, + 30: { + 2: [ + 1, + { + "@": 39, + }, + ], + 0: [ + 1, + { + "@": 39, + }, + ], + 3: [ + 1, + { + "@": 39, + }, + ], + 1: [ + 1, + { + "@": 39, + }, + ], + }, + 31: { + 16: [ + 1, + { + "@": 63, + }, + ], + 17: [ + 1, + { + "@": 63, + }, + ], + 18: [ + 1, + { + "@": 63, + }, + ], + 19: [ + 1, + { + "@": 63, + }, + ], + 20: [ + 1, + { + "@": 63, + }, + ], + }, + 32: { + 16: [ + 1, + { + "@": 64, + }, + ], + 17: [ + 1, + { + "@": 64, + }, + ], + 18: [ + 1, + { + "@": 64, + }, + ], + 19: [ + 1, + { + "@": 64, + }, + ], + 20: [ + 1, + { + "@": 64, + }, + ], + }, + 33: { + 0: [ + 1, + { + "@": 35, + }, + ], + 1: [ + 1, + { + "@": 35, + }, + ], + 2: [ + 1, + { + "@": 35, + }, + ], + 3: [ + 1, + { + "@": 35, + }, + ], + }, + 34: { + 0: [ + 1, + { + "@": 32, + }, + ], + 1: [ + 1, + { + "@": 32, + }, + ], + 2: [ + 1, + { + "@": 32, + }, + ], + 3: [ + 1, + { + "@": 32, + }, + ], + }, + 35: { + 16: [ + 1, + { + "@": 71, + }, + ], + 17: [ + 1, + { + "@": 71, + }, + ], + 18: [ + 1, + { + "@": 71, + }, + ], + 19: [ + 1, + { + "@": 71, + }, + ], + 20: [ + 1, + { + "@": 71, + }, + ], + }, + 36: { + 31: [ + 1, + { + "@": 48, + }, + ], + }, + 37: { + 21: [0, 8], + 51: [0, 4], + 2: [0, 42], + 23: [0, 17], + 1: [0, 25], + 22: [0, 61], + 0: [ + 1, + { + "@": 29, + }, + ], + }, + 38: { + 16: [ + 1, + { + "@": 74, + }, + ], + 17: [ + 1, + { + "@": 74, + }, + ], + 18: [ + 1, + { + "@": 74, + }, + ], + 19: [ + 1, + { + "@": 74, + }, + ], + 20: [ + 1, + { + "@": 74, + }, + ], + }, + 39: { + 16: [ + 1, + { + "@": 65, + }, + ], + 17: [ + 1, + { + "@": 65, + }, + ], + 18: [ + 1, + { + "@": 65, + }, + ], + 19: [ + 1, + { + "@": 65, + }, + ], + 20: [ + 1, + { + "@": 65, + }, + ], + }, + 40: { + 52: [0, 75], + }, + 41: { + 12: [ + 1, + { + "@": 57, + }, + ], + 15: [ + 1, + { + "@": 57, + }, + ], + }, + 42: { + 26: [ + 1, + { + "@": 59, + }, + ], + 29: [ + 1, + { + "@": 59, + }, + ], + 27: [ + 1, + { + "@": 59, + }, + ], + 15: [ + 1, + { + "@": 59, + }, + ], + 12: [ + 1, + { + "@": 59, + }, + ], + 28: [ + 1, + { + "@": 59, + }, + ], + }, + 43: { + 0: [ + 1, + { + "@": 37, + }, + ], + 1: [ + 1, + { + "@": 37, + }, + ], + 2: [ + 1, + { + "@": 37, + }, + ], + 3: [ + 1, + { + "@": 37, + }, + ], + }, + 44: { + 20: [ + 1, + { + "@": 82, + }, + ], + 16: [ + 1, + { + "@": 82, + }, + ], + 17: [ + 1, + { + "@": 82, + }, + ], + 18: [ + 1, + { + "@": 82, + }, + ], + 19: [ + 1, + { + "@": 82, + }, + ], + }, + 45: { + 16: [ + 1, + { + "@": 70, + }, + ], + 17: [ + 1, + { + "@": 70, + }, + ], + 18: [ + 1, + { + "@": 70, + }, + ], + 19: [ + 1, + { + "@": 70, + }, + ], + 20: [ + 1, + { + "@": 70, + }, + ], + }, + 46: { + 0: [ + 1, + { + "@": 31, + }, + ], + 1: [ + 1, + { + "@": 31, + }, + ], + 2: [ + 1, + { + "@": 31, + }, + ], + 3: [ + 1, + { + "@": 31, + }, + ], + }, + 47: { + 12: [ + 1, + { + "@": 56, + }, + ], + 15: [ + 1, + { + "@": 56, + }, + ], + }, + 48: { + 20: [ + 1, + { + "@": 79, + }, + ], + 16: [ + 1, + { + "@": 79, + }, + ], + 17: [ + 1, + { + "@": 79, + }, + ], + 18: [ + 1, + { + "@": 79, + }, + ], + 19: [ + 1, + { + "@": 79, + }, + ], + }, + 49: { + 53: [0, 22], + 25: [0, 52], + 54: [0, 11], + 24: [0, 12], + }, + 50: { + 12: [ + 1, + { + "@": 54, + }, + ], + 15: [ + 1, + { + "@": 54, + }, + ], + }, + 51: { + 31: [ + 1, + { + "@": 46, + }, + ], + }, + 52: { + 4: [ + 1, + { + "@": 43, + }, + ], + 5: [ + 1, + { + "@": 43, + }, + ], + 6: [ + 1, + { + "@": 43, + }, + ], + 7: [ + 1, + { + "@": 43, + }, + ], + 8: [ + 1, + { + "@": 43, + }, + ], + 9: [ + 1, + { + "@": 43, + }, + ], + 10: [ + 1, + { + "@": 43, + }, + ], + 31: [ + 1, + { + "@": 43, + }, + ], + 11: [ + 1, + { + "@": 43, + }, + ], + }, + 53: { + 20: [ + 1, + { + "@": 77, + }, + ], + 16: [ + 1, + { + "@": 77, + }, + ], + 17: [ + 1, + { + "@": 77, + }, + ], + 18: [ + 1, + { + "@": 77, + }, + ], + 19: [ + 1, + { + "@": 77, + }, + ], + }, + 54: { + 31: [ + 1, + { + "@": 47, + }, + ], + }, + 55: { + 31: [0, 10], + }, + 56: { + 43: [0, 57], + 15: [0, 40], + 44: [0, 60], + 45: [0, 2], + 46: [0, 46], + 28: [0, 56], + 14: [0, 43], + 12: [0, 7], + 26: [0, 47], + 48: [0, 16], + 27: [0, 23], + 29: [0, 41], + 13: [0, 33], + 49: [0, 68], + 50: [0, 50], + }, + 57: { + 0: [ + 1, + { + "@": 30, + }, + ], + 1: [ + 1, + { + "@": 30, + }, + ], + 2: [ + 1, + { + "@": 30, + }, + ], + 3: [ + 1, + { + "@": 30, + }, + ], + }, + 58: { + 4: [ + 1, + { + "@": 86, + }, + ], + 5: [ + 1, + { + "@": 86, + }, + ], + 6: [ + 1, + { + "@": 86, + }, + ], + 7: [ + 1, + { + "@": 86, + }, + ], + 8: [ + 1, + { + "@": 86, + }, + ], + 9: [ + 1, + { + "@": 86, + }, + ], + 10: [ + 1, + { + "@": 86, + }, + ], + 11: [ + 1, + { + "@": 86, + }, + ], + }, + 59: { + 31: [ + 1, + { + "@": 45, + }, + ], + }, + 60: { + 12: [ + 1, + { + "@": 53, + }, + ], + 15: [ + 1, + { + "@": 53, + }, + ], + }, + 61: { + 43: [0, 57], + 15: [0, 40], + 44: [0, 60], + 49: [0, 74], + 45: [0, 2], + 46: [0, 46], + 28: [0, 56], + 14: [0, 43], + 12: [0, 7], + 26: [0, 47], + 48: [0, 16], + 27: [0, 23], + 29: [0, 41], + 13: [0, 33], + 50: [0, 50], + }, + 62: { + 20: [ + 1, + { + "@": 76, + }, + ], + 16: [ + 1, + { + "@": 76, + }, + ], + 17: [ + 1, + { + "@": 76, + }, + ], + 18: [ + 1, + { + "@": 76, + }, + ], + 19: [ + 1, + { + "@": 76, + }, + ], + }, + 63: { + 19: [0, 36], + 20: [0, 54], + 18: [0, 51], + 16: [0, 59], + 55: [0, 55], + 17: [0, 73], + }, + 64: { + 0: [ + 1, + { + "@": 36, + }, + ], + 1: [ + 1, + { + "@": 36, + }, + ], + 2: [ + 1, + { + "@": 36, + }, + ], + 3: [ + 1, + { + "@": 36, + }, + ], + }, + 65: { + 0: [ + 1, + { + "@": 33, + }, + ], + 1: [ + 1, + { + "@": 33, + }, + ], + 2: [ + 1, + { + "@": 33, + }, + ], + 3: [ + 1, + { + "@": 33, + }, + ], + }, + 66: { + 20: [ + 1, + { + "@": 78, + }, + ], + 16: [ + 1, + { + "@": 78, + }, + ], + 17: [ + 1, + { + "@": 78, + }, + ], + 18: [ + 1, + { + "@": 78, + }, + ], + 19: [ + 1, + { + "@": 78, + }, + ], + }, + 67: { + 16: [ + 1, + { + "@": 72, + }, + ], + 17: [ + 1, + { + "@": 72, + }, + ], + 18: [ + 1, + { + "@": 72, + }, + ], + 19: [ + 1, + { + "@": 72, + }, + ], + 20: [ + 1, + { + "@": 72, + }, + ], + }, + 68: { + 21: [0, 8], + 2: [0, 42], + 3: [0, 65], + 51: [0, 21], + 23: [0, 17], + 1: [0, 25], + 22: [0, 61], + }, + 69: { + 20: [ + 1, + { + "@": 80, + }, + ], + 16: [ + 1, + { + "@": 80, + }, + ], + 17: [ + 1, + { + "@": 80, + }, + ], + 18: [ + 1, + { + "@": 80, + }, + ], + 19: [ + 1, + { + "@": 80, + }, + ], + }, + 70: { + 43: [0, 57], + 15: [0, 40], + 44: [0, 60], + 45: [0, 2], + 46: [0, 46], + 49: [0, 18], + 28: [0, 56], + 14: [0, 43], + 12: [0, 7], + 26: [0, 47], + 48: [0, 16], + 27: [0, 23], + 29: [0, 41], + 13: [0, 33], + 50: [0, 50], + }, + 71: {}, + 72: { + 16: [ + 1, + { + "@": 66, + }, + ], + 17: [ + 1, + { + "@": 66, + }, + ], + 18: [ + 1, + { + "@": 66, + }, + ], + 19: [ + 1, + { + "@": 66, + }, + ], + 20: [ + 1, + { + "@": 66, + }, + ], + }, + 73: { + 31: [ + 1, + { + "@": 49, + }, + ], + }, + 74: { + 0: [ + 1, + { + "@": 83, + }, + ], + 1: [ + 1, + { + "@": 83, + }, + ], + 2: [ + 1, + { + "@": 83, + }, + ], + 3: [ + 1, + { + "@": 83, + }, + ], + }, + 75: { + 2: [ + 1, + { + "@": 38, + }, + ], + 0: [ + 1, + { + "@": 38, + }, + ], + 3: [ + 1, + { + "@": 38, + }, + ], + 1: [ + 1, + { + "@": 38, + }, + ], + }, + }, + start_states: { + start: 29, + }, + end_states: { + start: 71, + }, + }, + __type__: "ParsingFrontend", + }, + rules: [ + { + "@": 28, + }, + { + "@": 29, + }, + { + "@": 30, + }, + { + "@": 31, + }, + { + "@": 32, + }, + { + "@": 33, + }, + { + "@": 34, + }, + { + "@": 35, + }, + { + "@": 36, + }, + { + "@": 37, + }, + { + "@": 38, + }, + { + "@": 39, + }, + { + "@": 40, + }, + { + "@": 41, + }, + { + "@": 42, + }, + { + "@": 43, + }, + { + "@": 44, + }, + { + "@": 45, + }, + { + "@": 46, + }, + { + "@": 47, + }, + { + "@": 48, + }, + { + "@": 49, + }, + { + "@": 50, + }, + { + "@": 51, + }, + { + "@": 52, + }, + { + "@": 53, + }, + { + "@": 54, + }, + { + "@": 55, + }, + { + "@": 56, + }, + { + "@": 57, + }, + { + "@": 58, + }, + { + "@": 59, + }, + { + "@": 60, + }, + { + "@": 61, + }, + { + "@": 62, + }, + { + "@": 63, + }, + { + "@": 64, + }, + { + "@": 65, + }, + { + "@": 66, + }, + { + "@": 67, + }, + { + "@": 68, + }, + { + "@": 69, + }, + { + "@": 70, + }, + { + "@": 71, + }, + { + "@": 72, + }, + { + "@": 73, + }, + { + "@": 74, + }, + { + "@": 75, + }, + { + "@": 76, + }, + { + "@": 77, + }, + { + "@": 78, + }, + { + "@": 79, + }, + { + "@": 80, + }, + { + "@": 81, + }, + { + "@": 82, + }, + { + "@": 83, + }, + { + "@": 84, + }, + { + "@": 85, + }, + { + "@": 86, + }, + ], + options: { + debug: false, + keep_all_tokens: false, + tree_class: null, + cache: false, + postlex: null, + parser: "lalr", + lexer: "contextual", + transformer: null, + start: ["start"], + priority: "normal", + ambiguity: "auto", + regex: false, + propagate_positions: false, + lexer_callbacks: {}, + maybe_placeholders: false, + edit_terminals: null, + g_regex_flags: 0, + use_bytes: false, + import_paths: [], + source_path: null, + _plugins: {}, + }, + __type__: "Lark", +}; + +var MEMO = { + 0: { + name: "BOOLEAN", + pattern: { + value: "(?:FALSE|false|False|TRUE|true|True)", + flags: [], + _width: [4, 5], + __type__: "PatternRE", + }, + priority: 0, + __type__: "TerminalDef", + }, + 1: { + name: "NULL", + pattern: { + value: "NULL", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 2: { + name: "SIGNED_INT", + pattern: { + value: "(?:(?:\\+|\\-))?(?:[0-9])+", + flags: [], + _width: [1, 4294967295], + __type__: "PatternRE", + }, + priority: 0, + __type__: "TerminalDef", + }, + 3: { + name: "SIGNED_FLOAT", + pattern: { + value: + "(?:(?:\\+|\\-))?(?:(?:[0-9])+(?:e|E)(?:(?:\\+|\\-))?(?:[0-9])+|(?:(?:[0-9])+\\.(?:(?:[0-9])+)?|\\.(?:[0-9])+)(?:(?:e|E)(?:(?:\\+|\\-))?(?:[0-9])+)?)", + flags: [], + _width: [2, 4294967295], + __type__: "PatternRE", + }, + priority: 0, + __type__: "TerminalDef", + }, + 4: { + name: "ESCAPED_STRING", + pattern: { + value: '".*?(?]*[^\\W]", + flags: [], + _width: [2, 4294967295], + __type__: "PatternRE", + }, + priority: 0, + __type__: "TerminalDef", + }, + 15: { + name: "STAR", + pattern: { + value: "*", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 16: { + name: "AT", + pattern: { + value: "@", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 17: { + name: "__ANON_2", + pattern: { + value: "@@", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 18: { + name: "AMPERSAND", + pattern: { + value: "&", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 19: { + name: "VBAR", + pattern: { + value: "|", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 20: { + name: "BANG", + pattern: { + value: "!", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 21: { + name: "__ANON_3", + pattern: { + value: "%=", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 22: { + name: "__ANON_4", + pattern: { + value: "*=", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 23: { + name: "__ANON_5", + pattern: { + value: ">=", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 24: { + name: "__ANON_6", + pattern: { + value: "<=", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 25: { + name: "EQUAL", + pattern: { + value: "=", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 26: { + name: "MORETHAN", + pattern: { + value: ">", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 27: { + name: "LESSTHAN", + pattern: { + value: "<", + flags: [], + __type__: "PatternStr", + }, + priority: 0, + __type__: "TerminalDef", + }, + 28: { + origin: { + name: "start", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "query", + __type__: "NonTerminal", + }, + { + name: "__start_star_0", + __type__: "NonTerminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 29: { + origin: { + name: "start", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "query", + __type__: "NonTerminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 30: { + origin: { + name: "query", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "selector", + __type__: "NonTerminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 31: { + origin: { + name: "query", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "group", + __type__: "NonTerminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 32: { + origin: { + name: "group", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "LPAR", + filter_out: true, + __type__: "Terminal", + }, + { + name: "query", + __type__: "NonTerminal", + }, + { + name: "__start_star_0", + __type__: "NonTerminal", + }, + { + name: "RPAR", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 33: { + origin: { + name: "group", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "LPAR", + filter_out: true, + __type__: "Terminal", + }, + { + name: "query", + __type__: "NonTerminal", + }, + { + name: "RPAR", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 34: { + origin: { + name: "selector", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "inverse_relationship", + __type__: "NonTerminal", + }, + { + name: "guid_selector", + __type__: "NonTerminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 35: { + origin: { + name: "selector", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "guid_selector", + __type__: "NonTerminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 36: { + origin: { + name: "selector", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "inverse_relationship", + __type__: "NonTerminal", + }, + { + name: "class_selector", + __type__: "NonTerminal", + }, + ], + order: 2, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 37: { + origin: { + name: "selector", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "class_selector", + __type__: "NonTerminal", + }, + ], + order: 3, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 38: { + origin: { + name: "guid_selector", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "HASH", + filter_out: true, + __type__: "Terminal", + }, + { + name: "__ANON_0", + filter_out: false, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 39: { + origin: { + name: "class_selector", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "DOT", + filter_out: true, + __type__: "Terminal", + }, + { + name: "WORD", + filter_out: false, + __type__: "Terminal", + }, + { + name: "filter", + __type__: "NonTerminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 40: { + origin: { + name: "class_selector", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "DOT", + filter_out: true, + __type__: "Terminal", + }, + { + name: "WORD", + filter_out: false, + __type__: "Terminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 41: { + origin: { + name: "filter", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "LSQB", + filter_out: true, + __type__: "Terminal", + }, + { + name: "filter_key", + __type__: "NonTerminal", + }, + { + name: "comparison", + __type__: "NonTerminal", + }, + { + name: "filter_value", + __type__: "NonTerminal", + }, + { + name: "RSQB", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 42: { + origin: { + name: "filter", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "LSQB", + filter_out: true, + __type__: "Terminal", + }, + { + name: "filter_key", + __type__: "NonTerminal", + }, + { + name: "RSQB", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 43: { + origin: { + name: "filter_key", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "WORD", + filter_out: false, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 44: { + origin: { + name: "filter_key", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "pset_or_qto", + __type__: "NonTerminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 45: { + origin: { + name: "filter_value", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "ESCAPED_STRING", + filter_out: false, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 46: { + origin: { + name: "filter_value", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "SIGNED_FLOAT", + filter_out: false, + __type__: "Terminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 47: { + origin: { + name: "filter_value", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "SIGNED_INT", + filter_out: false, + __type__: "Terminal", + }, + ], + order: 2, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 48: { + origin: { + name: "filter_value", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "BOOLEAN", + filter_out: false, + __type__: "Terminal", + }, + ], + order: 3, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 49: { + origin: { + name: "filter_value", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "NULL", + filter_out: false, + __type__: "Terminal", + }, + ], + order: 4, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 50: { + origin: { + name: "pset_or_qto", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__ANON_1", + filter_out: false, + __type__: "Terminal", + }, + { + name: "DOT", + filter_out: true, + __type__: "Terminal", + }, + { + name: "__ANON_1", + filter_out: false, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 51: { + origin: { + name: "lfunction", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "and", + __type__: "NonTerminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 52: { + origin: { + name: "lfunction", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "or", + __type__: "NonTerminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 53: { + origin: { + name: "inverse_relationship", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "types", + __type__: "NonTerminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 54: { + origin: { + name: "inverse_relationship", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "decomposed_by", + __type__: "NonTerminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 55: { + origin: { + name: "inverse_relationship", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "bounded_by", + __type__: "NonTerminal", + }, + ], + order: 2, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 56: { + origin: { + name: "types", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "STAR", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 57: { + origin: { + name: "decomposed_by", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "AT", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 58: { + origin: { + name: "bounded_by", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__ANON_2", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 59: { + origin: { + name: "and", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "AMPERSAND", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 60: { + origin: { + name: "or", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "VBAR", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 61: { + origin: { + name: "not", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "BANG", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 62: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__comparison_star_1", + __type__: "NonTerminal", + }, + { + name: "oneof", + __type__: "NonTerminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 63: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__comparison_star_1", + __type__: "NonTerminal", + }, + { + name: "contains", + __type__: "NonTerminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 64: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__comparison_star_1", + __type__: "NonTerminal", + }, + { + name: "morethanequalto", + __type__: "NonTerminal", + }, + ], + order: 2, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 65: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__comparison_star_1", + __type__: "NonTerminal", + }, + { + name: "lessthanequalto", + __type__: "NonTerminal", + }, + ], + order: 3, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 66: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__comparison_star_1", + __type__: "NonTerminal", + }, + { + name: "equal", + __type__: "NonTerminal", + }, + ], + order: 4, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 67: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__comparison_star_1", + __type__: "NonTerminal", + }, + { + name: "morethan", + __type__: "NonTerminal", + }, + ], + order: 5, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 68: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__comparison_star_1", + __type__: "NonTerminal", + }, + { + name: "lessthan", + __type__: "NonTerminal", + }, + ], + order: 6, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 69: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "oneof", + __type__: "NonTerminal", + }, + ], + order: 7, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 70: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "contains", + __type__: "NonTerminal", + }, + ], + order: 8, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 71: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "morethanequalto", + __type__: "NonTerminal", + }, + ], + order: 9, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 72: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "lessthanequalto", + __type__: "NonTerminal", + }, + ], + order: 10, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 73: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "equal", + __type__: "NonTerminal", + }, + ], + order: 11, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 74: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "morethan", + __type__: "NonTerminal", + }, + ], + order: 12, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 75: { + origin: { + name: "comparison", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "lessthan", + __type__: "NonTerminal", + }, + ], + order: 13, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 76: { + origin: { + name: "oneof", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__ANON_3", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 77: { + origin: { + name: "contains", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__ANON_4", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 78: { + origin: { + name: "morethanequalto", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__ANON_5", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 79: { + origin: { + name: "lessthanequalto", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__ANON_6", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 80: { + origin: { + name: "equal", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "EQUAL", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 81: { + origin: { + name: "morethan", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "MORETHAN", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 82: { + origin: { + name: "lessthan", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "LESSTHAN", + filter_out: true, + __type__: "Terminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 83: { + origin: { + name: "__start_star_0", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "lfunction", + __type__: "NonTerminal", + }, + { + name: "query", + __type__: "NonTerminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 84: { + origin: { + name: "__start_star_0", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__start_star_0", + __type__: "NonTerminal", + }, + { + name: "lfunction", + __type__: "NonTerminal", + }, + { + name: "query", + __type__: "NonTerminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 85: { + origin: { + name: "__comparison_star_1", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "not", + __type__: "NonTerminal", + }, + ], + order: 0, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, + 86: { + origin: { + name: "__comparison_star_1", + __type__: "NonTerminal", + }, + expansion: [ + { + name: "__comparison_star_1", + __type__: "NonTerminal", + }, + { + name: "not", + __type__: "NonTerminal", + }, + ], + order: 1, + alias: null, + options: { + keep_all_tokens: false, + expand1: false, + priority: null, + template_source: null, + empty_indices: [], + __type__: "RuleOptions", + }, + __type__: "Rule", + }, +}; diff --git a/src/plugins/reflect/src/.archived/state.js b/src/plugins/reflect/src/.archived/state.js new file mode 100644 index 00000000..e9bd9efe --- /dev/null +++ b/src/plugins/reflect/src/.archived/state.js @@ -0,0 +1,24 @@ +// state.js +import {ref, reactive} from "vue"; + +// const state = reactive({ +// access_token: null, +// connected: false +// }); // You can add initial values here if needed + + + +export default { + setup () { + const state = reactive({ // (1) + access_token: null, + connected: false, + admin: false, + }); + // Optional: do other stuff (2) + return { + state // (3) + } + } +} +// export default state; diff --git a/src/plugins/reflect/src/.archived/tipee.gif b/src/plugins/reflect/src/.archived/tipee.gif new file mode 100644 index 0000000000000000000000000000000000000000..196969317f5150eafcd28bac66dacc11b230ba78 GIT binary patch literal 3735 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 AX#fBK literal 0 HcmV?d00001 diff --git a/src/plugins/reflect/src/.archived/utils.js b/src/plugins/reflect/src/.archived/utils.js new file mode 100644 index 00000000..821c64e1 --- /dev/null +++ b/src/plugins/reflect/src/.archived/utils.js @@ -0,0 +1,10 @@ +function toIfcType(s) { + s = "Ifc_" + s; + return s.replace(/([-_][a-z])/gi, $1 => { + return $1.toUpperCase().replace("-", "").replace("_", ""); + }); +} + +export { + toIfcType +}; diff --git a/src/plugins/reflect/src/Reflect.scss b/src/plugins/reflect/src/Reflect.scss new file mode 100644 index 00000000..4159dce3 --- /dev/null +++ b/src/plugins/reflect/src/Reflect.scss @@ -0,0 +1,20 @@ +.reflect-plugin { + --color-tipee: #A4C407; + + width: 100%; + height: 100%; + background-color: var(--color-white); + + :deep() { + .bimdata-btn.color-tipee { + background-color: var(--color-tipee); + color: var(--color-white); + } + + .bimdata-loading.color-tipee { + &::after { + background-color: var(--color-tipee); + } + } + } +} diff --git a/src/plugins/reflect/src/Reflect.vue b/src/plugins/reflect/src/Reflect.vue new file mode 100644 index 00000000..0c43fdc7 --- /dev/null +++ b/src/plugins/reflect/src/Reflect.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.scss b/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.scss new file mode 100644 index 00000000..2b18b2f7 --- /dev/null +++ b/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.scss @@ -0,0 +1,69 @@ +.reflect-dashboard { + position: relative; + width: 100%; + height: 100%; + + &__header { + position: relative; + padding: calc(var(--spacing-unit) / 2); + box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.1); + background-color: var(--color-white); + + display: flex; + justify-content: space-between; + align-items: center; + + .title { + display: flex; + align-items: center; + gap: 6px; + + img { + width: 24px; + } + h4 { + margin: 0; + } + } + + .menu { + position: absolute; + z-index: 1; + top: calc(100% - var(--spacing-unit) / 4); + left: var(--spacing-unit); + padding: calc(var(--spacing-unit) / 2) 0; + box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.1); + background-color: var(--color-white); + + .bimdata-btn { + justify-content: flex-start; + } + } + } + + &__body { + height: calc(100% - 44px); + padding: var(--spacing-unit); + + display: flex; + flex-direction: column; + gap: var(--spacing-unit); + + &__actions { + display: flex; + gap: var(--spacing-unit); + } + + &__results { + flex-grow: 1; + } + } + + .loading { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } +} diff --git a/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue b/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue new file mode 100644 index 00000000..b8319ab9 --- /dev/null +++ b/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue @@ -0,0 +1,329 @@ + + + + + diff --git a/src/plugins/reflect/src/ReflectLogin/ReflectLogin.scss b/src/plugins/reflect/src/ReflectLogin/ReflectLogin.scss new file mode 100644 index 00000000..02bcb54f --- /dev/null +++ b/src/plugins/reflect/src/ReflectLogin/ReflectLogin.scss @@ -0,0 +1,40 @@ +.reflect-login { + height: 100%; + padding: calc(var(--spacing-unit) * 2); + background-color: var(--color-white); + + display: flex; + flex-direction: column; + align-items: center; + + &__header { + padding: calc(var(--spacing-unit) * 4); + } + + &__body { + flex-grow: 1; + max-width: 500px; + margin: auto; + padding: var(--spacing-unit); + + display: flex; + flex-direction: column; + align-items: center; + + &__form { + width: 100%; + } + } + + &__footer { + display: flex; + flex-direction: column; + align-items: center; + gap: var(--spacing-unit); + + a { + text-decoration: none; + color: var(--color-primary); + } + } +} diff --git a/src/plugins/reflect/src/ReflectLogin/ReflectLogin.vue b/src/plugins/reflect/src/ReflectLogin/ReflectLogin.vue new file mode 100644 index 00000000..84c66780 --- /dev/null +++ b/src/plugins/reflect/src/ReflectLogin/ReflectLogin.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/plugins/reflect/src/ReflectValidationTable/ReflectValidationTable.vue b/src/plugins/reflect/src/ReflectValidationTable/ReflectValidationTable.vue new file mode 100644 index 00000000..64965034 --- /dev/null +++ b/src/plugins/reflect/src/ReflectValidationTable/ReflectValidationTable.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/plugins/reflect/src/config.js b/src/plugins/reflect/src/config.js new file mode 100644 index 00000000..31c7872b --- /dev/null +++ b/src/plugins/reflect/src/config.js @@ -0,0 +1,28 @@ +const TIPEE_PLATFORM_URL = "https://www.plateforme-tipee.com/"; +const TIPEE_REFLECT_URL = "https://reflect.plateforme-tipee.com/"; +const TIPEE_SMARTY_URL = "https://smarty.plateforme-tipee.com"; +const TIPEE_COLOR = "#A4C407"; + +const REFLECT_STORAGE_KEY = "reflect-plugin-data"; +const REFLECT_CLIENT_ID = "2mz6oZxT0uI9zcURpA0TthLwGc4gxmFi2CKBDiO0"; +const REFLECT_TOKEN_TTL = 1000000; // in ms +const REFLECT_TOPIC_LABEL = "Reflect"; +const REFLECT_TOPIC_SYSTEM = "ReflectPlugin"; +const REFLECT_COLOR_NOT_VALID = "#C40707"; +const REFLECT_XLS_FILENAME = "Reflect_Results"; +const REFLECT_BCF_FILENAME = "Reflect_BCF"; + +export { + TIPEE_COLOR, + TIPEE_PLATFORM_URL, + TIPEE_REFLECT_URL, + TIPEE_SMARTY_URL, + REFLECT_BCF_FILENAME, + REFLECT_CLIENT_ID, + REFLECT_COLOR_NOT_VALID, + REFLECT_STORAGE_KEY, + REFLECT_TOKEN_TTL, + REFLECT_TOPIC_LABEL, + REFLECT_TOPIC_SYSTEM, + REFLECT_XLS_FILENAME, +}; diff --git a/src/plugins/reflect/src/reflect.plugin.js b/src/plugins/reflect/src/reflect.plugin.js new file mode 100644 index 00000000..dd8d820a --- /dev/null +++ b/src/plugins/reflect/src/reflect.plugin.js @@ -0,0 +1,28 @@ +import Reflect from "./Reflect.vue"; +import icon from "../assets/favicon-32x32.png"; + +export default { + name: "ReflectPlugin", // The name of the plugin + component: Reflect, + window: { + name: "REFLECT", + label: "ReflectPlugin.window_label", + plugins: ["alerts"], + icon: { + imgUri: icon, + }, + }, + i18n: { + fr: { + window_label: "REFLECT by Tipee", + search: "ex: .IfcWall ==> voir aide ?", + ReflectTab: { + tab1: "Projets", + tab2: "Paramètres", + footerLinkAPIReflect: "API REFLECT", + footerLinkHelpReflect: "Aide", + footerText: "", + }, + }, + }, +}; diff --git a/src/plugins/reflect/src/service.js b/src/plugins/reflect/src/service.js new file mode 100644 index 00000000..acbb10e4 --- /dev/null +++ b/src/plugins/reflect/src/service.js @@ -0,0 +1,203 @@ +import { REFLECT_CLIENT_ID, TIPEE_SMARTY_URL } from "./config.js"; + +function createService() { + let accessToken = null; + const setAccessToken = token => (accessToken = token); + const getAccessToken = () => accessToken; + + function login(username, password) { + return fetch(`${TIPEE_SMARTY_URL}/oauth/token`, { + method: "POST", + redirect: "follow", + headers: { + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", + }, + body: new URLSearchParams({ + client_id: REFLECT_CLIENT_ID, + grant_type: "password", + username, + password, + scopes: "notifications", + }), + }).then( + res => res.json() + ); + } + + async function getProjects() { + try { + return await fetch(`${TIPEE_SMARTY_URL}/reflect/projects`, { + headers: { + Authorization: `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + }).then( + res => res.json() + ); + } catch (error) { + console.error("[ReflectPlugin] getProjects error: ", error); + } + } + + async function getRules(projectId) { + try { + return await fetch(`${TIPEE_SMARTY_URL}/reflect/rules?projectId=${projectId}`, { + headers: { + Authorization: `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + }).then( + res => res.json() + ).then( + json => json.data + ); + } catch (error) { + console.error("[ReflectPlugin] getRules error: ", error); + } + } + + async function getProperties(projectId, type) { + try { + return await fetch(`${TIPEE_SMARTY_URL}/reflect/project/${projectId}/properties?ifc_type=${type}`, { + headers: { + Authorization: `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + }).then( + res => res.json() + ).then( + json => json[0].pset_qto + ); + } catch (error) { + console.error("[ReflectPlugin] getProperties error: ", error); + } + } + + async function createProject(name, description = "") { + try { + return await fetch(`${TIPEE_SMARTY_URL}/reflect/project`, { + method: "POST", + headers: { + Authorization: `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ name, description }), + }).then( + res => res.json() + ); + } catch (error) { + console.error("[ReflectPlugin] createProject error: ", error); + } + } + + async function deleteProject(projectId) { + try { + return await fetch(`${TIPEE_SMARTY_URL}/reflect/project/${projectId}`, { + method: "DELETE", + headers: { + Authorization: `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + }); + } catch (error) { + console.error("[ReflectPlugin] deleteProject error: ", error); + } + } + + async function addIfc(projectId, filename, url) { + try { + const data = new FormData(); + data.append("filename", filename); + data.append("url", url); + + return await fetch(`${TIPEE_SMARTY_URL}/reflect/project/${projectId}/add_ifc_bimdata`, { + method: "POST", + headers: { + Authorization: `Bearer ${accessToken}`, + }, + body: data, + }).then( + res => res.json() + ); + } catch (error) { + console.error("[ReflectPlugin] addIfc error: ", error); + } + } + + async function getTaskStatus(projectId, taskId) { + try { + return await fetch(`${TIPEE_SMARTY_URL}/reflect/project/${projectId}/tasks/${taskId}`, { + headers: { + Authorization: `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + }).then( + res => res.json() + ).then( + task => task.task_status + ); + } catch (error) { + console.error("[ReflectPlugin] getTaskStatus error: ", error); + } + } + + async function runPackage(projectId) { + try { + return await fetch( + `${TIPEE_SMARTY_URL}/reflect/project/${projectId}/package`, + { + method: "POST", + headers: { + Authorization: `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ content: "" }), + } + ).then( + res => res.json() + ); + } catch (error) { + console.error("[ReflectPlugin] runPackage error: ", error); + } + } + + async function runQuery(projectId, queryBuilder) { + try { + return await fetch( + `${TIPEE_SMARTY_URL}/reflect/project/${projectId}/rule`, + { + method: "POST", + headers: { + Authorization: `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + body: JSON.stringify(queryBuilder), + } + ).then( + res => res.json() + ); + } catch (error) { + console.error("[ReflectPlugin] runQuery error: ", error); + } + } + + return { + setAccessToken, + getAccessToken, + login, + getProjects, + getRules, + getProperties, + createProject, + deleteProject, + addIfc, + getTaskStatus, + runPackage, + runQuery, + }; +} + + +const service = createService(); + +export default service; diff --git a/src/plugins/reflect/src/xls-utils.js b/src/plugins/reflect/src/xls-utils.js new file mode 100644 index 00000000..5f9d6da6 --- /dev/null +++ b/src/plugins/reflect/src/xls-utils.js @@ -0,0 +1,320 @@ +import * as ExcelImport from "exceljs/dist/exceljs.min.js"; +import FileSaver from "file-saver"; +import iconReflect from "../assets/reflect.png"; +import iconRivp from "../assets/rivp.png"; +import iconTipee from "../assets/tipee.png"; + +let ExcelJS; +if (ExcelImport.default) { + ExcelJS = ExcelImport.default; +} else { + ExcelJS = ExcelImport; +} + +/** + * Sub-function to autofitColums function + * + * @param {*} ws + * @param {*} col1 + * @param {*} col2 + * @param {*} cb + */ +function eachColumnInRange(ws, col1, col2, cb) { + for (let c = col1; c <= col2; c++) { + let col = ws.getColumn(c); + cb(col); + } +} + +/** + * Function autofitColumns auto-adjust the length of the cell accordingly to the column max length + * + * @param {*} ws + */ +function autofitColumns(ws) { + // no good way to get text widths + eachColumnInRange(ws, 1, ws.columnCount, (column) => { + let maxWidth = 10; + column.eachCell((cell) => { + if (!cell.isMerged && cell.value) { + // doesn't handle merged cells + + let text = ''; + if (typeof cell.value != 'object') { + // string, number, ... + text = cell.value.toString(); + } else if (cell.value.richText) { + // richText + text = cell.value.richText.reduce((text, obj) => text + obj.text.toString(), ''); + } + + // handle new lines -> don't forget to set wrapText: true + let values = text.split(/[\n\r]+/); + + for (let value of values) { + let width = value.length; + + if (cell.font && cell.font.bold) { + width *= 1.08; // bolding increases width + } + + maxWidth = Math.max(maxWidth, width); + } + } + }); + + maxWidth += 0.71; // compensate for observed reduction + maxWidth += 1; // buffer space + + column.width = maxWidth; + }); +} + +async function generateAndDownloadXLS(columnsData, rowsData, validation, name) { + const sizeColumns = columnsData.length; + let workbook = new ExcelJS.Workbook(); + workbook.creator = "Reflect"; + workbook.lastModifiedBy = "Reflect"; + workbook.created = new Date(); + workbook.modified = new Date(); + workbook.lastPrinted = new Date(); + workbook.calcProperties.fullCalcOnLoad = true; + + const uniqueRule = [ + ...new Set(rowsData.map(item => item.code_regle)), + ]; + + let ws = workbook.addWorksheet("REFLECT", { + headerFooter: { firstHeader: "REFLECT", firstFooter: "REFLECT EXPORT" }, + properties: { tabColor: { argb: "FF63BE7B" } }, + }); + + const getData = async url => { + const res = await fetch(url).then(response => + response.arrayBuffer() + ); + return res; + }; + + // add image to workbook by buffer + const imageTipee = workbook.addImage({ + buffer: getData(iconTipee), + extension: "png", + }); + + const imageReflect = workbook.addImage({ + buffer: getData(iconReflect), + extension: "png", + }); + + const imageRivp = workbook.addImage({ + buffer: getData(iconRivp), + extension: "png", + }); + + // insert an image over A1:D6 + ws.addImage(imageRivp, "A1:B2"); + // ws.addImage(imageTipee, "M1:Q6"); + ws.addImage(imageReflect, "I1:K2"); + + ws.mergeCells("C2:G2"); + + const C2 = ws.getCell("C2"); + C2.value = + "CONTRÔLE DES MAQUETTES NUMERIQUES SUR LA BASE DU CAHIER DE PRECONISATIONS"; + C2.style.font = { + bold: true, + color: { argb: "000000" }, + family: 2, + size: 18, + name: "Calibri Light (En-têtes)", + }; + C2.alignment = { + vertical: "middle", + horizontal: "center", + wrapText: true, + }; + + // add a table to a sheet + ws.addTable({ + name: "MyTable", + ref: "C18", + headerRow: true, + totalsRow: true, + style: { + theme: "TableStyleLight1", + showRowStripes: true, + font: { + bold: true, + color: { argb: "000000" }, + family: 2, + size: 28, + name: "Calibri Light (En-têtes)", + }, + }, + columns: [ + { name: "numero_chapitre", filterButton: false, width: 40 }, + { name: "titre", filterButton: false, width: 40 }, + { name: "code_regle", filterButton: false, width: 40 }, + { + name: "validation_finale", + filterButton: false, + width: 40, + }, + ], + rows: validation.map(item => Object.values(item)), + }); + + const uniqueWs = uniqueRule.map(item => { + const name_ws = item; + // Create worksheets with headers and footers + let ws = workbook.addWorksheet(name_ws, { + headerFooter: { + firstHeader: `${name_ws}`, + firstFooter: `${name_ws} EXPORT`, + }, + }); + + // adjust properties afterwards (not supported by worksheet-writer) + ws.properties.outlineLevelCol = 2; + ws.properties.defaultRowHeight = 15; + + // Set the left footer to 18px and italicize. Result: "Page 2 of 16" + ws.headerFooter.oddFooter = "&LPage &P of &N"; + + // Set the left, center, and right text of the footer. Result: “Exceljs” in the footer left. “demo.xlsx” in the footer center. “Page 2” in the footer right + ws.headerFooter.oddFooter = "&LREFLECT&C&F&RPage &P"; + + // ws.autoFilter = `A2:B${sizeColumns}`; + + // Set an auto filter from D3 to the + // cell in row 7 and column 5 + ws.autoFilter = { + from: "A1", + to: { + row: 1, + column: sizeColumns, + }, + }; + + // add a checkerboard pattern to A1:E7 based on row + col being even or odd + ws.addConditionalFormatting({ + ref: "A2:BP1016", + rules: [ + { + type: "colorScale", + cfvo: [{ type: "min" }, { type: "max" }], + color: [{ argb: "FFF8696B" }, { argb: "FF63BE7B" }], + }, + { + type: "containsText", + operator: "containsText", + text: "true", + style: { + fill: { + type: "pattern", + pattern: "solid", + bgColor: { argb: "FF63BE7B" }, + fgColor: { argb: "FFFFFF" }, + }, + }, + }, + { + type: "containsText", + operator: "containsText", + text: "false", + style: { + fill: { + type: "pattern", + pattern: "solid", + bgColor: { argb: "FFF8696B" }, + fgColor: { argb: "FFFFFF" }, + }, + }, + }, + ], + }); + + return { name: item, ws: ws }; + }); + + const columnsFormat = []; + + const rows = []; + // Sanitize data that is impossible to serialize + rowsData.forEach((r, index) => { + const row = []; + + for (const [k, v] of Object.entries(r)) { + let formatter = function (d) { + if (typeof d == "boolean") { + return d === true ? "true" : "false"; + } + return d; + }; + const formatted = formatter(v); + row.push(formatted); + } + rows.push(row); + }); + + uniqueWs.forEach(unique_worksheet => { + autofitColumns(unique_worksheet.ws); + + unique_worksheet.ws.columns = columnsFormat; + + unique_worksheet.ws.eachRow(r => + r.eachCell(cell => { + cell.border = { + top: { style: "thin" }, + left: { style: "thin" }, + bottom: { style: "thin" }, + right: { style: "thin" }, + }; + cell.font = { + bold: false, + name: "Calibri Light (Corps)", + color: { argb: "000000" }, + family: 2, + size: 12, + }; + }) + ); + // Apply styles to the header row + unique_worksheet.ws.getRow(1).eachCell(cell => { + cell.fill = { + type: "pattern", + pattern: "lightGrid", + fgColor: { argb: "d3d3d3" }, + bgColor: { argb: "ffffff" }, + }; + cell.font = { + bold: true, + name: "Calibri Light (Corps)", + color: { argb: "000000" }, + family: 2, + size: 14, + }; + }); + }); + + rows.forEach((row, index) => { + const ws_current = uniqueWs.find(x => x.name === row[2]); + ws_current.ws.addRow(row); + }); + + const buffer = await workbook.xlsx.writeBuffer(); + const blob = new Blob([buffer], { + type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + }); + + const now = new Date(); + FileSaver.saveAs( + blob, + `${name}_${now.getHours()}${now.getMinutes()}${now.getSeconds()}.xlsx` + ); +} + +export { + generateAndDownloadXLS +}; diff --git a/src/views/Viewer.vue b/src/views/Viewer.vue index e4a85a9b..1bf39a41 100644 --- a/src/views/Viewer.vue +++ b/src/views/Viewer.vue @@ -18,6 +18,7 @@ import kroqiBcfService from "@bimdata/bcf-kroqi-premium-service"; import platformDemo from "@bimdata/platform-demo-viewer-plugin"; import SnowflakesPlugin from "@bimdata/snowflakes-viewer-plugin"; import SvgExtractorPlugin from "@bimdata/svg-extractor-viewer-plugin"; +import reflectPlugin from "@/plugins/reflect/src/reflect.plugin.js"; import iotEquipment from "@bimdata/iot-equipment-viewer-plugin"; import iframeShare from "@bimdata/iframe-share-viewer-plugin"; @@ -62,13 +63,17 @@ export default { bimdataViewer.registerPlugin(platformDemo); bimdataViewer.registerPlugin(SnowflakesPlugin); bimdataViewer.registerPlugin(SvgExtractorPlugin); + bimdataViewer.registerPlugin(reflectPlugin); bimdataViewer.registerPlugin(iotEquipment); bimdataViewer.registerPlugin(iframeShare); bimdataViewer.registerPlugin(bimworld); bimdataViewer.registerPlugin(iot); - bimdataViewer.mount(`#${this.viewerId}`); + bimdataViewer.mount(`#${this.viewerId}`, { + ratios: [50, 50], + children: ["3d", "REFLECT"] + }); this.$watch( () => this.oidcAccessToken, From c2e62f743e0e6da6b08c8020880768def39e7e32 Mon Sep 17 00:00:00 2001 From: NicolasRichel Date: Tue, 20 Dec 2022 17:29:35 +0100 Subject: [PATCH 2/6] fix(reflect): css deep selector + init project request --- src/plugins/reflect/src/Reflect.scss | 2 +- .../reflect/src/ReflectDashboard/ReflectDashboard.vue | 3 +-- src/plugins/reflect/src/ReflectLogin/ReflectLogin.vue | 4 ++-- src/plugins/reflect/src/service.js | 11 ++++------- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/plugins/reflect/src/Reflect.scss b/src/plugins/reflect/src/Reflect.scss index 4159dce3..7a14b37e 100644 --- a/src/plugins/reflect/src/Reflect.scss +++ b/src/plugins/reflect/src/Reflect.scss @@ -5,7 +5,7 @@ height: 100%; background-color: var(--color-white); - :deep() { + &::v-deep { .bimdata-btn.color-tipee { background-color: var(--color-tipee); color: var(--color-white); diff --git a/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue b/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue index b8319ab9..26654ca6 100644 --- a/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue +++ b/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue @@ -171,8 +171,7 @@ export default { async initProject(name) { this.loading = true; - const project = await service.createProject(name); - this.projectId = project._id; + this.projectId = await service.createProject(name); const doc = this.$viewer.state.models[0].document; const result = await service.addIfc(this.projectId, doc.name, doc.file); diff --git a/src/plugins/reflect/src/ReflectLogin/ReflectLogin.vue b/src/plugins/reflect/src/ReflectLogin/ReflectLogin.vue index 84c66780..b115a12e 100644 --- a/src/plugins/reflect/src/ReflectLogin/ReflectLogin.vue +++ b/src/plugins/reflect/src/ReflectLogin/ReflectLogin.vue @@ -82,8 +82,8 @@ export default { TIPEE_PLATFORM_URL, TIPEE_REFLECT_URL, - password: "test_plugin", - username: "test_plugin", + password: "", + username: "", }; }, emits: ["login"], diff --git a/src/plugins/reflect/src/service.js b/src/plugins/reflect/src/service.js index acbb10e4..1dcbb8c5 100644 --- a/src/plugins/reflect/src/service.js +++ b/src/plugins/reflect/src/service.js @@ -29,7 +29,6 @@ function createService() { return await fetch(`${TIPEE_SMARTY_URL}/reflect/projects`, { headers: { Authorization: `Bearer ${accessToken}`, - "Content-Type": "application/json", }, }).then( res => res.json() @@ -44,7 +43,6 @@ function createService() { return await fetch(`${TIPEE_SMARTY_URL}/reflect/rules?projectId=${projectId}`, { headers: { Authorization: `Bearer ${accessToken}`, - "Content-Type": "application/json", }, }).then( res => res.json() @@ -61,7 +59,6 @@ function createService() { return await fetch(`${TIPEE_SMARTY_URL}/reflect/project/${projectId}/properties?ifc_type=${type}`, { headers: { Authorization: `Bearer ${accessToken}`, - "Content-Type": "application/json", }, }).then( res => res.json() @@ -84,6 +81,8 @@ function createService() { body: JSON.stringify({ name, description }), }).then( res => res.json() + ).then( + json => json.project_id ); } catch (error) { console.error("[ReflectPlugin] createProject error: ", error); @@ -96,7 +95,6 @@ function createService() { method: "DELETE", headers: { Authorization: `Bearer ${accessToken}`, - "Content-Type": "application/json", }, }); } catch (error) { @@ -129,7 +127,6 @@ function createService() { return await fetch(`${TIPEE_SMARTY_URL}/reflect/project/${projectId}/tasks/${taskId}`, { headers: { Authorization: `Bearer ${accessToken}`, - "Content-Type": "application/json", }, }).then( res => res.json() @@ -161,7 +158,7 @@ function createService() { } } - async function runQuery(projectId, queryBuilder) { + async function runQuery(projectId, query) { try { return await fetch( `${TIPEE_SMARTY_URL}/reflect/project/${projectId}/rule`, @@ -171,7 +168,7 @@ function createService() { Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json", }, - body: JSON.stringify(queryBuilder), + body: JSON.stringify(query), } ).then( res => res.json() From 617d6f7c0c574f517973956333a592d758528125 Mon Sep 17 00:00:00 2001 From: NicolasRichel Date: Tue, 20 Dec 2022 17:52:27 +0100 Subject: [PATCH 3/6] fix(reflect): remove some dead code --- .../src/ReflectDashboard/ReflectDashboard.vue | 26 +------------------ 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue b/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue index 26654ca6..10335c0e 100644 --- a/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue +++ b/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue @@ -96,7 +96,6 @@ export default { ], data() { return { - adminMode: false, loading: false, processing: false, projects: [], @@ -115,23 +114,6 @@ export default { this.bcfApi = this.$viewer.api.apiClient.bcfApi; }, mounted() { - this.$viewer.globalContext.hub.once("3d-model-loaded", () => { - if (this.$viewer.state.models.length > 1) { - this.$viewer.localContext.hub.emit("alert", { - type: "error", - message: - "You can't split more than one model at once. Please load only one model.", - }); - } - }); - this.$viewer.localContext.registerShortcut({ - name: "admin", - key: "$", - ctrlKey: true, - shiftKey: false, - execute: () => this.toggleAdminMode(), - }); - if (this.$viewer.state.models.length > 0) { this.loadProject(); } @@ -141,10 +123,6 @@ export default { this.$viewer.localContext.unregisterShortcut("admin"); }, methods: { - toggleAdminMode() { - this.adminMode = !this.adminMode; - }, - async loadProject() { this.loading = true; @@ -157,7 +135,7 @@ export default { const project = this.projects.find(p => p.name === projectName); - if (this.projects.length === 0 || !project) { + if (!project) { await this.initProject(projectName); } else { this.projectId = project._id; @@ -265,8 +243,6 @@ export default { async reset() { this.loading = true; - this.rowsResultData = []; - this.columnsResultData = []; this.validationData = []; const uuids = [...this.$viewer.state.models[0].uuids.keys()]; From 6e2f8a92746463e45dc540c72bd2c3ea2eeac827 Mon Sep 17 00:00:00 2001 From: NicolasRichel Date: Tue, 20 Dec 2022 18:00:18 +0100 Subject: [PATCH 4/6] fix(reflect): update deps + fix build warnings --- src/plugins/reflect/package-lock.json | 56 ++++++++++--------- src/plugins/reflect/package.json | 12 ++-- src/plugins/reflect/rollup.config.js | 1 + .../src/ReflectDashboard/ReflectDashboard.vue | 2 +- 4 files changed, 39 insertions(+), 32 deletions(-) diff --git a/src/plugins/reflect/package-lock.json b/src/plugins/reflect/package-lock.json index 93ad3100..15bb0560 100644 --- a/src/plugins/reflect/package-lock.json +++ b/src/plugins/reflect/package-lock.json @@ -8,21 +8,21 @@ "name": "viewer-plugin-reflect", "version": "0.0.1", "dependencies": { - "@rollup/plugin-replace": "^5.0.1", + "@bimdata/design-system": "1.4.0-rc.76", "async": "^3.2.4", "exceljs": "^4.3.0", "file-saver": "^2.0.5" }, "devDependencies": { - "@bimdata/design-system": "1.4.0-rc.51", - "@rollup/plugin-node-resolve": "^13.0.5", - "@rollup/plugin-url": "^6.0.0", - "rollup": "^2.35.1", + "@rollup/plugin-node-resolve": "^13.3.0", + "@rollup/plugin-replace": "^5.0.2", + "@rollup/plugin-url": "^6.1.0", + "rollup": "^2.79.1", "rollup-plugin-commonjs": "^10.1.0", "rollup-plugin-scss": "^3.0.0", "rollup-plugin-terser": "^7.0.2", "rollup-plugin-vue": "^5.1.9", - "sass": "^1.42.1" + "sass": "^1.57.1" } }, "node_modules/@babel/code-frame": { @@ -99,10 +99,9 @@ } }, "node_modules/@bimdata/design-system": { - "version": "1.4.0-rc.51", - "resolved": "https://registry.npmjs.org/@bimdata/design-system/-/design-system-1.4.0-rc.51.tgz", - "integrity": "sha512-ZSOx5UfzzTdCthUDKianEqDvUh9j1v7+I+jNyVeHhWHopaKdjZP1TYLrMeA24Zj4/hQLa6Bs9N83lMLDi4RN7w==", - "dev": true + "version": "1.4.0-rc.76", + "resolved": "https://registry.npmjs.org/@bimdata/design-system/-/design-system-1.4.0-rc.76.tgz", + "integrity": "sha512-uS+jpU0FI85JVVixcJgwSew1FpPOTt9rvM8rcj5hOvr3rAgZj2LeSDJos5z2kp9l9EA8vmBx+MxR830vC0hFvQ==" }, "node_modules/@fast-csv/format": { "version": "4.3.5", @@ -220,12 +219,13 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.1.tgz", - "integrity": "sha512-Z3MfsJ4CK17BfGrZgvrcp/l6WXoKb0kokULO+zt/7bmcyayokDaQ2K3eDJcRLCTAlp5FPI4/gz9MHAsosz4Rag==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz", + "integrity": "sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==", + "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", - "magic-string": "^0.26.4" + "magic-string": "^0.27.0" }, "engines": { "node": ">=14.0.0" @@ -243,6 +243,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -263,12 +264,14 @@ "node_modules/@rollup/plugin-replace/node_modules/@types/estree": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true }, "node_modules/@rollup/plugin-replace/node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true }, "node_modules/@rollup/plugin-url": { "version": "6.1.0", @@ -1895,11 +1898,12 @@ } }, "node_modules/magic-string": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", - "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, "dependencies": { - "sourcemap-codec": "^1.4.8" + "@jridgewell/sourcemap-codec": "^1.4.13" }, "engines": { "node": ">=12" @@ -2069,6 +2073,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -2577,7 +2582,7 @@ "version": "2.79.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", - "devOptional": true, + "dev": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -2716,9 +2721,9 @@ "optional": true }, "node_modules/sass": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", - "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "version": "1.57.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", + "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -2837,7 +2842,8 @@ "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true }, "node_modules/string_decoder": { "version": "1.3.0", diff --git a/src/plugins/reflect/package.json b/src/plugins/reflect/package.json index b598ee91..2695fe1f 100644 --- a/src/plugins/reflect/package.json +++ b/src/plugins/reflect/package.json @@ -18,20 +18,20 @@ "reflect" ], "dependencies": { - "@bimdata/design-system": "1.4.0-rc.51", + "@bimdata/design-system": "1.4.0-rc.76", "async": "^3.2.4", "exceljs": "^4.3.0", "file-saver": "^2.0.5" }, "devDependencies": { - "@rollup/plugin-node-resolve": "^13.0.5", - "@rollup/plugin-replace": "^5.0.1", - "@rollup/plugin-url": "^6.0.0", - "rollup": "^2.35.1", + "@rollup/plugin-node-resolve": "^13.3.0", + "@rollup/plugin-replace": "^5.0.2", + "@rollup/plugin-url": "^6.1.0", + "rollup": "^2.79.1", "rollup-plugin-commonjs": "^10.1.0", "rollup-plugin-scss": "^3.0.0", "rollup-plugin-terser": "^7.0.2", "rollup-plugin-vue": "^5.1.9", - "sass": "^1.42.1" + "sass": "^1.57.1" } } diff --git a/src/plugins/reflect/rollup.config.js b/src/plugins/reflect/rollup.config.js index a9a79f74..121404f0 100644 --- a/src/plugins/reflect/rollup.config.js +++ b/src/plugins/reflect/rollup.config.js @@ -10,6 +10,7 @@ const isProduction = (process.env.BUILD === 'production'); const plugins = [ replace({ + preventAssignment: true, 'process.env.NODE_ENV': JSON.stringify('production'), }), VuePlugin(), diff --git a/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue b/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue index 10335c0e..54ace49c 100644 --- a/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue +++ b/src/plugins/reflect/src/ReflectDashboard/ReflectDashboard.vue @@ -63,7 +63,7 @@