diff --git a/jslib b/jslib index 00deb38de5..1370006f6e 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 00deb38de589d67c48fa46be869e29aaef79fb8e +Subproject commit 1370006f6ea310cf85a12bcbd8213f74f9552c4d diff --git a/package-lock.json b/package-lock.json index d80cefe784..1106cb2e18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -141,11 +141,12 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", + "version": "2.2.0", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -331,7 +332,7 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.17.7", + "version": "7.17.10", "dev": true, "license": "MIT", "engines": { @@ -339,22 +340,20 @@ } }, "node_modules/@babel/core": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", - "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "version": "7.17.10", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", + "@babel/generator": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", "@babel/helper-module-transforms": "^7.17.7", "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", + "@babel/parser": "^7.17.10", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/traverse": "^7.17.10", + "@babel/types": "^7.17.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -378,36 +377,26 @@ } }, "node_modules/@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "version": "7.17.10", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.17.10", + "@jridgewell/gen-mapping": "^0.1.0", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", + "version": "7.17.10", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.17.7", + "@babel/compat-data": "^7.17.10", "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "browserslist": "^4.20.2", "semver": "^6.3.0" }, "engines": { @@ -438,8 +427,6 @@ }, "node_modules/@babel/helper-function-name": { "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "dev": true, "license": "MIT", "dependencies": { @@ -530,8 +517,6 @@ }, "node_modules/@babel/helpers": { "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -545,8 +530,6 @@ }, "node_modules/@babel/highlight": { "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", "dev": true, "license": "MIT", "dependencies": { @@ -559,9 +542,7 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", - "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "version": "7.17.10", "dev": true, "license": "MIT", "bin": { @@ -585,20 +566,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "version": "7.17.10", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", + "@babel/generator": "^7.17.10", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/parser": "^7.17.10", + "@babel/types": "^7.17.10", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -607,7 +586,7 @@ } }, "node_modules/@babel/types": { - "version": "7.17.0", + "version": "7.17.10", "dev": true, "license": "MIT", "dependencies": { @@ -635,8 +614,7 @@ }, "node_modules/@braintree/browser-detection": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@braintree/browser-detection/-/browser-detection-1.12.1.tgz", - "integrity": "sha512-i/54qrax5o/WbJJhsE/7qqKE594/kGhR+xSu/w13rT7Mlr/uITkWDXzxffcKQ6l6FQxK0IG0EfgT6TJpWgZcUQ==" + "license": "MIT" }, "node_modules/@braintree/class-list": { "version": "0.2.0", @@ -656,8 +634,7 @@ }, "node_modules/@braintree/sanitize-url": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.0.tgz", - "integrity": "sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==" + "license": "MIT" }, "node_modules/@braintree/uuid": { "version": "0.1.0", @@ -676,18 +653,18 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.2.1", + "version": "1.2.3", "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", + "espree": "^9.3.2", "globals": "^13.9.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { @@ -695,7 +672,7 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.13.0", + "version": "13.14.0", "dev": true, "license": "MIT", "dependencies": { @@ -737,8 +714,28 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", + "version": "3.0.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", "dev": true, "license": "MIT", "engines": { @@ -746,14 +743,12 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", + "version": "1.4.13", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.7.tgz", - "integrity": "sha512-8XC0l0PwCbdg2Uc8zIIf6djNX3lYiz9GqQlC1LJ9WQvTYvcfP8IA9K2IKRnPm5tAX6X/+orF+WwKZ0doGcgJlg==", + "version": "0.3.11", "dev": true, "license": "MIT", "dependencies": { @@ -762,10 +757,9 @@ } }, "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==", - "dev": true + "version": "2.0.4", + "dev": true, + "license": "MIT" }, "node_modules/@microsoft/signalr": { "version": "5.0.10", @@ -795,8 +789,6 @@ }, "node_modules/@ngtools/webpack": { "version": "12.2.17", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.17.tgz", - "integrity": "sha512-uaS+2YZgPDW3VmUuwh4/yfIFV1KRVGWefc6xLWIqKRKs6mlRYs65m3ib9dX7CTS4kQMCbhxkxMbpBO2yXlzfvA==", "dev": true, "license": "MIT", "engines": { @@ -887,7 +879,7 @@ "license": "MIT" }, "node_modules/@types/eslint": { - "version": "8.4.1", + "version": "8.4.2", "dev": true, "license": "MIT", "dependencies": { @@ -945,7 +937,7 @@ "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.8", + "version": "1.17.9", "dev": true, "license": "MIT", "dependencies": { @@ -962,9 +954,8 @@ }, "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/json5": { "version": "0.0.29", @@ -987,13 +978,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "16.11.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.27.tgz", - "integrity": "sha512-C1pD3kgLoZ56Uuy5lhfOxie4aZlA3UMGLX9rXteq4WitEZH6Rl80mwactt9QG0w0gLFlN/kLBTFnGXtDVWvWQw==", - "dev": true + "version": "16.11.33", + "dev": true, + "license": "MIT" }, "node_modules/@types/node-forge": { - "version": "1.0.1", + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { @@ -1024,7 +1014,7 @@ "license": "MIT" }, "node_modules/@types/retry": { - "version": "0.12.1", + "version": "0.12.0", "dev": true, "license": "MIT" }, @@ -1092,15 +1082,13 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz", - "integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==", + "version": "5.23.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/type-utils": "5.20.0", - "@typescript-eslint/utils": "5.20.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/type-utils": "5.23.0", + "@typescript-eslint/utils": "5.23.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -1126,15 +1114,13 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", - "integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==", + "version": "5.23.0", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", "debug": "^4.3.2" }, "engines": { @@ -1154,14 +1140,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", - "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", + "version": "5.23.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0" + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1172,13 +1156,11 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz", - "integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==", + "version": "5.23.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "5.20.0", + "@typescript-eslint/utils": "5.23.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -1199,9 +1181,7 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", - "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", + "version": "5.23.0", "dev": true, "license": "MIT", "engines": { @@ -1213,14 +1193,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", - "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", + "version": "5.23.0", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -1241,16 +1219,14 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz", - "integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==", + "version": "5.23.0", "dev": true, "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -1266,13 +1242,11 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", - "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", + "version": "5.23.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/types": "5.23.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -1480,7 +1454,7 @@ } }, "node_modules/acorn": { - "version": "8.7.0", + "version": "8.7.1", "dev": true, "license": "MIT", "bin": { @@ -1580,8 +1554,6 @@ }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "license": "MIT", "dependencies": { @@ -1680,13 +1652,13 @@ "license": "MIT" }, "node_modules/array-includes": { - "version": "3.1.4", + "version": "3.1.5", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" }, @@ -1715,8 +1687,6 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "license": "MIT", "dependencies": { @@ -1742,8 +1712,6 @@ }, "node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "license": "MIT", "dependencies": { @@ -1755,7 +1723,7 @@ "license": "MIT" }, "node_modules/autoprefixer": { - "version": "10.4.4", + "version": "10.4.7", "dev": true, "funding": [ { @@ -1769,8 +1737,8 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.20.2", - "caniuse-lite": "^1.0.30001317", + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -1863,23 +1831,26 @@ } }, "node_modules/body-parser": { - "version": "1.19.2", + "version": "1.20.0", "dev": true, "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body-parser/node_modules/bytes": { @@ -1904,9 +1875,7 @@ "license": "MIT" }, "node_modules/bonjour-service": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.11.tgz", - "integrity": "sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==", + "version": "1.0.12", "dev": true, "license": "MIT", "dependencies": { @@ -1955,8 +1924,7 @@ }, "node_modules/braintree-web": { "version": "3.85.3", - "resolved": "https://registry.npmjs.org/braintree-web/-/braintree-web-3.85.3.tgz", - "integrity": "sha512-slCnjD/YLFDmiOU0vxL7i4uifjRQV5Cw7dSkhRdXiIT+a8iQ7NxtL5FSomv45wuHqgdilZeQ8iB8guIrn6QgwA==", + "license": "MIT", "dependencies": { "@braintree/asset-loader": "0.4.4", "@braintree/browser-detection": "1.12.1", @@ -1977,8 +1945,7 @@ }, "node_modules/braintree-web-drop-in": { "version": "1.33.1", - "resolved": "https://registry.npmjs.org/braintree-web-drop-in/-/braintree-web-drop-in-1.33.1.tgz", - "integrity": "sha512-/gVWpFIGATxVBqBCp7ZTg2vPsH5aZXAASiBVWZ8Tqebntmj0F0KlCtxfvq8k2qMSwKBzhDEgmMp2o0hAcsfM6g==", + "license": "MIT", "dependencies": { "@braintree/asset-loader": "0.4.4", "@braintree/browser-detection": "1.12.1", @@ -1995,7 +1962,7 @@ "license": "MIT" }, "node_modules/browserslist": { - "version": "4.20.2", + "version": "4.20.3", "dev": true, "funding": [ { @@ -2009,10 +1976,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", "escalade": "^3.1.1", - "node-releases": "^2.0.2", + "node-releases": "^2.0.3", "picocolors": "^1.0.0" }, "bin": { @@ -2096,9 +2063,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001332", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", - "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", + "version": "1.0.30001339", "dev": true, "funding": [ { @@ -2173,8 +2138,6 @@ }, "node_modules/clean-css": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", - "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2410,7 +2373,7 @@ } }, "node_modules/cookie": { - "version": "0.4.2", + "version": "0.5.0", "dev": true, "license": "MIT", "engines": { @@ -2498,9 +2461,7 @@ } }, "node_modules/core-js": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.1.tgz", - "integrity": "sha512-l6CwCLq7XgITOQGhv1dIUmwCFoqFjyQ6zQHUCQlS0xKmb9d6OHIg8jDiEoswhaettT21BSF5qKr6kbvE+aKwxw==", + "version": "3.22.5", "hasInstallScript": true, "license": "MIT", "funding": { @@ -2588,8 +2549,6 @@ }, "node_modules/css-select": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2605,8 +2564,6 @@ }, "node_modules/css-what": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -2676,8 +2633,6 @@ }, "node_modules/define-properties": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "license": "MIT", "dependencies": { @@ -2759,11 +2714,11 @@ } }, "node_modules/depd": { - "version": "1.1.2", + "version": "2.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/dependency-graph": { @@ -2775,9 +2730,13 @@ } }, "node_modules/destroy": { - "version": "1.0.4", + "version": "1.2.0", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, "node_modules/detect-node": { "version": "2.1.0", @@ -2828,8 +2787,6 @@ }, "node_modules/dns-packet": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", - "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", "dev": true, "license": "MIT", "dependencies": { @@ -2860,8 +2817,6 @@ }, "node_modules/dom-serializer": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "license": "MIT", "dependencies": { @@ -2875,8 +2830,6 @@ }, "node_modules/domelementtype": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { @@ -2924,7 +2877,7 @@ }, "node_modules/duo_web_sdk": { "version": "2.7.0", - "resolved": "git+ssh://git@github.com/duosecurity/duo_web_sdk.git#23314a9830b0cdc1c2d086697563cda3c8884a87", + "resolved": "git+ssh://git@github.com/duosecurity/duo_web_sdk.git#f43ff8f1325f8630d0cff1cd9fb0df13d22cf28d", "license": "SEE LICENSE IN LICENSE" }, "node_modules/eastasianwidth": { @@ -2938,10 +2891,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.114", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.114.tgz", - "integrity": "sha512-gRwLpVYWHGbERPU6o8pKfR168V6enWEXzZc6zQNNXbgJ7UJna+9qzAIHY94+9KOv71D/CH+QebLA9pChD2q8zA==", - "dev": true + "version": "1.4.137", + "dev": true, + "license": "ISC" }, "node_modules/email-addresses": { "version": "3.1.0", @@ -2963,8 +2915,6 @@ }, "node_modules/enhanced-resolve": { "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", "dev": true, "license": "MIT", "dependencies": { @@ -3003,18 +2953,18 @@ } }, "node_modules/es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "version": "1.20.0", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", @@ -3026,9 +2976,10 @@ "object-inspect": "^1.12.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "regexp.prototype.flags": "^1.4.1", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3044,9 +2995,8 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, + "license": "MIT", "dependencies": { "has": "^1.0.3" } @@ -3093,13 +3043,11 @@ } }, "node_modules/eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", - "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", + "version": "8.15.0", "dev": true, "license": "MIT", "dependencies": { - "@eslint/eslintrc": "^1.2.1", + "@eslint/eslintrc": "^1.2.3", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -3110,7 +3058,7 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -3126,7 +3074,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -3175,8 +3123,6 @@ }, "node_modules/eslint-import-resolver-typescript": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz", - "integrity": "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==", "dev": true, "license": "ISC", "dependencies": { @@ -3216,8 +3162,6 @@ }, "node_modules/eslint-plugin-import": { "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "license": "MIT", "dependencies": { @@ -3399,7 +3343,7 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.13.0", + "version": "13.14.0", "dev": true, "license": "MIT", "dependencies": { @@ -3443,12 +3387,12 @@ } }, "node_modules/espree": { - "version": "9.3.1", + "version": "9.3.2", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -3570,37 +3514,38 @@ } }, "node_modules/express": { - "version": "4.17.3", + "version": "4.18.1", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -3755,16 +3700,16 @@ } }, "node_modules/finalhandler": { - "version": "1.1.2", + "version": "1.2.0", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -3829,7 +3774,7 @@ "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.14.9", + "version": "1.15.0", "dev": true, "funding": [ { @@ -3927,11 +3872,36 @@ "dev": true, "license": "MIT" }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "dev": true, "license": "MIT" }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "dev": true, @@ -4106,9 +4076,8 @@ }, "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==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/handle-thing": { "version": "2.0.1", @@ -4128,8 +4097,6 @@ }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, "license": "MIT", "funding": { @@ -4146,9 +4113,8 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -4202,9 +4168,8 @@ }, "node_modules/html-entities": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/html-loader": { "version": "3.1.0", @@ -4309,18 +4274,18 @@ "license": "MIT" }, "node_modules/http-errors": { - "version": "1.8.1", + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/http-parser-js": { @@ -4342,9 +4307,7 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.5.tgz", - "integrity": "sha512-ORErEaxkjyrhifofwCuQttHPUSestLtiPDwV0qQOFB0ww6695H953wIGRnkakw1K+GAP+t8/RPbfDB75RFL4Fg==", + "version": "2.0.6", "dev": true, "license": "MIT", "dependencies": { @@ -4510,8 +4473,7 @@ }, "node_modules/inject-stylesheet": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/inject-stylesheet/-/inject-stylesheet-5.0.0.tgz", - "integrity": "sha512-GzncrJP8E/pavMQzoO93CXoYCfTttwVm2cX2TyXJdgtVE0cCvWSFCn1/uMsM6ZkEg7LUsOcKuamcLiGWlv2p9A==" + "license": "MIT" }, "node_modules/internal-slot": { "version": "1.0.3", @@ -4612,8 +4574,6 @@ }, "node_modules/is-core-module": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "license": "MIT", "dependencies": { @@ -4716,8 +4676,6 @@ }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4799,9 +4757,8 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -4971,11 +4928,6 @@ "node": ">=4" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "dev": true, @@ -5012,8 +4964,7 @@ }, "node_modules/jszip": { "version": "3.9.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.9.1.tgz", - "integrity": "sha512-H9A60xPqJ1CuC4Ka6qxzXZeU8aNmgOeP5IFqwJbQQwtu2EUYxota3LdsiZWplF7Wgd9tkAd0mdu36nceSaPuYw==", + "license": "(MIT OR GPL-3.0-or-later)", "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -5070,9 +5021,7 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "12.3.8", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.8.tgz", - "integrity": "sha512-0+UpNaqIwKRSGAFOCcpuYNIv/j5QGVC+xUVvmSdxHO+IfIGoHbFLo3XcPmV/LLnsVj5EAncNHVtlITSoY5qWGQ==", + "version": "12.4.1", "dev": true, "license": "MIT", "dependencies": { @@ -5111,8 +5060,6 @@ }, "node_modules/lint-staged/node_modules/supports-color": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz", - "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==", "dev": true, "license": "MIT", "engines": { @@ -5248,8 +5195,6 @@ }, "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", "engines": { @@ -5278,6 +5223,11 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "dev": true, + "license": "MIT" + }, "node_modules/log-update": { "version": "4.0.0", "dev": true, @@ -5480,8 +5430,6 @@ }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "license": "MIT", "dependencies": { @@ -5569,19 +5517,6 @@ "dev": true, "license": "MIT" }, - "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" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/ms": { "version": "2.1.2", "dev": true, @@ -5599,8 +5534,6 @@ }, "node_modules/multicast-dns": { "version": "7.2.4", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", - "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", "dev": true, "license": "MIT", "dependencies": { @@ -5612,9 +5545,7 @@ } }, "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "version": "3.3.4", "dev": true, "license": "MIT", "bin": { @@ -5690,19 +5621,33 @@ } } }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-forge": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } }, "node_modules/node-releases": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", - "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", - "dev": true + "version": "2.0.4", + "dev": true, + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -5752,8 +5697,6 @@ }, "node_modules/object-hash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "dev": true, "license": "MIT", "engines": { @@ -5815,7 +5758,7 @@ "license": "MIT" }, "node_modules/on-finished": { - "version": "2.3.0", + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { @@ -5932,11 +5875,11 @@ } }, "node_modules/p-retry": { - "version": "4.6.1", + "version": "4.6.2", "dev": true, "license": "MIT", "dependencies": { - "@types/retry": "^0.12.0", + "@types/retry": "0.12.0", "retry": "^0.13.1" }, "engines": { @@ -6202,29 +6145,8 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/portfinder": { - "version": "1.0.28", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/postcss": { - "version": "8.4.12", + "version": "8.4.13", "dev": true, "funding": [ { @@ -6238,7 +6160,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.3", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -6266,8 +6188,6 @@ }, "node_modules/postcss-load-config": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", "dev": true, "license": "MIT", "dependencies": { @@ -6296,9 +6216,8 @@ }, "node_modules/postcss-load-config/node_modules/lilconfig": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -6399,8 +6318,6 @@ }, "node_modules/postcss-selector-parser": { "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "license": "MIT", "dependencies": { @@ -6458,8 +6375,7 @@ }, "node_modules/promise-polyfill": { "version": "8.2.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", - "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==" + "license": "MIT" }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -6497,9 +6413,12 @@ "license": "GPL-3.0" }, "node_modules/qs": { - "version": "6.9.7", + "version": "6.10.3", "dev": true, "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -6558,12 +6477,12 @@ } }, "node_modules/raw-body": { - "version": "2.4.3", + "version": "2.5.1", "dev": true, "license": "MIT", "dependencies": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -6623,6 +6542,22 @@ "version": "0.11.1", "license": "MIT" }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpp": { "version": "3.2.0", "dev": true, @@ -6731,8 +6666,7 @@ }, "node_modules/restricted-input": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/restricted-input/-/restricted-input-3.0.5.tgz", - "integrity": "sha512-lUuXZ3wUnHURRarj5/0C8vomWIfWJO+p7T6RYwB46v7Oyuyr3yyupU+i7SjqUv4S6RAeAAZt1C/QCLJ9xhQBow==", + "license": "MIT", "dependencies": { "@braintree/browser-detection": "^1.12.1" } @@ -6812,9 +6746,7 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.50.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz", - "integrity": "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==", + "version": "1.51.0", "dev": true, "license": "MIT", "dependencies": { @@ -6886,8 +6818,6 @@ }, "node_modules/schema-utils/node_modules/ajv": { "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "license": "MIT", "dependencies": { @@ -6924,8 +6854,6 @@ }, "node_modules/selfsigned": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6937,8 +6865,6 @@ }, "node_modules/semver": { "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "license": "ISC", "dependencies": { @@ -6952,23 +6878,23 @@ } }, "node_modules/send": { - "version": "0.17.2", + "version": "0.18.0", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" @@ -7025,6 +6951,14 @@ "ms": "2.0.0" } }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", "dev": true, @@ -7054,15 +6988,23 @@ "dev": true, "license": "ISC" }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-static": { - "version": "1.14.2", + "version": "1.15.0", "dev": true, "license": "MIT", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" @@ -7244,11 +7186,11 @@ } }, "node_modules/statuses": { - "version": "1.5.0", + "version": "2.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/string_decoder": { @@ -7308,24 +7250,26 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.4", + "version": "1.0.5", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.4", + "version": "1.0.5", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7426,8 +7370,6 @@ }, "node_modules/tailwindcss": { "version": "3.0.24", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz", - "integrity": "sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==", "dev": true, "license": "MIT", "dependencies": { @@ -7482,9 +7424,8 @@ }, "node_modules/tailwindcss/node_modules/lilconfig": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -7498,13 +7439,13 @@ } }, "node_modules/terser": { - "version": "5.12.1", + "version": "5.13.1", "dev": true, "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", + "source-map": "~0.8.0-beta.0", "source-map-support": "~0.5.20" }, "bin": { @@ -7565,9 +7506,12 @@ } }, "node_modules/terser/node_modules/source-map": { - "version": "0.7.3", + "version": "0.8.0-beta.0", "dev": true, "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, "engines": { "node": ">= 8" } @@ -7641,8 +7585,12 @@ } }, "node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } }, "node_modules/trim-repeated": { "version": "1.0.0", @@ -7656,7 +7604,7 @@ } }, "node_modules/ts-loader": { - "version": "9.2.8", + "version": "9.3.0", "dev": true, "license": "MIT", "dependencies": { @@ -7739,8 +7687,6 @@ }, "node_modules/tsconfig-paths": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7762,7 +7708,7 @@ } }, "node_modules/tslib": { - "version": "2.3.1", + "version": "2.4.0", "license": "0BSD" }, "node_modules/tsutils": { @@ -7831,13 +7777,13 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.1", + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" }, "funding": { @@ -7952,13 +7898,12 @@ "license": "MIT" }, "node_modules/webidl-conversions": { - "version": "3.0.1", + "version": "4.0.2", + "dev": true, "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.72.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz", - "integrity": "sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==", + "version": "5.72.1", "dev": true, "license": "MIT", "dependencies": { @@ -7971,13 +7916,13 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", + "enhanced-resolve": "^5.9.3", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", + "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", @@ -8076,9 +8021,7 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz", - "integrity": "sha512-dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg==", + "version": "4.9.0", "dev": true, "license": "MIT", "dependencies": { @@ -8102,7 +8045,6 @@ "ipaddr.js": "^2.0.1", "open": "^8.0.9", "p-retry": "^4.5.0", - "portfinder": "^1.0.28", "rimraf": "^3.0.2", "schema-utils": "^4.0.0", "selfsigned": "^2.0.1", @@ -8190,11 +8132,13 @@ "license": "MIT" }, "node_modules/whatwg-url": { - "version": "5.0.0", + "version": "7.1.0", + "dev": true, "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, "node_modules/which": { @@ -8336,7 +8280,7 @@ "license": "ISC" }, "node_modules/ws": { - "version": "8.5.0", + "version": "8.6.0", "dev": true, "license": "MIT", "engines": { @@ -8386,8 +8330,6 @@ }, "node_modules/yargs": { "version": "17.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", - "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", "dev": true, "license": "MIT", "dependencies": { @@ -8451,10 +8393,11 @@ }, "dependencies": { "@ampproject/remapping": { - "version": "2.1.2", + "version": "2.2.0", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@angular/animations": { @@ -8540,25 +8483,23 @@ } }, "@babel/compat-data": { - "version": "7.17.7", + "version": "7.17.10", "dev": true }, "@babel/core": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", - "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "version": "7.17.10", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", + "@babel/generator": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", "@babel/helper-module-transforms": "^7.17.7", "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", + "@babel/parser": "^7.17.10", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/traverse": "^7.17.10", + "@babel/types": "^7.17.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -8573,29 +8514,21 @@ } }, "@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "version": "7.17.10", "dev": true, "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "dev": true - } + "@babel/types": "^7.17.10", + "@jridgewell/gen-mapping": "^0.1.0", + "jsesc": "^2.5.1" } }, "@babel/helper-compilation-targets": { - "version": "7.17.7", + "version": "7.17.10", "dev": true, "requires": { - "@babel/compat-data": "^7.17.7", + "@babel/compat-data": "^7.17.10", "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "browserslist": "^4.20.2", "semver": "^6.3.0" }, "dependencies": { @@ -8614,8 +8547,6 @@ }, "@babel/helper-function-name": { "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "dev": true, "requires": { "@babel/template": "^7.16.7", @@ -8674,8 +8605,6 @@ }, "@babel/helpers": { "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "dev": true, "requires": { "@babel/template": "^7.16.7", @@ -8685,8 +8614,6 @@ }, "@babel/highlight": { "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -8695,9 +8622,7 @@ } }, "@babel/parser": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", - "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "version": "7.17.10", "dev": true }, "@babel/template": { @@ -8710,25 +8635,23 @@ } }, "@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "version": "7.17.10", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", + "@babel/generator": "^7.17.10", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/parser": "^7.17.10", + "@babel/types": "^7.17.10", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.17.0", + "version": "7.17.10", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -8787,9 +8710,7 @@ } }, "@braintree/browser-detection": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@braintree/browser-detection/-/browser-detection-1.12.1.tgz", - "integrity": "sha512-i/54qrax5o/WbJJhsE/7qqKE594/kGhR+xSu/w13rT7Mlr/uITkWDXzxffcKQ6l6FQxK0IG0EfgT6TJpWgZcUQ==" + "version": "1.12.1" }, "@braintree/class-list": { "version": "0.2.0" @@ -8804,9 +8725,7 @@ "version": "1.1.0" }, "@braintree/sanitize-url": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.0.tgz", - "integrity": "sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==" + "version": "6.0.0" }, "@braintree/uuid": { "version": "0.1.0" @@ -8819,22 +8738,22 @@ "dev": true }, "@eslint/eslintrc": { - "version": "1.2.1", + "version": "1.2.3", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", + "espree": "^9.3.2", "globals": "^13.9.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "dependencies": { "globals": { - "version": "13.13.0", + "version": "13.14.0", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -8859,18 +8778,28 @@ "version": "1.2.1", "dev": true }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@jridgewell/resolve-uri": { - "version": "3.0.5", + "version": "3.0.7", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.1", "dev": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", + "version": "1.4.13", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.7.tgz", - "integrity": "sha512-8XC0l0PwCbdg2Uc8zIIf6djNX3lYiz9GqQlC1LJ9WQvTYvcfP8IA9K2IKRnPm5tAX6X/+orF+WwKZ0doGcgJlg==", + "version": "0.3.11", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -8878,9 +8807,7 @@ } }, "@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==", + "version": "2.0.4", "dev": true }, "@microsoft/signalr": { @@ -8910,8 +8837,6 @@ }, "@ngtools/webpack": { "version": "12.2.17", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.17.tgz", - "integrity": "sha512-uaS+2YZgPDW3VmUuwh4/yfIFV1KRVGWefc6xLWIqKRKs6mlRYs65m3ib9dX7CTS4kQMCbhxkxMbpBO2yXlzfvA==", "dev": true, "requires": {} }, @@ -8973,7 +8898,7 @@ "dev": true }, "@types/eslint": { - "version": "8.4.1", + "version": "8.4.2", "dev": true, "requires": { "@types/estree": "*", @@ -9024,7 +8949,7 @@ "dev": true }, "@types/http-proxy": { - "version": "1.17.8", + "version": "1.17.9", "dev": true, "requires": { "@types/node": "*" @@ -9039,8 +8964,6 @@ }, "@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 }, "@types/json5": { @@ -9060,13 +8983,11 @@ "dev": true }, "@types/node": { - "version": "16.11.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.27.tgz", - "integrity": "sha512-C1pD3kgLoZ56Uuy5lhfOxie4aZlA3UMGLX9rXteq4WitEZH6Rl80mwactt9QG0w0gLFlN/kLBTFnGXtDVWvWQw==", + "version": "16.11.33", "dev": true }, "@types/node-forge": { - "version": "1.0.1", + "version": "1.0.2", "dev": true, "requires": { "@types/node": "*" @@ -9092,7 +9013,7 @@ "dev": true }, "@types/retry": { - "version": "0.12.1", + "version": "0.12.0", "dev": true }, "@types/serve-index": { @@ -9150,14 +9071,12 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz", - "integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==", + "version": "5.23.0", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/type-utils": "5.20.0", - "@typescript-eslint/utils": "5.20.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/type-utils": "5.23.0", + "@typescript-eslint/utils": "5.23.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -9167,52 +9086,42 @@ } }, "@typescript-eslint/parser": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", - "integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==", + "version": "5.23.0", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", - "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", + "version": "5.23.0", "dev": true, "requires": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0" + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" } }, "@typescript-eslint/type-utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz", - "integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==", + "version": "5.23.0", "dev": true, "requires": { - "@typescript-eslint/utils": "5.20.0", + "@typescript-eslint/utils": "5.23.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", - "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", + "version": "5.23.0", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", - "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", + "version": "5.23.0", "dev": true, "requires": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -9221,26 +9130,22 @@ } }, "@typescript-eslint/utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz", - "integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==", + "version": "5.23.0", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", - "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", + "version": "5.23.0", "dev": true, "requires": { - "@typescript-eslint/types": "5.20.0", + "@typescript-eslint/types": "5.23.0", "eslint-visitor-keys": "^3.0.0" } }, @@ -9400,7 +9305,7 @@ } }, "acorn": { - "version": "8.7.0", + "version": "8.7.1", "dev": true }, "acorn-import-assertions": { @@ -9459,8 +9364,6 @@ "dependencies": { "ajv": { "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -9523,12 +9426,12 @@ "dev": true }, "array-includes": { - "version": "3.1.4", + "version": "3.1.5", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" } @@ -9543,8 +9446,6 @@ }, "array.prototype.flat": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -9559,8 +9460,6 @@ }, "async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "requires": { "lodash": "^4.17.14" @@ -9570,11 +9469,11 @@ "version": "1.0.1" }, "autoprefixer": { - "version": "10.4.4", + "version": "10.4.7", "dev": true, "requires": { - "browserslist": "^4.20.2", - "caniuse-lite": "^1.0.30001317", + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -9624,19 +9523,21 @@ } }, "body-parser": { - "version": "1.19.2", + "version": "1.20.0", "dev": true, "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "dependencies": { "bytes": { @@ -9657,9 +9558,7 @@ } }, "bonjour-service": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.11.tgz", - "integrity": "sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==", + "version": "1.0.12", "dev": true, "requires": { "array-flatten": "^2.1.2", @@ -9693,8 +9592,6 @@ }, "braintree-web": { "version": "3.85.3", - "resolved": "https://registry.npmjs.org/braintree-web/-/braintree-web-3.85.3.tgz", - "integrity": "sha512-slCnjD/YLFDmiOU0vxL7i4uifjRQV5Cw7dSkhRdXiIT+a8iQ7NxtL5FSomv45wuHqgdilZeQ8iB8guIrn6QgwA==", "requires": { "@braintree/asset-loader": "0.4.4", "@braintree/browser-detection": "1.12.1", @@ -9715,8 +9612,6 @@ }, "braintree-web-drop-in": { "version": "1.33.1", - "resolved": "https://registry.npmjs.org/braintree-web-drop-in/-/braintree-web-drop-in-1.33.1.tgz", - "integrity": "sha512-/gVWpFIGATxVBqBCp7ZTg2vPsH5aZXAASiBVWZ8Tqebntmj0F0KlCtxfvq8k2qMSwKBzhDEgmMp2o0hAcsfM6g==", "requires": { "@braintree/asset-loader": "0.4.4", "@braintree/browser-detection": "1.12.1", @@ -9732,13 +9627,13 @@ "version": "1.1.8" }, "browserslist": { - "version": "4.20.2", + "version": "4.20.3", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", "escalade": "^3.1.1", - "node-releases": "^2.0.2", + "node-releases": "^2.0.3", "picocolors": "^1.0.0" } }, @@ -9783,9 +9678,7 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001332", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", - "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", + "version": "1.0.30001339", "dev": true }, "canonical-path": { @@ -9827,8 +9720,6 @@ }, "clean-css": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", - "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", "dev": true, "requires": { "source-map": "~0.6.0" @@ -9986,7 +9877,7 @@ } }, "cookie": { - "version": "0.4.2", + "version": "0.5.0", "dev": true }, "cookie-signature": { @@ -10035,9 +9926,7 @@ } }, "core-js": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.1.tgz", - "integrity": "sha512-l6CwCLq7XgITOQGhv1dIUmwCFoqFjyQ6zQHUCQlS0xKmb9d6OHIg8jDiEoswhaettT21BSF5qKr6kbvE+aKwxw==" + "version": "3.22.5" }, "core-util-is": { "version": "1.0.3" @@ -10088,8 +9977,6 @@ }, "css-select": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, "requires": { "boolbase": "^1.0.0", @@ -10101,8 +9988,6 @@ }, "css-what": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true }, "cssesc": { @@ -10139,8 +10024,6 @@ }, "define-properties": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { "has-property-descriptors": "^1.0.0", @@ -10198,7 +10081,7 @@ } }, "depd": { - "version": "1.1.2", + "version": "2.0.0", "dev": true }, "dependency-graph": { @@ -10206,7 +10089,7 @@ "dev": true }, "destroy": { - "version": "1.0.4", + "version": "1.2.0", "dev": true }, "detect-node": { @@ -10243,8 +10126,6 @@ }, "dns-packet": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", - "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", "dev": true, "requires": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -10266,8 +10147,6 @@ }, "dom-serializer": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "requires": { "domelementtype": "^2.0.1", @@ -10277,8 +10156,6 @@ }, "domelementtype": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true }, "domhandler": { @@ -10306,7 +10183,7 @@ } }, "duo_web_sdk": { - "version": "git+ssh://git@github.com/duosecurity/duo_web_sdk.git#23314a9830b0cdc1c2d086697563cda3c8884a87", + "version": "git+ssh://git@github.com/duosecurity/duo_web_sdk.git#f43ff8f1325f8630d0cff1cd9fb0df13d22cf28d", "from": "duo_web_sdk@git+https://github.com/duosecurity/duo_web_sdk.git" }, "eastasianwidth": { @@ -10318,9 +10195,7 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.114", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.114.tgz", - "integrity": "sha512-gRwLpVYWHGbERPU6o8pKfR168V6enWEXzZc6zQNNXbgJ7UJna+9qzAIHY94+9KOv71D/CH+QebLA9pChD2q8zA==", + "version": "1.4.137", "dev": true }, "email-addresses": { @@ -10337,8 +10212,6 @@ }, "enhanced-resolve": { "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -10361,17 +10234,17 @@ } }, "es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "version": "1.20.0", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", @@ -10383,9 +10256,10 @@ "object-inspect": "^1.12.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "regexp.prototype.flags": "^1.4.1", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-module-lexer": { @@ -10394,8 +10268,6 @@ }, "es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, "requires": { "has": "^1.0.3" @@ -10426,12 +10298,10 @@ "dev": true }, "eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", - "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", + "version": "8.15.0", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.1", + "@eslint/eslintrc": "^1.2.3", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -10442,7 +10312,7 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -10458,7 +10328,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -10518,7 +10388,7 @@ } }, "globals": { - "version": "13.13.0", + "version": "13.14.0", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -10565,8 +10435,6 @@ }, "eslint-import-resolver-typescript": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz", - "integrity": "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==", "dev": true, "requires": { "debug": "^4.3.4", @@ -10595,8 +10463,6 @@ }, "eslint-plugin-import": { "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -10660,11 +10526,11 @@ "dev": true }, "espree": { - "version": "9.3.1", + "version": "9.3.2", "dev": true, "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } }, @@ -10739,36 +10605,37 @@ } }, "express": { - "version": "4.17.3", + "version": "4.18.1", "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -10871,15 +10738,15 @@ } }, "finalhandler": { - "version": "1.1.2", + "version": "1.2.0", "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "dependencies": { @@ -10925,7 +10792,7 @@ "dev": true }, "follow-redirects": { - "version": "1.14.9", + "version": "1.15.0", "dev": true }, "foreach": { @@ -10976,10 +10843,24 @@ "version": "1.1.1", "dev": true }, + "function.prototype.name": { + "version": "1.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, "functional-red-black-tree": { "version": "1.0.1", "dev": true }, + "functions-have-names": { + "version": "1.2.3", + "dev": true + }, "gensync": { "version": "1.0.0-beta.2", "dev": true @@ -11087,8 +10968,6 @@ }, "graceful-fs": { "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, "handle-thing": { @@ -11104,8 +10983,6 @@ }, "has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, "has-flag": { @@ -11114,8 +10991,6 @@ }, "has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, "requires": { "get-intrinsic": "^1.1.1" @@ -11148,8 +11023,6 @@ }, "html-entities": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", "dev": true }, "html-loader": { @@ -11215,13 +11088,13 @@ "dev": true }, "http-errors": { - "version": "1.8.1", + "version": "2.0.0", "dev": true, "requires": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" } }, @@ -11239,9 +11112,7 @@ } }, "http-proxy-middleware": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.5.tgz", - "integrity": "sha512-ORErEaxkjyrhifofwCuQttHPUSestLtiPDwV0qQOFB0ww6695H953wIGRnkakw1K+GAP+t8/RPbfDB75RFL4Fg==", + "version": "2.0.6", "dev": true, "requires": { "@types/http-proxy": "^1.17.8", @@ -11322,9 +11193,7 @@ "version": "2.0.4" }, "inject-stylesheet": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/inject-stylesheet/-/inject-stylesheet-5.0.0.tgz", - "integrity": "sha512-GzncrJP8E/pavMQzoO93CXoYCfTttwVm2cX2TyXJdgtVE0cCvWSFCn1/uMsM6ZkEg7LUsOcKuamcLiGWlv2p9A==" + "version": "5.0.0" }, "internal-slot": { "version": "1.0.3", @@ -11383,8 +11252,6 @@ }, "is-core-module": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "requires": { "has": "^1.0.3" @@ -11433,8 +11300,6 @@ }, "is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -11479,8 +11344,6 @@ }, "is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, "requires": { "call-bind": "^1.0.2" @@ -11580,10 +11443,6 @@ "version": "2.5.2", "dev": true }, - "json-parse-better-errors": { - "version": "1.0.2", - "dev": true - }, "json-parse-even-better-errors": { "version": "2.3.1", "dev": true @@ -11609,8 +11468,6 @@ }, "jszip": { "version": "3.9.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.9.1.tgz", - "integrity": "sha512-H9A60xPqJ1CuC4Ka6qxzXZeU8aNmgOeP5IFqwJbQQwtu2EUYxota3LdsiZWplF7Wgd9tkAd0mdu36nceSaPuYw==", "requires": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -11649,9 +11506,7 @@ "dev": true }, "lint-staged": { - "version": "12.3.8", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.8.tgz", - "integrity": "sha512-0+UpNaqIwKRSGAFOCcpuYNIv/j5QGVC+xUVvmSdxHO+IfIGoHbFLo3XcPmV/LLnsVj5EAncNHVtlITSoY5qWGQ==", + "version": "12.4.1", "dev": true, "requires": { "cli-truncate": "^3.1.0", @@ -11676,8 +11531,6 @@ }, "supports-color": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz", - "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==", "dev": true } } @@ -11759,8 +11612,6 @@ }, "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 }, "locate-path": { @@ -11779,6 +11630,10 @@ "version": "4.6.2", "dev": true }, + "lodash.sortby": { + "version": "4.7.0", + "dev": true + }, "log-update": { "version": "4.0.0", "dev": true, @@ -11910,8 +11765,6 @@ }, "micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { "braces": "^3.0.2", @@ -11959,15 +11812,6 @@ "version": "1.2.6", "dev": true }, - "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, - "requires": { - "minimist": "^1.2.6" - } - }, "ms": { "version": "2.1.2", "dev": true @@ -11983,8 +11827,6 @@ }, "multicast-dns": { "version": "7.2.4", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", - "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", "dev": true, "requires": { "dns-packet": "^5.2.2", @@ -11992,9 +11834,7 @@ } }, "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "version": "3.3.4", "dev": true }, "natural-compare": { @@ -12034,17 +11874,28 @@ "version": "2.6.7", "requires": { "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3" + }, + "webidl-conversions": { + "version": "3.0.1" + }, + "whatwg-url": { + "version": "5.0.0", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } } }, "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + "version": "1.3.1" }, "node-releases": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", - "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", + "version": "2.0.4", "dev": true }, "normalize-path": { @@ -12075,8 +11926,6 @@ }, "object-hash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "dev": true }, "object-inspect": { @@ -12111,7 +11960,7 @@ "dev": true }, "on-finished": { - "version": "2.3.0", + "version": "2.4.1", "dev": true, "requires": { "ee-first": "1.1.1" @@ -12184,10 +12033,10 @@ "dev": true }, "p-retry": { - "version": "4.6.1", + "version": "4.6.2", "dev": true, "requires": { - "@types/retry": "^0.12.0", + "@types/retry": "0.12.0", "retry": "^0.13.1" } }, @@ -12346,29 +12195,11 @@ "popper.js": { "version": "1.16.1" }, - "portfinder": { - "version": "1.0.28", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, "postcss": { - "version": "8.4.12", + "version": "8.4.13", "dev": true, "requires": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.3", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -12382,8 +12213,6 @@ }, "postcss-load-config": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", "dev": true, "requires": { "lilconfig": "^2.0.5", @@ -12392,8 +12221,6 @@ "dependencies": { "lilconfig": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true } } @@ -12444,8 +12271,6 @@ }, "postcss-selector-parser": { "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -12480,9 +12305,7 @@ "version": "2.0.1" }, "promise-polyfill": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", - "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==" + "version": "8.2.3" }, "proxy-addr": { "version": "2.0.7", @@ -12508,8 +12331,11 @@ "version": "4.0.2" }, "qs": { - "version": "6.9.7", - "dev": true + "version": "6.10.3", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } }, "querystringify": { "version": "2.2.0" @@ -12534,11 +12360,11 @@ "dev": true }, "raw-body": { - "version": "2.4.3", + "version": "2.5.1", "dev": true, "requires": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -12582,6 +12408,15 @@ "regenerator-runtime": { "version": "0.11.1" }, + "regexp.prototype.flags": { + "version": "1.4.3", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, "regexpp": { "version": "3.2.0", "dev": true @@ -12648,8 +12483,6 @@ }, "restricted-input": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/restricted-input/-/restricted-input-3.0.5.tgz", - "integrity": "sha512-lUuXZ3wUnHURRarj5/0C8vomWIfWJO+p7T6RYwB46v7Oyuyr3yyupU+i7SjqUv4S6RAeAAZt1C/QCLJ9xhQBow==", "requires": { "@braintree/browser-detection": "^1.12.1" } @@ -12694,9 +12527,7 @@ "dev": true }, "sass": { - "version": "1.50.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz", - "integrity": "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==", + "version": "1.51.0", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -12724,8 +12555,6 @@ "dependencies": { "ajv": { "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -12753,8 +12582,6 @@ }, "selfsigned": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", "dev": true, "requires": { "node-forge": "^1" @@ -12762,30 +12589,28 @@ }, "semver": { "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "send": { - "version": "0.17.2", + "version": "0.18.0", "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { "debug": { @@ -12834,6 +12659,10 @@ "ms": "2.0.0" } }, + "depd": { + "version": "1.1.2", + "dev": true + }, "http-errors": { "version": "1.6.3", "dev": true, @@ -12855,17 +12684,21 @@ "setprototypeof": { "version": "1.1.0", "dev": true + }, + "statuses": { + "version": "1.5.0", + "dev": true } } }, "serve-static": { - "version": "1.14.2", + "version": "1.15.0", "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" } }, "set-immediate-shim": { @@ -12988,7 +12821,7 @@ } }, "statuses": { - "version": "1.5.0", + "version": "2.0.1", "dev": true }, "string_decoder": { @@ -13024,19 +12857,21 @@ } }, "string.prototype.trimend": { - "version": "1.0.4", + "version": "1.0.5", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "string.prototype.trimstart": { - "version": "1.0.4", + "version": "1.0.5", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "strip-ansi": { @@ -13086,8 +12921,6 @@ }, "tailwindcss": { "version": "3.0.24", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz", - "integrity": "sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==", "dev": true, "requires": { "arg": "^5.0.1", @@ -13126,8 +12959,6 @@ }, "lilconfig": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true } } @@ -13137,18 +12968,21 @@ "dev": true }, "terser": { - "version": "5.12.1", + "version": "5.13.1", "dev": true, "requires": { "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", + "source-map": "~0.8.0-beta.0", "source-map-support": "~0.5.20" }, "dependencies": { "source-map": { - "version": "0.7.3", - "dev": true + "version": "0.8.0-beta.0", + "dev": true, + "requires": { + "whatwg-url": "^7.0.0" + } } } }, @@ -13220,7 +13054,11 @@ } }, "tr46": { - "version": "0.0.3" + "version": "1.0.1", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } }, "trim-repeated": { "version": "1.0.0", @@ -13230,7 +13068,7 @@ } }, "ts-loader": { - "version": "9.2.8", + "version": "9.3.0", "dev": true, "requires": { "chalk": "^4.1.0", @@ -13280,8 +13118,6 @@ }, "tsconfig-paths": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -13300,7 +13136,7 @@ } }, "tslib": { - "version": "2.3.1" + "version": "2.4.0" }, "tsutils": { "version": "3.21.0", @@ -13339,12 +13175,12 @@ "dev": true }, "unbox-primitive": { - "version": "1.0.1", + "version": "1.0.2", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, @@ -13424,12 +13260,11 @@ "version": "0.1.7" }, "webidl-conversions": { - "version": "3.0.1" + "version": "4.0.2", + "dev": true }, "webpack": { - "version": "5.72.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz", - "integrity": "sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==", + "version": "5.72.1", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -13441,13 +13276,13 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", + "enhanced-resolve": "^5.9.3", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", + "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", @@ -13505,9 +13340,7 @@ } }, "webpack-dev-server": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz", - "integrity": "sha512-dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg==", + "version": "4.9.0", "dev": true, "requires": { "@types/bonjour": "^3.5.9", @@ -13530,7 +13363,6 @@ "ipaddr.js": "^2.0.1", "open": "^8.0.9", "p-retry": "^4.5.0", - "portfinder": "^1.0.28", "rimraf": "^3.0.2", "schema-utils": "^4.0.0", "selfsigned": "^2.0.1", @@ -13570,10 +13402,12 @@ "version": "3.6.2" }, "whatwg-url": { - "version": "5.0.0", + "version": "7.1.0", + "dev": true, "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, "which": { @@ -13665,7 +13499,7 @@ "dev": true }, "ws": { - "version": "8.5.0", + "version": "8.6.0", "dev": true, "requires": {} }, @@ -13687,8 +13521,6 @@ }, "yargs": { "version": "17.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", - "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", "dev": true, "requires": { "cliui": "^7.0.2", diff --git a/src/app/modules/loose-components.module.ts b/src/app/modules/loose-components.module.ts index 34504c6101..89c0cb567b 100644 --- a/src/app/modules/loose-components.module.ts +++ b/src/app/modules/loose-components.module.ts @@ -58,6 +58,7 @@ import { SingleOrgPolicyComponent } from "../organizations/policies/single-org.c import { TwoFactorAuthenticationPolicyComponent } from "../organizations/policies/two-factor-authentication.component"; import { AccountComponent as OrgAccountComponent } from "../organizations/settings/account.component"; import { AdjustSubscription } from "../organizations/settings/adjust-subscription.component"; +import { BillingSyncApiKeyComponent } from "../organizations/settings/billing-sync-api-key.component"; import { ChangePlanComponent } from "../organizations/settings/change-plan.component"; import { DeleteOrganizationComponent } from "../organizations/settings/delete-organization.component"; import { DownloadLicenseComponent } from "../organizations/settings/download-license.component"; @@ -66,6 +67,7 @@ import { OrganizationBillingComponent } from "../organizations/settings/organiza import { OrganizationSubscriptionComponent } from "../organizations/settings/organization-subscription.component"; import { SettingsComponent as OrgSettingComponent } from "../organizations/settings/settings.component"; import { TwoFactorSetupComponent as OrgTwoFactorSetupComponent } from "../organizations/settings/two-factor-setup.component"; +import { AcceptFamilySponsorshipComponent } from "../organizations/sponsorships/accept-family-sponsorship.component"; import { FamiliesForEnterpriseSetupComponent } from "../organizations/sponsorships/families-for-enterprise-setup.component"; import { ExportComponent as OrgExportComponent } from "../organizations/tools/export.component"; import { ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent } from "../organizations/tools/exposed-passwords-report.component"; @@ -98,6 +100,7 @@ import { AddCreditComponent } from "../settings/add-credit.component"; import { AdjustPaymentComponent } from "../settings/adjust-payment.component"; import { AdjustStorageComponent } from "../settings/adjust-storage.component"; import { ApiKeyComponent } from "../settings/api-key.component"; +import { BillingSyncKeyComponent } from "../settings/billing-sync-key.component"; import { ChangeEmailComponent } from "../settings/change-email.component"; import { ChangeKdfComponent } from "../settings/change-kdf.component"; import { ChangePasswordComponent } from "../settings/change-password.component"; @@ -171,6 +174,7 @@ import { OrganizationBadgeModule } from "./vault/modules/organization-badge/orga declarations: [ PremiumBadgeComponent, AcceptEmergencyComponent, + AcceptFamilySponsorshipComponent, AcceptOrganizationComponent, AccessComponent, AccountComponent, @@ -183,6 +187,8 @@ import { OrganizationBadgeModule } from "./vault/modules/organization-badge/orga AdjustSubscription, ApiKeyComponent, AttachmentsComponent, + BillingSyncApiKeyComponent, + BillingSyncKeyComponent, BreachReportComponent, BulkActionsComponent, BulkDeleteComponent, diff --git a/src/app/organizations/settings/billing-sync-api-key.component.html b/src/app/organizations/settings/billing-sync-api-key.component.html new file mode 100644 index 0000000000..2319fe6302 --- /dev/null +++ b/src/app/organizations/settings/billing-sync-api-key.component.html @@ -0,0 +1,117 @@ + diff --git a/src/app/organizations/settings/billing-sync-api-key.component.ts b/src/app/organizations/settings/billing-sync-api-key.component.ts new file mode 100644 index 0000000000..47e70c7563 --- /dev/null +++ b/src/app/organizations/settings/billing-sync-api-key.component.ts @@ -0,0 +1,108 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { OrganizationApiKeyType } from "jslib-common/enums/organizationApiKeyType"; +import { OrganizationApiKeyRequest } from "jslib-common/models/request/organizationApiKeyRequest"; +import { ApiKeyResponse } from "jslib-common/models/response/apiKeyResponse"; +import { Verification } from "jslib-common/types/verification"; + +@Component({ + selector: "app-billing-sync-api-key", + templateUrl: "billing-sync-api-key.component.html", +}) +export class BillingSyncApiKeyComponent { + organizationId: string; + hasBillingToken: boolean; + + showRotateScreen: boolean; + masterPassword: Verification; + formPromise: Promise; + clientSecret?: string; + keyRevisionDate?: Date; + lastSyncDate?: Date = null; + + constructor( + private userVerificationService: UserVerificationService, + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService + ) {} + + copy() { + this.platformUtilsService.copyToClipboard(this.clientSecret); + } + + async submit() { + if (this.showRotateScreen) { + this.formPromise = this.userVerificationService + .buildRequest(this.masterPassword, OrganizationApiKeyRequest) + .then((request) => { + request.type = OrganizationApiKeyType.BillingSync; + return this.apiService.postOrganizationRotateApiKey(this.organizationId, request); + }); + const response = await this.formPromise; + await this.load(response); + this.showRotateScreen = false; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("billingSyncApiKeyRotated") + ); + } else { + this.formPromise = this.userVerificationService + .buildRequest(this.masterPassword, OrganizationApiKeyRequest) + .then((request) => { + request.type = OrganizationApiKeyType.BillingSync; + return this.apiService.postOrganizationApiKey(this.organizationId, request); + }); + const response = await this.formPromise; + await this.load(response); + } + } + + async load(response: ApiKeyResponse) { + this.clientSecret = response.apiKey; + this.keyRevisionDate = response.revisionDate; + this.hasBillingToken = true; + const syncStatus = await this.apiService.getSponsorshipSyncStatus(this.organizationId); + this.lastSyncDate = syncStatus.lastSyncDate; + } + + cancelRotate() { + this.showRotateScreen = false; + } + + rotateToken() { + this.showRotateScreen = true; + } + + private dayDiff(date1: Date, date2: Date): number { + const diffTime = Math.abs(date2.getTime() - date1.getTime()); + return Math.round(diffTime / (1000 * 60 * 60 * 24)); + } + + get submitButtonText(): string { + if (this.showRotateScreen) { + return this.i18nService.t("rotateToken"); + } + + return this.i18nService.t(this.hasBillingToken ? "continue" : "generateToken"); + } + + get showLastSyncText(): boolean { + // If the keyRevisionDate is later than the lastSyncDate we need to show + // a warning that they need to put the billing sync key in their self hosted install + return this.lastSyncDate && this.lastSyncDate > this.keyRevisionDate; + } + + get showAwaitingSyncText(): boolean { + return this.lastSyncDate && this.lastSyncDate <= this.keyRevisionDate; + } + + get daysBetween(): number { + return this.dayDiff(this.keyRevisionDate, new Date()); + } +} diff --git a/src/app/organizations/settings/organization-subscription.component.html b/src/app/organizations/settings/organization-subscription.component.html index 20e93ceb8f..60e1341475 100644 --- a/src/app/organizations/settings/organization-subscription.component.html +++ b/src/app/organizations/settings/organization-subscription.component.html @@ -188,10 +188,10 @@ > - -

{{ "additionalOptions" | i18n }}

+ +

{{ "selfHostingTitle" | i18n }}

- {{ "additionalOptionsDesc" | i18n }} + {{ "selfHostingEnterpriseOrganizationSectionCopy" | i18n }}

+ +
+
+ +
+

{{ "additionalOptions" | i18n }}

+

+ {{ "additionalOptionsDesc" | i18n }} +

+
-
- -
@@ -269,5 +283,31 @@ > +
+

+ {{ "billingSync" | i18n }} +

+

+ {{ "billingSyncDesc" | i18n }} +

+ + + {{ "lastSync" | i18n }}: + + {{ userOrg.familySponsorshipLastSyncDate | date: "medium" }} + + + {{ "never" | i18n | lowercase }} + + +
+ + diff --git a/src/app/organizations/settings/organization-subscription.component.ts b/src/app/organizations/settings/organization-subscription.component.ts index edc8287e21..e829e82081 100644 --- a/src/app/organizations/settings/organization-subscription.component.ts +++ b/src/app/organizations/settings/organization-subscription.component.ts @@ -1,21 +1,34 @@ -import { Component, OnInit } from "@angular/core"; +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; import { ActivatedRoute } from "@angular/router"; +import { ModalRef } from "jslib-angular/components/modal/modal.ref"; +import { ModalService } from "jslib-angular/services/modal.service"; import { ApiService } from "jslib-common/abstractions/api.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { LogService } from "jslib-common/abstractions/log.service"; import { MessagingService } from "jslib-common/abstractions/messaging.service"; import { OrganizationService } from "jslib-common/abstractions/organization.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { OrganizationApiKeyType } from "jslib-common/enums/organizationApiKeyType"; +import { OrganizationConnectionType } from "jslib-common/enums/organizationConnectionType"; import { PlanType } from "jslib-common/enums/planType"; +import { BillingSyncConfigApi } from "jslib-common/models/api/billingSyncConfigApi"; import { Organization } from "jslib-common/models/domain/organization"; +import { OrganizationConnectionResponse } from "jslib-common/models/response/organizationConnectionResponse"; import { OrganizationSubscriptionResponse } from "jslib-common/models/response/organizationSubscriptionResponse"; +import { BillingSyncKeyComponent } from "src/app/settings/billing-sync-key.component"; + +import { BillingSyncApiKeyComponent } from "./billing-sync-api-key.component"; + @Component({ selector: "app-org-subscription", templateUrl: "organization-subscription.component.html", }) export class OrganizationSubscriptionComponent implements OnInit { + @ViewChild("setupBillingSyncTemplate", { read: ViewContainerRef, static: true }) + setupBillingSyncModalRef: ViewContainerRef; + loading = false; firstLoaded = false; organizationId: string; @@ -25,17 +38,24 @@ export class OrganizationSubscriptionComponent implements OnInit { adjustStorageAdd = true; showAdjustStorage = false; showUpdateLicense = false; + showBillingSyncKey = false; showDownloadLicense = false; showChangePlan = false; sub: OrganizationSubscriptionResponse; selfHosted = false; + hasBillingSyncToken: boolean; userOrg: Organization; + existingBillingSyncConnection: OrganizationConnectionResponse; removeSponsorshipPromise: Promise; cancelPromise: Promise; reinstatePromise: Promise; + @ViewChild("rotateBillingSyncKeyTemplate", { read: ViewContainerRef, static: true }) + billingSyncKeyViewContainerRef: ViewContainerRef; + billingSyncKeyRef: [ModalRef, BillingSyncKeyComponent]; + constructor( private apiService: ApiService, private platformUtilsService: PlatformUtilsService, @@ -43,7 +63,8 @@ export class OrganizationSubscriptionComponent implements OnInit { private messagingService: MessagingService, private route: ActivatedRoute, private organizationService: OrganizationService, - private logService: LogService + private logService: LogService, + private modalService: ModalService ) { this.selfHosted = platformUtilsService.isSelfHost(); } @@ -63,10 +84,27 @@ export class OrganizationSubscriptionComponent implements OnInit { this.loading = true; this.userOrg = await this.organizationService.get(this.organizationId); - if (this.userOrg.canManageBilling) { this.sub = await this.apiService.getOrganizationSubscription(this.organizationId); } + const apiKeyResponse = await this.apiService.getOrganizationApiKeyInformation( + this.organizationId + ); + this.hasBillingSyncToken = apiKeyResponse.data.some( + (i) => i.keyType === OrganizationApiKeyType.BillingSync + ); + + if (this.selfHosted) { + this.showBillingSyncKey = await this.apiService.getCloudCommunicationsEnabled(); + } + + if (this.showBillingSyncKey) { + this.existingBillingSyncConnection = await this.apiService.getOrganizationConnection( + this.organizationId, + OrganizationConnectionType.CloudBillingSync, + BillingSyncConfigApi + ); + } this.loading = false; } @@ -138,6 +176,20 @@ export class OrganizationSubscriptionComponent implements OnInit { this.showDownloadLicense = !this.showDownloadLicense; } + async manageBillingSync() { + const [ref] = await this.modalService.openViewRef( + BillingSyncApiKeyComponent, + this.setupBillingSyncModalRef, + (comp) => { + comp.organizationId = this.organizationId; + comp.hasBillingToken = this.hasBillingSyncToken; + } + ); + ref.onClosed.subscribe(async () => { + await this.load(); + }); + } + closeDownloadLicense() { this.showDownloadLicense = false; } @@ -200,6 +252,24 @@ export class OrganizationSubscriptionComponent implements OnInit { } } + async manageBillingSyncSelfHosted() { + this.billingSyncKeyRef = await this.modalService.openViewRef( + BillingSyncKeyComponent, + this.billingSyncKeyViewContainerRef, + (comp) => { + comp.entityId = this.organizationId; + comp.existingConnectionId = this.existingBillingSyncConnection?.id; + comp.billingSyncKey = this.existingBillingSyncConnection?.config?.billingSyncKey; + comp.setParentConnection = ( + connection: OrganizationConnectionResponse + ) => { + this.existingBillingSyncConnection = connection; + this.billingSyncKeyRef[0].close(); + }; + } + ); + } + get isExpired() { return ( this.sub != null && this.sub.expiration != null && new Date(this.sub.expiration) < new Date() @@ -266,6 +336,16 @@ export class OrganizationSubscriptionComponent implements OnInit { ); } + get canManageBillingSync() { + return ( + !this.selfHosted && + (this.sub.planType === PlanType.EnterpriseAnnually || + this.sub.planType === PlanType.EnterpriseMonthly || + this.sub.planType === PlanType.EnterpriseAnnually2019 || + this.sub.planType === PlanType.EnterpriseMonthly2019) + ); + } + get subscriptionDesc() { if (this.sub.planType === PlanType.Free) { return this.i18nService.t("subscriptionFreePlan", this.sub.seats.toString()); @@ -293,4 +373,8 @@ export class OrganizationSubscriptionComponent implements OnInit { get showChangePlanButton() { return this.subscription == null && this.sub.planType === PlanType.Free && !this.showChangePlan; } + + get billingSyncSetUp() { + return this.existingBillingSyncConnection?.id != null; + } } diff --git a/src/app/settings/billing-sync-key.component.html b/src/app/settings/billing-sync-key.component.html new file mode 100644 index 0000000000..e7e46e637c --- /dev/null +++ b/src/app/settings/billing-sync-key.component.html @@ -0,0 +1,69 @@ + diff --git a/src/app/settings/billing-sync-key.component.ts b/src/app/settings/billing-sync-key.component.ts new file mode 100644 index 0000000000..9b80037c2d --- /dev/null +++ b/src/app/settings/billing-sync-key.component.ts @@ -0,0 +1,61 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationConnectionType } from "jslib-common/enums/organizationConnectionType"; +import { Utils } from "jslib-common/misc/utils"; +import { BillingSyncConfigApi } from "jslib-common/models/api/billingSyncConfigApi"; +import { BillingSyncConfigRequest } from "jslib-common/models/request/billingSyncConfigRequest"; +import { OrganizationConnectionRequest } from "jslib-common/models/request/organizationConnectionRequest"; +import { OrganizationConnectionResponse } from "jslib-common/models/response/organizationConnectionResponse"; + +@Component({ + selector: "app-billing-sync-key", + templateUrl: "billing-sync-key.component.html", +}) +export class BillingSyncKeyComponent { + entityId: string; + existingConnectionId: string; + billingSyncKey: string; + setParentConnection: (connection: OrganizationConnectionResponse) => void; + + formPromise: Promise> | Promise; + + constructor(private apiService: ApiService, private logService: LogService) {} + + async submit() { + try { + const request = new OrganizationConnectionRequest( + this.entityId, + OrganizationConnectionType.CloudBillingSync, + true, + new BillingSyncConfigRequest(this.billingSyncKey) + ); + if (this.existingConnectionId == null) { + this.formPromise = this.apiService.createOrganizationConnection( + request, + BillingSyncConfigApi + ); + } else { + this.formPromise = this.apiService.updateOrganizationConnection( + request, + BillingSyncConfigApi, + this.existingConnectionId + ); + } + const response = (await this + .formPromise) as OrganizationConnectionResponse; + this.existingConnectionId = response?.id; + this.billingSyncKey = response?.config?.billingSyncKey; + this.setParentConnection(response); + } catch (e) { + this.logService.error(e); + } + } + + async deleteConnection() { + this.formPromise = this.apiService.deleteOrganizationConnection(this.existingConnectionId); + await this.formPromise; + this.setParentConnection(null); + } +} diff --git a/src/app/settings/sponsored-families.component.html b/src/app/settings/sponsored-families.component.html index 6eb2cc718a..9bd2bb7027 100644 --- a/src/app/settings/sponsored-families.component.html +++ b/src/app/settings/sponsored-families.component.html @@ -20,33 +20,55 @@ #form (ngSubmit)="submit()" [appApiAction]="formPromise" + [formGroup]="sponsorshipForm" ngNativeValidate *ngIf="anyOrgsAvailable" > -
+
- + -
+
+ @@ -59,12 +81,18 @@ {{ "recipient" | i18n }} {{ "sponsoringOrg" | i18n }} + {{ "status" | i18n }} - + diff --git a/src/app/settings/sponsored-families.component.ts b/src/app/settings/sponsored-families.component.ts index 38e8ac4b42..c168d00d82 100644 --- a/src/app/settings/sponsored-families.component.ts +++ b/src/app/settings/sponsored-families.component.ts @@ -1,9 +1,12 @@ import { Component, OnInit } from "@angular/core"; +import { FormBuilder, FormGroup, Validators } from "@angular/forms"; +import { notAllowedValueAsync } from "jslib-angular/validators/notAllowedValueAsync.validator"; import { ApiService } from "jslib-common/abstractions/api.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { OrganizationService } from "jslib-common/abstractions/organization.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; import { SyncService } from "jslib-common/abstractions/sync.service"; import { PlanSponsorshipType } from "jslib-common/enums/planSponsorshipType"; import { Organization } from "jslib-common/models/domain/organization"; @@ -17,30 +20,54 @@ export class SponsoredFamiliesComponent implements OnInit { availableSponsorshipOrgs: Organization[] = []; activeSponsorshipOrgs: Organization[] = []; - selectedSponsorshipOrgId = ""; - sponsorshipEmail = ""; // Conditional display properties formPromise: Promise; + sponsorshipForm: FormGroup; + constructor( private apiService: ApiService, private i18nService: I18nService, private platformUtilsService: PlatformUtilsService, private syncService: SyncService, - private organizationService: OrganizationService - ) {} + private organizationService: OrganizationService, + private formBuilder: FormBuilder, + private stateService: StateService + ) { + this.sponsorshipForm = this.formBuilder.group({ + selectedSponsorshipOrgId: [ + "", + { + validators: [Validators.required], + }, + ], + sponsorshipEmail: [ + "", + { + validators: [Validators.email], + asyncValidators: [ + notAllowedValueAsync(async () => await this.stateService.getEmail(), true), + ], + updateOn: "blur", + }, + ], + }); + } async ngOnInit() { await this.load(); } async submit() { - this.formPromise = this.apiService.postCreateSponsorship(this.selectedSponsorshipOrgId, { - sponsoredEmail: this.sponsorshipEmail, - planSponsorshipType: PlanSponsorshipType.FamiliesForEnterprise, - friendlyName: this.sponsorshipEmail, - }); + this.formPromise = this.apiService.postCreateSponsorship( + this.sponsorshipForm.value.selectedSponsorshipOrgId, + { + sponsoredEmail: this.sponsorshipForm.value.sponsorshipEmail, + planSponsorshipType: PlanSponsorshipType.FamiliesForEnterprise, + friendlyName: this.sponsorshipForm.value.sponsorshipEmail, + } + ); await this.formPromise; this.platformUtilsService.showToast("success", null, this.i18nService.t("sponsorshipCreated")); @@ -67,14 +94,19 @@ export class SponsoredFamiliesComponent implements OnInit { ); if (this.availableSponsorshipOrgs.length === 1) { - this.selectedSponsorshipOrgId = this.availableSponsorshipOrgs[0].id; + this.sponsorshipForm.patchValue({ + selectedSponsorshipOrgId: this.availableSponsorshipOrgs[0].id, + }); } this.loading = false; } + get sponsorshipEmailControl() { + return this.sponsorshipForm.controls["sponsorshipEmail"]; + } + private async resetForm() { - this.sponsorshipEmail = ""; - this.selectedSponsorshipOrgId = ""; + this.sponsorshipForm.reset(); } get anyActiveSponsorships(): boolean { @@ -85,7 +117,7 @@ export class SponsoredFamiliesComponent implements OnInit { return this.availableSponsorshipOrgs.length > 0; } - get moreThanOneOrgAvailable(): boolean { - return this.availableSponsorshipOrgs.length > 1; + get isSelfHosted(): boolean { + return this.platformUtilsService.isSelfHost(); } } diff --git a/src/app/settings/sponsoring-org-row.component.html b/src/app/settings/sponsoring-org-row.component.html index 233fe83ed8..1ed29c8299 100644 --- a/src/app/settings/sponsoring-org-row.component.html +++ b/src/app/settings/sponsoring-org-row.component.html @@ -2,6 +2,9 @@ {{ sponsoringOrg.familySponsorshipFriendlyName }} {{ sponsoringOrg.name }} + + {{ statusMessage }} +