diff --git a/CHANGELOG.md b/CHANGELOG.md index 922a094cf6..b15ccc9c5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,29 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [8.0.37](https://github.com/macite/doubtfire-deploy/compare/v8.0.36...v8.0.37) (2025-03-10) + + +### Bug Fixes + +* ensure overseer download get resources zip ([a1e4d71](https://github.com/macite/doubtfire-deploy/commit/a1e4d71b34733bc53cd2cfa63ee1e70f8f43386f)) + +### [8.0.36](https://github.com/macite/doubtfire-deploy/compare/v8.0.35...v8.0.36) (2025-03-07) + + +### Bug Fixes + +* overseer image admin in unit and task ([72c89b3](https://github.com/macite/doubtfire-deploy/commit/72c89b30cca426d56c7efbbac34e00fd734fe714)) + +### [8.0.35](https://github.com/macite/doubtfire-deploy/compare/v8.0.34...v8.0.35) (2025-02-28) + + +### Bug Fixes + +* correct ability to edit teaching periods ([ce37bf2](https://github.com/macite/doubtfire-deploy/commit/ce37bf27689744a6f43be46912be0d14e2cdbc6b)) +* ensure an old grade is present in portfolio assessment ([7daacd1](https://github.com/macite/doubtfire-deploy/commit/7daacd1bf0af050aeb6db503d963e574f68b9a94)) +* ensure overseer images can be edited ([3479b7a](https://github.com/macite/doubtfire-deploy/commit/3479b7af589b9ba986ddbb7dc8a84fd0be3e66e6)) + ### [8.0.34](https://github.com/macite/doubtfire-deploy/compare/v8.0.33...v8.0.34) (2025-02-12) diff --git a/nginx.conf b/nginx.conf index 2c812d87e0..326da977a9 100644 --- a/nginx.conf +++ b/nginx.conf @@ -10,8 +10,8 @@ http { root /usr/share/nginx/html/; index index.html; listen 80; - - add_header Content-Security-Policy "default-src https: 'unsafe-inline' 'unsafe-eval' blob: data: ws:" always; + # Commenting out add_headers here so that it won't create over-ride conflict with the security headers mentioned in proxy-nginx.conf + # add_header Content-Security-Policy "default-src https: 'unsafe-inline' 'unsafe-eval' blob: data: ws:" always; # add_header Feature-Policy "microphone=(self),speaker=(self),fullscreen=(self),payment=(none);" always; add_header Permissions-Policy "microphone=(self),speaker=(self),fullscreen=(self),payment=(none)" always; diff --git a/package-lock.json b/package-lock.json index 4ea52bbbb1..788783ac2d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "doubtfire", - "version": "8.0.34", + "version": "8.0.37", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "doubtfire", - "version": "8.0.34", + "version": "8.0.37", "license": "AGPL-3.0", "dependencies": { "@angular/animations": "^17.3.6", @@ -31,10 +31,7 @@ "@uirouter/core": "^6.1.0", "@uirouter/rx": "^1.0.0", "angular": "1.5.11", - "angular-cookies": "1.5.11", - "angular-file-upload": "~1", "angular-filter": "0.5.17", - "angular-local-storage": "0.7.1", "angular-markdown-filter": "1.3.2", "angular-md5": "0.1.10", "angular-mocks": "1.5.11", @@ -66,7 +63,7 @@ "ng-flex-layout": "^17.3.7-beta.1", "ng2-pdf-viewer": "^10.2", "ngx-bootstrap": "^6.1.0", - "ngx-entity-service": "^0.0.40", + "ngx-entity-service": "^0.0.41", "ngx-lottie": "^11.0.2", "nvd3": "1.8.6", "rxjs": "~7.4.0", @@ -149,10 +146,12 @@ "node": ">=20.9.0" }, "optionalDependencies": { + "@esbuild/linux-x64": "0.25.1", "@nx/nx-darwin-arm64": "^18.0", "@nx/nx-darwin-x64": "^18.0", "@nx/nx-linux-x64-gnu": "^18.0", - "@nx/nx-win32-x64-msvc": "^18.0" + "@nx/nx-win32-x64-msvc": "^18.0", + "@rollup/rollup-linux-x64-gnu": "*" } }, "node_modules/@alloc/quick-lru": { @@ -3163,399 +3162,750 @@ "node": "^14 || ^16 || ^17 || ^18" } }, - "node_modules/@esbuild/linux-arm64": { + "node_modules/@esbuild/aix-ppc64": { "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", + "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", "cpu": [ - "arm64" + "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ - "linux" + "aix" ], "engines": { "node": ">=12" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", + "node_modules/@esbuild/android-arm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", + "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=12" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", + "node_modules/@esbuild/android-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", + "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", + "node_modules/@esbuild/android-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", + "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", + "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", + "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", + "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", + "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@esbuild/linux-arm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", + "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", + "cpu": [ + "arm" + ], "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "*" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.1", + "cpu": [ + "arm64" + ], "dev": true, - "license": "(MIT OR CC0-1.0)", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", + "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", + "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", + "cpu": [ + "loong64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.10.0" + "node": ">=12" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", + "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", + "cpu": [ + "mips64el" + ], "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", + "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "*" + "node": ">=12" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", + "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", + "cpu": [ + "riscv64" + ], "dev": true, - "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=12" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", + "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "license": "MIT", + "node_modules/@esbuild/linux-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "license": "MIT", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", + "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "license": "MIT" + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", + "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", + "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", + "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", + "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", + "node_modules/@esbuild/win32-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", + "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", "dev": true, "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.27.8" + "type-fest": "^0.20.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=6.0.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@jridgewell/resolve-uri": { + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=6.0.0" + "node": "*" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", "dev": true, - "license": "MIT", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=6.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", + "node_modules/@eslint/js": { + "version": "8.57.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", "dev": true, "license": "MIT", "dependencies": { @@ -4805,10 +5155,88 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { + "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", + "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", "cpu": [ - "arm64" + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", + "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", + "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", + "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", + "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", + "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.17.2", + "cpu": [ + "arm64" ], "dev": true, "license": "MIT", @@ -4829,6 +5257,109 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", + "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", + "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", + "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.38.0.tgz", + "integrity": "sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", + "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", + "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", + "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", + "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@scarf/scarf": { "version": "1.3.0", "hasInstallScript": true, @@ -4990,1301 +5521,904 @@ }, "node_modules/@types/body-parser": { "version": "1.19.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/canvas-confetti": { - "version": "1.6.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/cors": { - "version": "2.8.17", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/d3": { - "version": "3.5.53", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/eslint": { - "version": "8.56.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.21", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/file-saver": { - "version": "2.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.14", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/jasmine": { - "version": "3.9.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/jasminewd2": { - "version": "2.0.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/jasmine": "*" - } - }, - "node_modules/@types/jquery": { - "version": "1.10.45", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/lodash": { - "version": "4.17.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.12.11", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/q": { - "version": "0.0.32", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/selenium-webdriver": { - "version": "3.0.26", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/semver": { - "version": "7.5.8", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.5.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/type-utils": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "7.8.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "semver": "^7.6.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@uirouter/angular": { - "version": "13.0.0", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "@angular/common": "^17.0.0", - "@angular/core": "^17.0.0", - "@uirouter/core": "^6.0.8", - "@uirouter/rx": "^1.0.0" - } - }, - "node_modules/@uirouter/angular-hybrid": { - "version": "17.1.0", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/core": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", - "@angular/upgrade": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", - "@uirouter/angular": "^13.0.0", - "@uirouter/angularjs": "^1.0.30", - "@uirouter/core": "^6.1.0", - "angular": "^1.5.0" - } - }, - "node_modules/@uirouter/angularjs": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - }, - "peerDependencies": { - "@uirouter/core": "^6.0.8", - "angular": ">=1.2.0" - } - }, - "node_modules/@uirouter/core": { - "version": "6.1.0", + "dev": true, "license": "MIT", - "engines": { - "node": ">=4.0.0" + "dependencies": { + "@types/connect": "*", + "@types/node": "*" } }, - "node_modules/@uirouter/rx": { - "version": "1.0.0", + "node_modules/@types/bonjour": { + "version": "3.5.13", + "dev": true, "license": "MIT", - "peerDependencies": { - "@uirouter/core": ">=6.0.1", - "rxjs": "^6.5.3 || ^7.4.0" + "dependencies": { + "@types/node": "*" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", + "node_modules/@types/canvas-confetti": { + "version": "1.6.4", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.1.0", + "node_modules/@types/connect": { + "version": "3.4.38", "dev": true, "license": "MIT", - "engines": { - "node": ">=14.6.0" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + "dependencies": { + "@types/node": "*" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@types/express-serve-static-core": "*", + "@types/node": "*" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", + "node_modules/@types/cookie": { + "version": "0.4.1", "dev": true, "license": "MIT" }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", + "node_modules/@types/cors": { + "version": "2.8.17", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", + "node_modules/@types/d3": { + "version": "3.5.53", "dev": true, "license": "MIT" }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", + "node_modules/@types/eslint": { + "version": "8.56.10", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", "dev": true, "license": "MIT" }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", + "node_modules/@types/express": { + "version": "4.17.21", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", + "node_modules/@types/express-serve-static-core": { + "version": "4.19.0", "dev": true, "license": "MIT", "dependencies": { - "@xtuc/ieee754": "^1.2.0" + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" } }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", + "node_modules/@types/file-saver": { + "version": "2.0.7", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } + "license": "MIT" }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", + "node_modules/@types/http-errors": { + "version": "2.0.4", "dev": true, "license": "MIT" }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", + "node_modules/@types/http-proxy": { + "version": "1.17.14", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@types/node": "*" } }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", + "node_modules/@types/jasmine": { + "version": "3.9.1", "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } + "license": "MIT" }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", + "node_modules/@types/jasminewd2": { + "version": "2.0.13", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@types/jasmine": "*" } }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", + "node_modules/@types/jquery": { + "version": "1.10.45", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.12.11", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "undici-types": "~5.26.4" } }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", + "node_modules/@types/node-forge": { + "version": "1.3.11", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" + "@types/node": "*" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", "dev": true, - "license": "BSD-3-Clause" + "license": "MIT" }, - "node_modules/@xtuc/long": { - "version": "4.2.2", + "node_modules/@types/parse-json": { + "version": "4.0.2", "dev": true, - "license": "Apache-2.0" + "license": "MIT" }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "license": "BSD-2-Clause" + "node_modules/@types/q": { + "version": "0.0.32", + "dev": true, + "license": "MIT" }, - "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.46", + "node_modules/@types/qs": { + "version": "6.9.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/selenium-webdriver": { + "version": "3.0.26", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=14.15.0" + "@types/express": "*" } }, - "node_modules/@zkochan/js-yaml": { - "version": "0.0.6", + "node_modules/@types/serve-static": { + "version": "1.15.7", "dev": true, "license": "MIT", "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" } }, - "node_modules/@zkochan/js-yaml/node_modules/argparse": { - "version": "2.0.1", + "node_modules/@types/sockjs": { + "version": "0.3.36", "dev": true, - "license": "Python-2.0" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "license": "ISC" + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, - "node_modules/accepts": { - "version": "1.3.8", + "node_modules/@types/ws": { + "version": "8.5.10", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" + "@types/node": "*" } }, - "node_modules/acorn": { - "version": "8.11.3", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.8.0", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/type-utils": "7.8.0", + "@typescript-eslint/utils": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">=0.4.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/acorn-globals": { - "version": "3.1.0", + "node_modules/@typescript-eslint/parser": { + "version": "7.8.0", "dev": true, - "license": "MIT", - "optional": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^4.0.4" + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/typescript-estree": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "4.0.13", + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.8.0", "dev": true, "license": "MIT", - "optional": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0" }, "engines": { - "node": ">=0.4.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", + "node_modules/@typescript-eslint/type-utils": { + "version": "7.8.0", "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.8.0", + "@typescript-eslint/utils": "7.8.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, "peerDependencies": { - "acorn": "^8" + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", + "node_modules/@typescript-eslint/types": { + "version": "7.8.0", "dev": true, "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/acorn-walk": { - "version": "8.3.2", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.8.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, "engines": { - "node": ">=0.4.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", + "node_modules/@typescript-eslint/utils": { + "version": "7.8.0", "dev": true, "license": "MIT", "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/typescript-estree": "7.8.0", + "semver": "^7.6.0" }, "engines": { - "node": ">=8.9" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" } }, - "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { - "version": "2.0.4", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.8.0", "dev": true, "license": "MIT", "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "@typescript-eslint/types": "7.8.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=8.9.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/adm-zip": { - "version": "0.5.12", - "dev": true, + "node_modules/@uirouter/angular": { + "version": "13.0.0", "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">=6.0" + "node": ">=6.0.0" + }, + "peerDependencies": { + "@angular/common": "^17.0.0", + "@angular/core": "^17.0.0", + "@uirouter/core": "^6.0.8", + "@uirouter/rx": "^1.0.0" } }, - "node_modules/agent-base": { - "version": "7.1.1", + "node_modules/@uirouter/angular-hybrid": { + "version": "17.1.0", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/core": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", + "@angular/upgrade": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", + "@uirouter/angular": "^13.0.0", + "@uirouter/angularjs": "^1.0.30", + "@uirouter/core": "^6.1.0", + "angular": "^1.5.0" + } + }, + "node_modules/@uirouter/angularjs": { + "version": "1.1.0", "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { - "node": ">= 14" + "node": ">=4.0.0" + }, + "peerDependencies": { + "@uirouter/core": "^6.0.8", + "angular": ">=1.2.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", + "node_modules/@uirouter/core": { + "version": "6.1.0", "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4.0.0" } }, - "node_modules/ajv": { - "version": "8.12.0", + "node_modules/@uirouter/rx": { + "version": "1.0.0", "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "@uirouter/core": ">=6.0.1", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" + "engines": { + "node": ">=14.6.0" }, "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" } }, - "node_modules/ajv-keywords": { - "version": "5.1.0", + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, - "node_modules/align-text": { - "version": "0.1.4", + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" } }, - "node_modules/align-text/node_modules/kind-of": { - "version": "3.2.2", + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" } }, - "node_modules/alter": { - "version": "0.2.0", + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", "dev": true, "license": "MIT", "dependencies": { - "stable": "~0.1.3" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/amdefine": { - "version": "1.0.1", - "license": "BSD-3-Clause OR MIT", - "engines": { - "node": ">=0.4.2" + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" } }, - "node_modules/angular": { - "version": "1.5.11", - "license": "MIT" - }, - "node_modules/angular-cookies": { - "version": "1.5.11", + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "dev": true, "license": "MIT" }, - "node_modules/angular-file-upload": { - "version": "1.1.6", + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "dev": true, + "license": "MIT", "dependencies": { - "coffee-script": "~1.6.2", - "grunt": "~0.4.1", - "grunt-contrib-clean": "~0.4.0", - "grunt-contrib-concat": "~0.3.0", - "grunt-contrib-copy": "~0.4.1", - "grunt-contrib-uglify": "~0.2.1" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" } }, - "node_modules/angular-file-upload/node_modules/argparse": { - "version": "0.1.16", + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "dev": true, "license": "MIT", "dependencies": { - "underscore": "~1.7.0", - "underscore.string": "~2.4.0" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, - "node_modules/angular-file-upload/node_modules/argparse/node_modules/underscore.string": { - "version": "2.4.0", - "engines": { - "node": "*" + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" } }, - "node_modules/angular-file-upload/node_modules/async": { - "version": "0.1.22" - }, - "node_modules/angular-file-upload/node_modules/camelcase": { - "version": "1.2.1", + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, - "node_modules/angular-file-upload/node_modules/colors": { - "version": "0.6.2", - "engines": { - "node": ">=0.1.90" + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/angular-file-upload/node_modules/dateformat": { - "version": "1.0.2-1.2.3", - "engines": { - "node": "*" - } + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "dev": true, + "license": "BSD-3-Clause" }, - "node_modules/angular-file-upload/node_modules/esprima": { - "version": "1.0.4", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } + "node_modules/@xtuc/long": { + "version": "4.2.2", + "dev": true, + "license": "Apache-2.0" }, - "node_modules/angular-file-upload/node_modules/findup-sync": { - "version": "0.1.3", - "dependencies": { - "glob": "~3.2.9", - "lodash": "~2.4.1" - }, - "engines": { - "node": ">= 0.6.0" - } + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "license": "BSD-2-Clause" }, - "node_modules/angular-file-upload/node_modules/findup-sync/node_modules/glob": { - "version": "3.2.11", - "license": "BSD", + "node_modules/@yarnpkg/parsers": { + "version": "3.0.0-rc.46", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "inherits": "2", - "minimatch": "0.3" + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" }, "engines": { - "node": "*" + "node": ">=14.15.0" } }, - "node_modules/angular-file-upload/node_modules/findup-sync/node_modules/lodash": { - "version": "2.4.2", - "engines": [ - "node", - "rhino" - ], - "license": "MIT" - }, - "node_modules/angular-file-upload/node_modules/findup-sync/node_modules/minimatch": { - "version": "0.3.0", + "node_modules/@zkochan/js-yaml": { + "version": "0.0.6", + "dev": true, "license": "MIT", "dependencies": { - "lru-cache": "2", - "sigmund": "~1.0.0" + "argparse": "^2.0.1" }, - "engines": { - "node": "*" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/angular-file-upload/node_modules/getobject": { - "version": "0.1.0", - "engines": { - "node": ">= 0.8.0" - } + "node_modules/@zkochan/js-yaml/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "license": "ISC" }, - "node_modules/angular-file-upload/node_modules/glob": { - "version": "3.1.21", - "license": "BSD", + "node_modules/accepts": { + "version": "1.3.8", + "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/angular-file-upload/node_modules/glob/node_modules/inherits": { - "version": "1.0.2" - }, - "node_modules/angular-file-upload/node_modules/graceful-fs": { - "version": "1.2.3", - "license": "BSD", + "node_modules/acorn": { + "version": "8.11.3", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, "engines": { "node": ">=0.4.0" } }, - "node_modules/angular-file-upload/node_modules/grunt": { - "version": "0.4.5", + "node_modules/acorn-globals": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "async": "~0.1.22", - "coffee-script": "~1.3.3", - "colors": "~0.6.2", - "dateformat": "1.0.2-1.2.3", - "eventemitter2": "~0.4.13", - "exit": "~0.1.1", - "findup-sync": "~0.1.2", - "getobject": "~0.1.0", - "glob": "~3.1.21", - "grunt-legacy-log": "~0.1.0", - "grunt-legacy-util": "~0.2.0", - "hooker": "~0.2.3", - "iconv-lite": "~0.2.11", - "js-yaml": "~2.0.5", - "lodash": "~0.9.2", - "minimatch": "~0.2.12", - "nopt": "~1.0.10", - "rimraf": "~2.2.8", - "underscore.string": "~2.2.1", - "which": "~1.0.5" - }, - "engines": { - "node": ">= 0.8.0" + "acorn": "^4.0.4" } }, - "node_modules/angular-file-upload/node_modules/grunt-contrib-clean": { - "version": "0.4.1", - "engines": { - "node": ">= 0.8.0" + "node_modules/acorn-globals/node_modules/acorn": { + "version": "4.0.13", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "acorn": "bin/acorn" }, - "peerDependencies": { - "grunt": "~0.4.0" - } - }, - "node_modules/angular-file-upload/node_modules/grunt-contrib-concat": { - "version": "0.3.0", "engines": { - "node": ">= 0.8.0" - }, - "peerDependencies": { - "grunt": "~0.4.0" + "node": ">=0.4.0" } }, - "node_modules/angular-file-upload/node_modules/grunt-contrib-copy": { - "version": "0.4.1", - "engines": { - "node": ">= 0.8.0" - }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "dev": true, + "license": "MIT", "peerDependencies": { - "grunt": "~0.4.0" + "acorn": "^8" } }, - "node_modules/angular-file-upload/node_modules/grunt-contrib-uglify": { - "version": "0.2.7", - "dependencies": { - "grunt-lib-contrib": "~0.6.1", - "uglify-js": "~2.4.0" - }, - "engines": { - "node": ">= 0.8.0" - }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", "peerDependencies": { - "grunt": "~0.4.0" + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/angular-file-upload/node_modules/grunt-legacy-log": { - "version": "0.1.3", + "node_modules/acorn-walk": { + "version": "8.3.2", + "dev": true, "license": "MIT", - "dependencies": { - "colors": "~0.6.2", - "grunt-legacy-log-utils": "~0.1.1", - "hooker": "~0.2.3", - "lodash": "~2.4.1", - "underscore.string": "~2.3.3" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.4.0" } }, - "node_modules/angular-file-upload/node_modules/grunt-legacy-log-utils": { - "version": "0.1.1", + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "colors": "~0.6.2", - "lodash": "~2.4.1", - "underscore.string": "~2.3.3" + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8.9" } }, - "node_modules/angular-file-upload/node_modules/grunt-legacy-log-utils/node_modules/lodash": { - "version": "2.4.2", - "engines": [ - "node", - "rhino" - ], - "license": "MIT" - }, - "node_modules/angular-file-upload/node_modules/grunt-legacy-log/node_modules/lodash": { - "version": "2.4.2", - "engines": [ - "node", - "rhino" - ], - "license": "MIT" - }, - "node_modules/angular-file-upload/node_modules/grunt-legacy-util": { - "version": "0.2.0", + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "dev": true, + "license": "MIT", "dependencies": { - "async": "~0.1.22", - "exit": "~0.1.1", - "getobject": "~0.1.0", - "hooker": "~0.2.3", - "lodash": "~0.9.2", - "underscore.string": "~2.2.1", - "which": "~1.0.5" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8.9.0" } }, - "node_modules/angular-file-upload/node_modules/grunt-legacy-util/node_modules/underscore.string": { - "version": "2.2.1", + "node_modules/adm-zip": { + "version": "0.5.12", + "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=6.0" } }, - "node_modules/angular-file-upload/node_modules/grunt/node_modules/coffee-script": { - "version": "1.3.3", - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" + "node_modules/agent-base": { + "version": "7.1.1", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/angular-file-upload/node_modules/grunt/node_modules/underscore.string": { - "version": "2.2.1", - "engines": { - "node": "*" + "node": ">= 14" } }, - "node_modules/angular-file-upload/node_modules/iconv-lite": { - "version": "0.2.11", + "node_modules/aggregate-error": { + "version": "3.1.0", "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/angular-file-upload/node_modules/js-yaml": { - "version": "2.0.5", + "node_modules/ajv": { + "version": "8.12.0", "license": "MIT", "dependencies": { - "argparse": "~ 0.1.11", - "esprima": "~ 1.0.2" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">= 0.6.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/angular-file-upload/node_modules/lodash": { - "version": "0.9.2", - "engines": [ - "node", - "rhino" - ], - "license": "MIT" - }, - "node_modules/angular-file-upload/node_modules/lru-cache": { - "version": "2.7.3", - "license": "ISC" - }, - "node_modules/angular-file-upload/node_modules/minimatch": { - "version": "0.2.14", + "node_modules/ajv-formats": { + "version": "2.1.1", "license": "MIT", "dependencies": { - "lru-cache": "2", - "sigmund": "~1.0.0" + "ajv": "^8.0.0" }, - "engines": { - "node": "*" + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/angular-file-upload/node_modules/nopt": { - "version": "1.0.10", + "node_modules/ajv-keywords": { + "version": "5.1.0", + "dev": true, "license": "MIT", "dependencies": { - "abbrev": "1" + "fast-deep-equal": "^3.1.3" }, - "bin": { - "nopt": "bin/nopt.js" + "peerDependencies": { + "ajv": "^8.8.2" } }, - "node_modules/angular-file-upload/node_modules/rimraf": { - "version": "2.2.8", + "node_modules/align-text": { + "version": "0.1.4", + "dev": true, "license": "MIT", - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/angular-file-upload/node_modules/source-map": { - "version": "0.1.34", + "optional": true, "dependencies": { - "amdefine": ">=0.0.4" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/angular-file-upload/node_modules/uglify-js": { - "version": "2.4.24", - "license": "BSD", + "node_modules/align-text/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "async": "~0.2.6", - "source-map": "0.1.34", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.5.4" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/angular-file-upload/node_modules/uglify-js/node_modules/async": { - "version": "0.2.10" - }, - "node_modules/angular-file-upload/node_modules/underscore": { - "version": "1.7.0" - }, - "node_modules/angular-file-upload/node_modules/which": { - "version": "1.0.9", - "license": "ISC", - "bin": { - "which": "bin/which" - } - }, - "node_modules/angular-file-upload/node_modules/wordwrap": { - "version": "0.0.2", - "license": "MIT/X11", - "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/angular-file-upload/node_modules/yargs": { - "version": "3.5.4", - "license": "MIT/X11", + "node_modules/alter": { + "version": "0.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "camelcase": "^1.0.2", - "decamelize": "^1.0.0", - "window-size": "0.1.0", - "wordwrap": "0.0.2" + "stable": "~0.1.3" } }, + "node_modules/angular": { + "version": "1.5.11", + "license": "MIT" + }, "node_modules/angular-filter": { "version": "0.5.17", "license": "MIT", @@ -6295,10 +6429,6 @@ "node": ">=0.10.0" } }, - "node_modules/angular-local-storage": { - "version": "0.7.1", - "license": "MIT" - }, "node_modules/angular-markdown-filter": { "version": "1.3.2", "license": "MIT", @@ -7115,6 +7245,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bl": { "version": "4.1.0", "license": "MIT", @@ -7783,16 +7923,6 @@ "version": "5.65.0", "license": "MIT" }, - "node_modules/coffee-script": { - "version": "1.6.3", - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/coffeelint": { "version": "1.16.2", "dev": true, @@ -9483,6 +9613,22 @@ "node": ">=12" } }, + "node_modules/esbuild/node_modules/@esbuild/linux-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", + "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/escalade": { "version": "3.1.2", "license": "MIT", @@ -10031,6 +10177,7 @@ }, "node_modules/eventemitter2": { "version": "0.4.14", + "dev": true, "license": "MIT" }, "node_modules/eventemitter3": { @@ -10070,6 +10217,7 @@ }, "node_modules/exit": { "version": "0.1.2", + "dev": true, "engines": { "node": ">= 0.8.0" } @@ -10419,6 +10567,13 @@ "dev": true, "license": "MIT" }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "node_modules/filelist": { "version": "1.0.4", "dev": true, @@ -10747,6 +10902,20 @@ "dev": true, "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "license": "MIT", @@ -11721,6 +11890,25 @@ "node": ">=0.10.0" } }, + "node_modules/grunt-html2js/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/grunt-html2js/node_modules/glob-parent": { "version": "3.1.0", "dev": true, @@ -12038,15 +12226,6 @@ "node": "*" } }, - "node_modules/grunt-lib-contrib": { - "version": "0.6.1", - "dependencies": { - "zlib-browserify": "0.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/grunt-newer": { "version": "1.3.0", "dev": true, @@ -12483,6 +12662,7 @@ }, "node_modules/hooker": { "version": "0.2.3", + "dev": true, "engines": { "node": "*" } @@ -15607,6 +15787,13 @@ "thenify-all": "^1.0.0" } }, + "node_modules/nan": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz", + "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==", + "dev": true, + "optional": true + }, "node_modules/nanoid": { "version": "3.3.7", "dev": true, @@ -15812,9 +15999,9 @@ } }, "node_modules/ngx-entity-service": { - "version": "0.0.40", - "resolved": "https://registry.npmjs.org/ngx-entity-service/-/ngx-entity-service-0.0.40.tgz", - "integrity": "sha512-JEYUAAp83zfw6d9ETBYgNxSh1VB4Ko0fACF6OQiEYHbqQye/Yb0De4Md+FHJPDQ1DBjJk8GjT328cEPbW8xlNQ==", + "version": "0.0.41", + "resolved": "https://registry.npmjs.org/ngx-entity-service/-/ngx-entity-service-0.0.41.tgz", + "integrity": "sha512-rf3gZQr4CthXV34WKySg200c06ZuXm2Z7EclUR6bAuiuvUDwRAPMEAJmtSmDyYbnpQqLMMb+5rfaQQakkTNotA==", "dependencies": { "tslib": "^2.3.0" }, @@ -19281,6 +19468,19 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", + "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/run-async": { "version": "3.0.0", "license": "MIT", @@ -20009,10 +20209,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sigmund": { - "version": "1.0.1", - "license": "ISC" - }, "node_modules/signal-exit": { "version": "3.0.7", "license": "ISC" @@ -21597,7 +21793,9 @@ }, "node_modules/uglify-to-browserify": { "version": "1.0.2", - "license": "MIT" + "dev": true, + "license": "MIT", + "optional": true }, "node_modules/unbox-primitive": { "version": "1.0.2", @@ -21662,331 +21860,683 @@ "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/upath": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.15", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-path": { + "version": "1.0.0", + "dev": true, + "license": "WTFPL OR MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.4.0" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", + "node_modules/uuid": { + "version": "3.4.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "bin": { + "uuid": "bin/uuid" } }, - "node_modules/union-value": { - "version": "1.0.1", + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/v8flags": { + "version": "3.2.0", "dev": true, "license": "MIT", "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "homedir-polyfill": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/unique-filename": { - "version": "3.0.0", - "license": "ISC", + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "license": "Apache-2.0", "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/unique-slug": { - "version": "4.0.0", + "node_modules/validate-npm-package-name": { + "version": "5.0.1", "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/universalify": { - "version": "2.0.1", + "node_modules/vary": { + "version": "1.1.2", "dev": true, "license": "MIT", "engines": { - "node": ">= 10.0.0" + "node": ">= 0.8" } }, - "node_modules/unpipe": { - "version": "1.0.0", + "node_modules/verror": { + "version": "1.10.0", "dev": true, + "engines": [ + "node >=0.6.0" + ], "license": "MIT", - "engines": { - "node": ">= 0.8" + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, - "node_modules/unset-value": { - "version": "1.0.0", + "node_modules/vite": { + "version": "5.1.7", "dev": true, "license": "MIT", "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" }, "engines": { - "node": ">=0.10.0" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/upath": { - "version": "1.2.0", + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=4", - "yarn": "*" + "node": ">=12" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.15", + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } + "optional": true, + "os": [ + "darwin" ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/upper-case": { - "version": "1.1.3", + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT" - }, - "node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/uri-path": { - "version": "1.0.0", + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "cpu": [ + "arm64" + ], "dev": true, - "license": "WTFPL OR MIT", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.10" + "node": ">=12" } }, - "node_modules/urix": { - "version": "0.1.0", + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/use": { - "version": "3.1.1", + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/utils-merge": { - "version": "1.0.1", + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4.0" + "node": ">=12" } }, - "node_modules/uuid": { - "version": "3.4.0", + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], "dev": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "MIT" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/v8flags": { - "version": "3.2.0", + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.10" + "node": ">=12" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "license": "ISC", + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/vary": { - "version": "1.1.2", + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">= 0.8" + "node": ">=12" } }, - "node_modules/verror": { - "version": "1.10.0", + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], "dev": true, - "engines": [ - "node >=0.6.0" + "optional": true, + "os": [ + "win32" ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "engines": { + "node": ">=12" } }, - "node_modules/vite": { - "version": "5.1.7", + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.35", - "rollup": "^4.2.0" - }, - "bin": { - "vite": "bin/vite.js" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } + "node": ">=12" } }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "node_modules/vite/node_modules/@esbuild/win32-x64": { "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", "cpu": [ - "arm64" + "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ - "linux" + "win32" ], "engines": { "node": ">=12" @@ -22536,6 +23086,8 @@ }, "node_modules/window-size": { "version": "0.1.0", + "dev": true, + "optional": true, "engines": { "node": ">= 0.8.0" } @@ -22772,10 +23324,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zlib-browserify": { - "version": "0.0.1", - "license": "MIT" - }, "node_modules/zone.js": { "version": "0.14.5", "license": "MIT", diff --git a/package.json b/package.json index 5ac6c30eb8..09cca7cb01 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "doubtfire", - "version": "8.0.34", + "version": "8.0.37", "homepage": "http://github.com/doubtfire-lms/", "description": "Learning and feedback tool.", "license": "AGPL-3.0", @@ -15,7 +15,9 @@ "lint:fix": "ng lint --fix", "lint": "ng lint", "serve:angular17": "export NODE_OPTIONS=--max_old_space_size=4096 && ng serve --configuration $NODE_ENV --proxy-config proxy.conf.json", + "serve:angular17-compose": "export NODE_OPTIONS=--max_old_space_size=4096 && ng serve --configuration $NODE_ENV --proxy-config proxy-compose.conf.json", "start": "npm-run-all -l -s build:angular1 serve:angular17", + "start-compose": "npm-run-all -l -s build:angular1 serve:angular17-compose", "watch:angular1": "grunt delta", "deploy:build2api": "ng build --delete-output-path=true --optimization=true --configuration production --output-path dist", "deploy": "run-s -l build:angular1 deploy:build2api", @@ -48,10 +50,7 @@ "@uirouter/core": "^6.1.0", "@uirouter/rx": "^1.0.0", "angular": "1.5.11", - "angular-cookies": "1.5.11", - "angular-file-upload": "~1", "angular-filter": "0.5.17", - "angular-local-storage": "0.7.1", "angular-markdown-filter": "1.3.2", "angular-md5": "0.1.10", "angular-mocks": "1.5.11", @@ -83,7 +82,7 @@ "ng-flex-layout": "^17.3.7-beta.1", "ng2-pdf-viewer": "^10.2", "ngx-bootstrap": "^6.1.0", - "ngx-entity-service": "^0.0.40", + "ngx-entity-service": "^0.0.41", "ngx-lottie": "^11.0.2", "nvd3": "1.8.6", "rxjs": "~7.4.0", @@ -166,6 +165,8 @@ "@nx/nx-darwin-arm64": "^18.0", "@nx/nx-darwin-x64": "^18.0", "@nx/nx-linux-x64-gnu": "^18.0", - "@nx/nx-win32-x64-msvc": "^18.0" + "@nx/nx-win32-x64-msvc": "^18.0", + "@rollup/rollup-linux-x64-gnu": "*", + "@esbuild/linux-x64": "0.25.1" } } diff --git a/proxy-compose.conf.json b/proxy-compose.conf.json new file mode 100644 index 0000000000..4b62591235 --- /dev/null +++ b/proxy-compose.conf.json @@ -0,0 +1,6 @@ +{ + "/api": { + "target": "http://doubtfire-api:3000", + "secure": false + } +} diff --git a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.ts b/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.ts index 17dc7efdf9..f4099456cf 100644 --- a/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.ts +++ b/src/app/admin/states/teaching-periods/teaching-period-list/teaching-period-list.component.ts @@ -1,14 +1,14 @@ -import { Component, Inject, OnInit, ViewChild } from '@angular/core'; -import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { MatPaginator } from '@angular/material/paginator'; -import { MatSnackBar } from '@angular/material/snack-bar'; -import { MatSort, Sort } from '@angular/material/sort'; -import { MatTableDataSource } from '@angular/material/table'; -import { TeachingPeriodBreak } from 'src/app/api/models/teaching-period'; -import { TeachingPeriod } from 'src/app/api/models/teaching-period'; -import { TeachingPeriodBreakService } from 'src/app/api/services/teaching-period-break.service'; -import { TeachingPeriodService } from 'src/app/api/services/teaching-period.service'; -import { TeachingPeriodUnitImportService } from '../teaching-period-unit-import/teaching-period-unit-import.dialog'; +import {Component, Inject, OnInit, ViewChild} from '@angular/core'; +import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from '@angular/material/dialog'; +import {MatPaginator} from '@angular/material/paginator'; +import {MatSort, Sort} from '@angular/material/sort'; +import {MatTableDataSource} from '@angular/material/table'; +import {TeachingPeriodBreak} from 'src/app/api/models/teaching-period'; +import {TeachingPeriod} from 'src/app/api/models/teaching-period'; +import {TeachingPeriodBreakService} from 'src/app/api/services/teaching-period-break.service'; +import {TeachingPeriodService} from 'src/app/api/services/teaching-period.service'; +import {TeachingPeriodUnitImportService} from '../teaching-period-unit-import/teaching-period-unit-import.dialog'; +import {AlertService} from 'src/app/common/services/alert.service'; @Component({ selector: 'f-teaching-period-list', @@ -53,7 +53,7 @@ export class TeachingPeriodListComponent implements OnInit { selectTeachingPeriod(selectedTeachingPeriod: TeachingPeriod) { this.teachingPeriodsService.get(selectedTeachingPeriod.id).subscribe((teachingPeriod) => { - this.dialog.open(NewTeachingPeriodDialogComponent, { data: { teachingPeriod: teachingPeriod } }); + this.dialog.open(NewTeachingPeriodDialogComponent, {data: {teachingPeriod: teachingPeriod}}); }); } @@ -101,18 +101,24 @@ export class NewTeachingPeriodDialogComponent { private dialogRef: MatDialogRef, public teachingPeriodService: TeachingPeriodService, public teachingPeriodBreakService: TeachingPeriodBreakService, - private _snackBar: MatSnackBar + public alertService: AlertService, ) {} public newOrSelectedTeachingPeriod = this.data.teachingPeriod || new TeachingPeriod(); public tempBreak = new TeachingPeriodBreak(); addTeachingBreak() { - this.newOrSelectedTeachingPeriod.addBreak(this.tempBreak.startDate, this.tempBreak.numberOfWeeks).subscribe({ - next: (teachingPeriodBreak) => { - console.log(teachingPeriodBreak); - }, - }); + this.newOrSelectedTeachingPeriod + .addBreak(this.tempBreak.startDate, this.tempBreak.numberOfWeeks) + .subscribe({ + next: (teachingPeriodBreak) => { + this.alertService.success('Break added'); + console.log(teachingPeriodBreak); + }, + error: (response) => { + this.alertService.error(`Error adding break. ${response}`); + }, + }); } deleteBreak(teachingPeriod: TeachingPeriod, teachingBreak: TeachingPeriodBreak): void { @@ -120,26 +126,25 @@ export class NewTeachingPeriodDialogComponent { next: (teachingPeriodBreak) => { console.log(teachingPeriodBreak); }, - error: (response) => {}, + error: (response) => { + this.alertService.error(`Error deleting break. ${response}`); + }, }); } submitTeachingPeriod() { - // todo: use alert service - this.teachingPeriodService.store(this.newOrSelectedTeachingPeriod).subscribe({ + // Check if we are updating or creating a new teaching period + const observer = this.newOrSelectedTeachingPeriod.id + ? this.teachingPeriodService.update(this.newOrSelectedTeachingPeriod) + : this.teachingPeriodService.store(this.newOrSelectedTeachingPeriod); + + // Save the teaching period + observer.subscribe({ next: (teachingPeriod) => { - this._snackBar.open(`${teachingPeriod.name} saved`, 'dismiss', { - duration: 2000, - horizontalPosition: 'end', - verticalPosition: 'top', - }); + this.alertService.success(`${teachingPeriod.name} saved`); }, error: (response) => { - this._snackBar.open(response, 'dismiss', { - duration: 5000, - horizontalPosition: 'end', - verticalPosition: 'top', - }); + this.alertService.error(`Error saving teaching period. ${response}`); }, }); } diff --git a/src/app/api/models/project.ts b/src/app/api/models/project.ts index bde396b74b..d8f6548398 100644 --- a/src/app/api/models/project.ts +++ b/src/app/api/models/project.ts @@ -229,7 +229,7 @@ export class Project extends Entity { public assignGrade(score: number, rationale: string): void { const alerts = AppInjector.get(AlertService); const projectService: ProjectService = AppInjector.get(ProjectService); - const oldGrade: number = this.grade; + const oldGrade: number = this.grade || 0; this.grade = score; this.gradeRationale = rationale; diff --git a/src/app/api/models/task-definition.ts b/src/app/api/models/task-definition.ts index b848686768..934d8d6df6 100644 --- a/src/app/api/models/task-definition.ts +++ b/src/app/api/models/task-definition.ts @@ -202,13 +202,13 @@ export class TaskDefinition extends Entity { }/scorm_data`; } - public get taskAssessmentResourcesUploadUrl(): string { + public get taskOverseerResourcesUploadUrl(): string { return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.unit.id}/task_definitions/${ this.id }/task_assessment_resources`; } - public getTaskAssessmentResourcesUrl(): string { + public getOverseerResourcesUrl(): string { return `${AppInjector.get(DoubtfireConstants).API_URL}/units/${this.unit.id}/task_definitions/${ this.id }/task_assessment_resources.json`; @@ -229,10 +229,10 @@ export class TaskDefinition extends Entity { return httpClient.delete(this.scormDataUploadUrl).pipe(tap(() => (this.hasScormData = false))); } - public deleteTaskAssessmentResources(): Observable { + public deleteOverseerResources(): Observable { const httpClient = AppInjector.get(HttpClient); return httpClient - .delete(this.taskAssessmentResourcesUploadUrl) + .delete(this.taskOverseerResourcesUploadUrl) .pipe(tap(() => (this.hasTaskAssessmentResources = false))); } } diff --git a/src/app/api/models/unit.ts b/src/app/api/models/unit.ts index f157355da0..7d5c35745e 100644 --- a/src/app/api/models/unit.ts +++ b/src/app/api/models/unit.ts @@ -23,6 +23,8 @@ import { TutorialStreamService, UnitRoleService, D2lAssessmentMappingService, + OverseerImage, + OverseerImageService, } from './doubtfire-model'; import {LearningOutcome} from './learning-outcome'; import {AlertService} from 'src/app/common/services/alert.service'; @@ -53,6 +55,7 @@ export class Unit extends Entity { assessmentEnabled: boolean; overseerImageId: number = null; // image needs to be lazy loadaed + private _overseerImage: OverseerImage; autoApplyExtensionBeforeDeadline: boolean; sendNotifications: boolean; @@ -446,6 +449,15 @@ export class Unit extends Entity { return this.groupSetsCache.currentValues; } + public set overseerImage(image: OverseerImage) { + this._overseerImage = image; + this.overseerImageId = image.id; + } + + public get overseerImage(): OverseerImage { + return this._overseerImage; + } + public get overseerEnabled(): boolean { return this.assessmentEnabled && AppInjector.get(DoubtfireConstants).IsOverseerEnabled.value; // && this.overseerImageId !== null && this.overseerImageId !== undefined; } diff --git a/src/app/api/services/task-definition.service.ts b/src/app/api/services/task-definition.service.ts index 0914929fbe..f646d763f3 100644 --- a/src/app/api/services/task-definition.service.ts +++ b/src/app/api/services/task-definition.service.ts @@ -133,13 +133,19 @@ export class TaskDefinitionService extends CachedEntityService { public uploadTaskResources(taskDefinition: TaskDefinition, file: File): Observable { const formData = new FormData(); formData.append('file', file); - return AppInjector.get(HttpClient).post(taskDefinition.taskResourcesUploadUrl, formData); + return AppInjector.get(HttpClient).post( + taskDefinition.taskResourcesUploadUrl, + formData, + ); } public uploadOverseerResources(taskDefinition: TaskDefinition, file: File): Observable { const formData = new FormData(); formData.append('file', file); - return AppInjector.get(HttpClient).post(taskDefinition.taskAssessmentResourcesUploadUrl, formData); + return AppInjector.get(HttpClient).post( + taskDefinition.taskOverseerResourcesUploadUrl, + formData, + ); } public uploadScormData(taskDefinition: TaskDefinition, file: File): Observable { diff --git a/src/app/api/services/unit.service.ts b/src/app/api/services/unit.service.ts index c3c38c7406..8151cbb6cc 100644 --- a/src/app/api/services/unit.service.ts +++ b/src/app/api/services/unit.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { GroupSetService, LearningOutcomeService, TaskOutcomeAlignmentService, TeachingPeriodService, TutorialService, TutorialStreamService, Unit, UserService } from 'src/app/api/models/doubtfire-model'; +import { GroupSetService, LearningOutcomeService, OverseerImageService, TaskOutcomeAlignmentService, TeachingPeriodService, TutorialService, TutorialStreamService, Unit, UserService } from 'src/app/api/models/doubtfire-model'; import { CachedEntityService, Entity, EntityMapping } from 'ngx-entity-service'; import API_URL from 'src/app/config/constants/apiURL'; import { UnitRoleService } from './unit-role.service'; @@ -124,7 +124,25 @@ export class UnitService extends CachedEntityService { } }, 'assessmentEnabled', - 'overseerImageId', + // 'overseerImageId', + { + keys: 'overseerImageId', + toEntityFn: (data, key, entity) => { + const overSeerEntityId = data[key]; + if (overSeerEntityId) { + const overseerImageService = AppInjector.get(OverseerImageService); + overseerImageService.get(data[key]).subscribe({ + next: (image) => { + entity.overseerImage = image; + }, + }); + } + return overSeerEntityId; + }, + toJsonFn: (unit: Unit, _key: string) => { + return unit.overseerImage?.id; + }, + }, 'autoApplyExtensionBeforeDeadline', 'sendNotifications', 'enableSyncEnrolments', @@ -227,7 +245,7 @@ export class UnitService extends CachedEntityService { 'portfolioAutoGenerationDate', 'assessmentEnabled', - // 'overseerImage', - map to overseer image + 'overseerImageId', 'autoApplyExtensionBeforeDeadline', 'sendNotifications', diff --git a/src/app/common/header/header.component.html b/src/app/common/header/header.component.html index bac6b77c07..f6bb52f08c 100644 --- a/src/app/common/header/header.component.html +++ b/src/app/common/header/header.component.html @@ -5,6 +5,12 @@ style="min-height: 85px" > @if (!media.isActive('xs')) { + @if (logoSettings.hasLogo) { + + + + } + {}, + error: (err) => { + console.log(`Error showing header: ${err}`); + }, }), ); @@ -64,7 +73,9 @@ export class HeaderComponent implements OnInit, OnDestroy { .transform(this.unitRoles) .filter((role) => this.isUniqueRole(role)); }, - error: (err) => {}, + error: (err) => { + console.log(`Error fetching unit roles: ${err}`); + }, }), ); @@ -74,7 +85,9 @@ export class HeaderComponent implements OnInit, OnDestroy { if (projects == null) return; this.projects = projects.filter((project) => project.unit.myRole === 'Student'); }, - error: (err) => {}, + error: (err) => { + console.log(`Error fetching projects: ${err}`); + }, }), ); @@ -94,7 +107,21 @@ export class HeaderComponent implements OnInit, OnDestroy { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - error: (_err) => {}, + error: (err) => { + console.log(`Error on switching view and entity: ${err}`); + }, + }), + ); + + // Subscribe to logo changes + this.subscriptions.push( + this.doubtfireConstants.LogoSettings.subscribe({ + next: (settings) => { + this.logoSettings = settings; + }, + error: (err) => { + console.log(`Error getting settings: ${err}`); + } }), ); } diff --git a/src/app/config/config.coffee b/src/app/config/config.coffee index 853d046373..b7699efbf5 100644 --- a/src/app/config/config.coffee +++ b/src/app/config/config.coffee @@ -7,7 +7,6 @@ # angular.module('doubtfire.config', [ 'doubtfire.config.vendor-dependencies' - 'doubtfire.config.local-storage' 'doubtfire.config.routing' 'doubtfire.config.analytics' 'doubtfire.config.runtime' diff --git a/src/app/config/constants/doubtfire-constants.ts b/src/app/config/constants/doubtfire-constants.ts index 32f05ac739..67a8bbea42 100644 --- a/src/app/config/constants/doubtfire-constants.ts +++ b/src/app/config/constants/doubtfire-constants.ts @@ -6,11 +6,20 @@ import API_URL from 'src/app/config/constants/apiURL'; interface SettingsResponseFormat { externalName: string; + hasLogo: boolean; + logoUrl: string; + logoLinkUrl: string; overseerEnabled: boolean; tiiEnabled: boolean; d2lEnabled: boolean; } +export interface LogoSettings { + hasLogo: boolean; + logoUrl: string; + logoLinkUrl: string; +} + interface SignOutUrlResponseFormat { auth_signout_url: string; } @@ -43,6 +52,15 @@ export class DoubtfireConstants { */ public IsD2LEnabled: BehaviorSubject = new BehaviorSubject(false); + /** + * Details on the logo + */ + public LogoSettings: BehaviorSubject = new BehaviorSubject({ + hasLogo: false, + logoUrl: '/assets/images/institution-logo.png', + logoLinkUrl: '/', + }); + /** * Whether or not the TurnItIn integration is enabled. */ @@ -73,6 +91,12 @@ export class DoubtfireConstants { this.IsOverseerEnabled.next(result.overseerEnabled); this.IsTiiEnabled.next(result.tiiEnabled); this.IsD2LEnabled.next(result.d2lEnabled); + + this.LogoSettings.next({ + hasLogo: result.hasLogo, + logoUrl: result.logoUrl, + logoLinkUrl: result.logoLinkUrl + }); }); } } diff --git a/src/app/config/local-storage/local-storage.coffee b/src/app/config/local-storage/local-storage.coffee deleted file mode 100644 index f6b5c0403e..0000000000 --- a/src/app/config/local-storage/local-storage.coffee +++ /dev/null @@ -1,7 +0,0 @@ -angular.module('doubtfire.config.local-storage', []) -# -# Local Storage Configuration -# -.config((localStorageServiceProvider) -> - localStorageServiceProvider.setPrefix('doubtfire') -) diff --git a/src/app/config/vendor-dependencies/vendor-dependencies.coffee b/src/app/config/vendor-dependencies/vendor-dependencies.coffee index 5d91403d40..2d1aca3a25 100644 --- a/src/app/config/vendor-dependencies/vendor-dependencies.coffee +++ b/src/app/config/vendor-dependencies/vendor-dependencies.coffee @@ -4,7 +4,6 @@ # angular.module('doubtfire.config.vendor-dependencies', [ # ng* - 'ngCookies' 'ngCsv' 'ngSanitize' @@ -18,13 +17,11 @@ angular.module('doubtfire.config.vendor-dependencies', [ 'ui.codemirror' # other libraries - 'angularFileUpload' 'angular.filter' 'localization' 'markdown' 'nvd3' 'xeditable' - 'LocalStorageModule' 'angular-md5' # analytics diff --git a/src/app/doubtfire-angularjs.module.ts b/src/app/doubtfire-angularjs.module.ts index c7b5c2502c..26e631048f 100644 --- a/src/app/doubtfire-angularjs.module.ts +++ b/src/app/doubtfire-angularjs.module.ts @@ -10,12 +10,9 @@ import {downgradeInjectable, downgradeComponent} from '@angular/upgrade/static'; // Here are the old angular node modules, previously loaded via grunt //#region -import 'angular-cookies/angular-cookies.js'; -import 'angular-local-storage/dist/angular-local-storage.js'; import 'angular-resource/angular-resource.js'; import 'angular-ui-bootstrap/ui-bootstrap-tpls.js'; import 'angular-nvd3/dist/angular-nvd3.js'; -import 'angular-file-upload/angular-file-upload.js'; import 'ng-file-upload/dist/ng-file-upload-all.min.js'; import 'angular-sanitize/angular-sanitize.js'; import 'ng-csv/build/ng-csv.js'; @@ -57,7 +54,6 @@ import 'build/src/app/config/privacy-policy/privacy-policy.js'; import 'build/src/app/config/runtime/runtime.js'; import 'build/src/app/config/config.js'; import 'build/src/app/config/root-controller/root-controller.js'; -import 'build/src/app/config/local-storage/local-storage.js'; import 'build/src/app/config/routing/routing.js'; import 'build/src/app/config/vendor-dependencies/vendor-dependencies.js'; import 'build/src/app/config/analytics/analytics.js'; diff --git a/src/app/tasks/task-comment-composer/task-comment-composer.component.html b/src/app/tasks/task-comment-composer/task-comment-composer.component.html index 448f88f46c..c1bb1e7014 100644 --- a/src/app/tasks/task-comment-composer/task-comment-composer.component.html +++ b/src/app/tasks/task-comment-composer/task-comment-composer.component.html @@ -11,21 +11,19 @@ @if (task) {
-
-
- Replying to: - {{ originalComment !== null ? originalComment.author.name : '' }} - -
-

{{ originalComment !== null ? originalComment.text : '' }}

+
+ + Replying to: + {{ originalComment !== null ? originalComment.author.name : '' }}
+

{{ originalComment !== null ? originalComment.text : '' }}

} diff --git a/src/app/tasks/task-comments-viewer/task-comments-viewer.component.scss b/src/app/tasks/task-comments-viewer/task-comments-viewer.component.scss index a1b4811941..5f78a88a4c 100644 --- a/src/app/tasks/task-comments-viewer/task-comments-viewer.component.scss +++ b/src/app/tasks/task-comments-viewer/task-comments-viewer.component.scss @@ -230,7 +230,7 @@ $comment-inner-border-radius: 4px; overflow-y: hidden; -webkit-box-orient: vertical; -webkit-font-smoothing: antialiased; - overflow-wrap: break-word; + overflow-wrap: anywhere; text-align: left; text-rendering: optimizelegibility; user-select: text; diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.ts index 88f7ccfe2d..d77a3d5ad8 100644 --- a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.ts +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-editor.component.ts @@ -1,25 +1,33 @@ -import { Component, Input } from '@angular/core'; -import { TaskDefinition } from 'src/app/api/models/task-definition'; -import { Unit } from 'src/app/api/models/unit'; -import { TaskDefinitionService } from 'src/app/api/services/task-definition.service'; -import { AlertService } from 'src/app/common/services/alert.service'; -import { DoubtfireConstants } from 'src/app/config/constants/doubtfire-constants'; +import {Component, Input, OnInit} from '@angular/core'; +import {TaskDefinition} from 'src/app/api/models/task-definition'; +import {Unit} from 'src/app/api/models/unit'; +import {TaskDefinitionService} from 'src/app/api/services/task-definition.service'; +import {AlertService} from 'src/app/common/services/alert.service'; +import {DoubtfireConstants} from 'src/app/config/constants/doubtfire-constants'; @Component({ selector: 'f-task-definition-editor', templateUrl: 'task-definition-editor.component.html', styleUrls: ['task-definition-editor.component.scss'], }) -export class TaskDefinitionEditorComponent { +export class TaskDefinitionEditorComponent implements OnInit { @Input() taskDefinition: TaskDefinition; @Input() unit: Unit; - constructor(private taskDefinitionService: TaskDefinitionService, private alerts: AlertService, private constants: DoubtfireConstants) { - constants.IsOverseerEnabled.subscribe((enabled) => (this.overseerEnabled = enabled && this.unit.overseerEnabled)); - } - public overseerEnabled: boolean = false; + constructor( + private taskDefinitionService: TaskDefinitionService, + private alerts: AlertService, + private constants: DoubtfireConstants, + ) {} + + public ngOnInit() { + this.constants.IsOverseerEnabled.subscribe((enabled) => { + this.overseerEnabled = enabled && this.unit.overseerEnabled; + }); + } + public save() { this.taskDefinition.save().subscribe({ next: (response) => { diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.html b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.html index 31c683077f..bf187030aa 100644 --- a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.html +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.html @@ -12,8 +12,8 @@ Docker Image @for (image of images | async; track image) { - {{ image.description }} -} + {{ image.description }} + } Docker image for Overseer @@ -24,27 +24,45 @@ accept="application/zip,application/x-zip-compressed" [desiredFileName]="'Task ' + taskDefinition.abbreviation + ' Overseer zip'" /> + @if (taskDefinition.hasTaskAssessmentResources) { +
+ + +
+ } -
+
diff --git a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.ts b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.ts index 0cf7764274..597296d707 100644 --- a/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.ts +++ b/src/app/units/states/edit/directives/unit-tasks-editor/task-definition-editor/task-definition-overseer/task-definition-overseer.component.ts @@ -11,6 +11,7 @@ import { import { TaskDefinition } from 'src/app/api/models/task-definition'; import { Unit } from 'src/app/api/models/unit'; import { TaskDefinitionService } from 'src/app/api/services/task-definition.service'; +import { FileDownloaderService } from 'src/app/common/file-downloader/file-downloader.service'; import { TaskAssessmentModalService } from 'src/app/common/modals/task-assessment-modal/task-assessment-modal.service'; import { AlertService } from 'src/app/common/services/alert.service'; import { TaskSubmissionService } from 'src/app/common/services/task-submission.service'; @@ -31,7 +32,8 @@ export class TaskDefinitionOverseerComponent implements OnChanges { private modalService: TaskAssessmentModalService, private submissions: TaskSubmissionService, private userService: UserService, - private taskDefinitionService: TaskDefinitionService + private taskDefinitionService: TaskDefinitionService, + private fileDownloaderService: FileDownloaderService, ) {} public get overseerEnabled(): boolean { @@ -86,18 +88,38 @@ export class TaskDefinitionOverseerComponent implements OnChanges { }); } + public removeOverseerResources() { + this.taskDefinition.deleteOverseerResources().subscribe({ + next: () => { + this.alerts.success('Deleted Overseer Resources', 2000); + this.taskDefinition.hasTaskAssessmentResources = false; + } + }); + } + + public downloadOverseerResources() { + this.fileDownloaderService.downloadFile( + this.taskDefinition.getOverseerResourcesUrl(), + this.taskDefinition.name + '.zip', + ); + } + + public uploadOverseerResources(files: FileList) { const validFiles = Array.from(files as ArrayLike).filter( (f) => f.type === 'application/zip' || f.type === 'application/x-zip-compressed', ); if (validFiles.length > 0) { const file = validFiles[0]; - this.taskDefinitionService.uploadTaskResources(this.taskDefinition, file).subscribe({ - next: () => this.alerts.success('Uploaded task sheet', 2000), + this.taskDefinitionService.uploadOverseerResources(this.taskDefinition, file).subscribe({ + next: () => { + this.alerts.success('Uploaded Overseer Resources', 2000); + this.taskDefinition.hasTaskAssessmentResources = true; + }, error: (message) => this.alerts.error(message, 6000), }); } else { - this.alerts.error('Please drop a PDF to upload for this task', 6000); + this.alerts.error('Please drop a zip with scripts for this task to upload', 6000); } } } diff --git a/src/assets/images/institution-logo.png b/src/assets/images/institution-logo.png new file mode 100644 index 0000000000..b1d13c1071 Binary files /dev/null and b/src/assets/images/institution-logo.png differ