diff --git a/.eslintrc.json b/.eslintrc.json index b68141ff..6cc1ccb3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,6 +1,9 @@ { "root": true, "plugins": ["unused-imports"], + "ignorePatterns": [ + "!**/*" + ], "overrides": [ { "files": ["*.ts"], @@ -23,7 +26,10 @@ ], "unused-imports/no-unused-imports": "error", "no-multi-spaces": "error", - "eqeqeq": ["error", "always"], + "eqeqeq": [ + "error", + "smart" + ], "semi": ["error", "always"], "no-trailing-spaces": "error", "no-multiple-empty-lines": "error", diff --git a/.gitignore b/.gitignore index 69d4c900..411e4249 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,5 @@ # See https://help.github.com/ignore-files/ for more about ignoring files. -# bundled locale for the demo -/src/locale/libs_locale - # compiled output /dist /tmp @@ -39,6 +36,3 @@ testem.log #System Files .DS_Store Thumbs.db - -#Compodoc -/documentation diff --git a/.release.json b/.release.json deleted file mode 100644 index d280b4de..00000000 --- a/.release.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "github": { - "release": true - } -} diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 7d7c7d32..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,40 +0,0 @@ -## [1.0.2-beta](https://github.com/infra-geo-ouverte/igo2-quebec/compare/1.0.1-beta...1.0.2-beta) (2023-03-09) - - -### Bug Fixes - -* **github-demo:** fix gh pages icherche path ([030521f](https://github.com/infra-geo-ouverte/igo2-quebec/commit/030521f1d71f18bed00982281f6cfa65a4e2ac78)) - - - -## [1.0.1-beta](https://github.com/infra-geo-ouverte/igo2-quebec/compare/1.0.0-beta...1.0.1-beta) (2023-03-09) - - -### Bug Fixes - -* **app:** fix gh-pages deploy ([a80f483](https://github.com/infra-geo-ouverte/igo2-quebec/commit/a80f48382896cc72c56d8e711b0ed9da2ababd0d)) - - - -# [1.0.0-beta](https://github.com/infra-geo-ouverte/igo2-quebec/compare/da1fb91ad337472d53555f06fba648c8b80053f8...1.0.0-beta) (2023-03-09) - - -### Bug Fixes - -* **app:** fix release script ([a747eaf](https://github.com/infra-geo-ouverte/igo2-quebec/commit/a747eaf391731f2166bda576c2e90b96a9afb048)) -* **menu:** fixed error when exiting portal using the navigation ([#2](https://github.com/infra-geo-ouverte/igo2-quebec/issues/2)) ([4a44106](https://github.com/infra-geo-ouverte/igo2-quebec/commit/4a44106f7a9cab39c9a1207cdba2a7bbc8695821)) -* **portal:** Removed ("showInLayerList" = false) layers from legend ([#14](https://github.com/infra-geo-ouverte/igo2-quebec/issues/14)) ([c964a3a](https://github.com/infra-geo-ouverte/igo2-quebec/commit/c964a3a954ee4c29109c7a94308a41dc06ce4b5a)) -* **test:** fix e2e app-portal check ([bf681ba](https://github.com/infra-geo-ouverte/igo2-quebec/commit/bf681ba5f2afe2c1e2e38b0b25de32cffd3230c3)) - - -### Features - -* **app:** maj IGO2 1.14.1 ([ab0394f](https://github.com/infra-geo-ouverte/igo2-quebec/commit/ab0394f08f975c7be99a5ed189e70a291a8ed1b8)) -* **app:** upgrade libs (angular 14 and +) ([caad701](https://github.com/infra-geo-ouverte/igo2-quebec/commit/caad701a0bdc103f30b09c5b62e89914fc3c0521)) -* **app:** upgrade to igo2 1.13.0 ([ae137e2](https://github.com/infra-geo-ouverte/igo2-quebec/commit/ae137e26a3da53d46e77bbf3b3c3e03dc410afc4)) -* **codeQL:** add code QL scan ([ef67a16](https://github.com/infra-geo-ouverte/igo2-quebec/commit/ef67a169a96ffbde8dac788eb5f01565abb53c2a)) -* **package:** update libs ([da1fb91](https://github.com/infra-geo-ouverte/igo2-quebec/commit/da1fb91ad337472d53555f06fba648c8b80053f8)) -* **portal:** search for mobile mode ([#4](https://github.com/infra-geo-ouverte/igo2-quebec/issues/4)) ([0611583](https://github.com/infra-geo-ouverte/igo2-quebec/commit/0611583677b951265b1dbc83d75020c5d295fc6b)) - - - diff --git a/angular.json b/angular.json index bfc268a2..d9293be8 100644 --- a/angular.json +++ b/angular.json @@ -1,257 +1,265 @@ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, - "newProjectRoot": "projects", - "projects": { - "igo2-quebec": { - "root": "", - "sourceRoot": "src", - "projectType": "application", - "prefix": "app", - "schematics": { - "@schematics/angular:component": { - "inlineTemplate": false, - "style": "scss" - } - }, - "architect": { - "build": { - "defaultConfiguration": "developpement", - "builder": "@angular-devkit/build-angular:browser", - "options": { - "aot": true, - "outputPath": "dist/igo2-quebec", - "index": "src/index.html", - "main": "src/main.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "src/tsconfig.app.json", - "assets": [ - "src/favicon.ico", - "src/assets", - "src/config", - "src/contexts", - "src/locale", - { - "glob": "**/*", - "input": "./node_modules/@igo2/common/assets/", - "output": "./assets/igo2/common/" - }, - { - "glob": "**/*", - "input": "./node_modules/@igo2/core/assets/", - "output": "./assets/igo2/core/" - }, - { - "glob": "**/*", - "input": "./node_modules/@igo2/geo/assets/", - "output": "./assets/igo2/geo/" - }, - "src/manifest.webmanifest" - ], - "styles": ["src/styles.scss"], - "scripts": [], - "stylePreprocessorOptions": { - "includePaths": [ - "src/style/partial", - "src/app/pages/portal", - "node_modules" - ] - }, - "allowedCommonJsDependencies": [ - "typy", - "jwt-decode", - "pbf", - "geojson-rbush", - "raf", - "striptags", - "core-js/modules/es.promise.js", - "core-js/modules/es.regexp.to-string.js", - "core-js/modules/es.array.reverse.js", - "core-js/modules/es.array.index-of.js", - "core-js/modules/es.array.reduce.js", - "core-js/modules/web.dom-collections.iterator.js", - "core-js/modules/es.array.iterator.js", - "nosleep.js", - "regenerator-runtime", - "bowser", - "ts-md5", - "moment", - "html2canvas", - "rgbcolor", - "jszip", - "file-saver", - "rbush" - ] - }, - "configurations": { - "production": { - "budgets": [ - { - "type": "anyComponentStyle", - "maximumWarning": "12kb" - } - ], - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ], - "optimization": true, - "outputHashing": "all", - "sourceMap": true, - "namedChunks": false, - "aot": true, - "extractLicenses": true, - "vendorChunk": true, - "buildOptimizer": false, - "serviceWorker": false - }, - "developpement": { - "buildOptimizer": false, - "optimization": false, - "vendorChunk": true, - "extractLicenses": false, - "sourceMap": true, - "namedChunks": true - }, - "github": { - "budgets": [ - { - "type": "anyComponentStyle", - "maximumWarning": "12kb" - } - ], - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.github.ts" - } - ], - "optimization": true, - "outputHashing": "all", - "sourceMap": true, - "namedChunks": false, - "aot": true, - "extractLicenses": true, - "vendorChunk": true, - "buildOptimizer": false, - "serviceWorker": false - }, - "pwa": { - "budgets": [ - { - "type": "anyComponentStyle", - "maximumWarning": "12kb" - } - ], - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.pwa.ts" - } - ], - "optimization": true, - "outputHashing": "all", - "sourceMap": true, - "namedChunks": false, - "aot": true, - "extractLicenses": true, - "vendorChunk": true, - "buildOptimizer": false, - "serviceWorker": true, - "ngswConfigPath": "ngsw-config.json" - } - } - }, - "serve": { - "defaultConfiguration": "developpement", - "builder": "@angular-devkit/build-angular:dev-server", - "options": { - "buildTarget": "igo2-quebec:build" - }, - "configurations": { - "developpement": { - "buildTarget": "igo2-quebec:build:developpement" - }, - "production": { - "buildTarget": "igo2-quebec:build:production" - }, - "github": { - "buildTarget": "igo2-quebec:build:github" - } - } - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "buildTarget": "igo2-quebec:build" - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "src/test.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "src/tsconfig.spec.json", - "karmaConfig": "src/karma.conf.js", - "styles": ["src/styles.scss"], - "scripts": [], - "assets": [ - "src/favicon.ico", - "src/assets", - "src/manifest.webmanifest" - ], - "stylePreprocessorOptions": { - "includePaths": [ - "src/style/partial", - "src/app/pages/portal", - "node_modules" - ] - } - } - }, - "lint": { - "builder": "@angular-eslint/builder:lint", - "options": { - "lintFilePatterns": [ - "src/**/*.ts", - "src/**/*.html" - ] - } - } - } - }, - "igo2-quebec-e2e": { - "root": "e2e/", - "projectType": "application", - "architect": { - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "e2e/protractor.conf.js", - "devServerTarget": "igo2-quebec:serve" - } - }, - "lint": { - "builder": "@angular-eslint/builder:lint", - "options": { - "lintFilePatterns": [ - "e2e/**/*.ts" - ] - } - } - } - } - }, - "cli": { - "schematicCollections": [ - "@angular-eslint/schematics" - ], - "cache": { - "enabled": false, - "environment": "all" - }, - "analytics": false - } -} +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "igo2-quebec": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "prefix": "app", + "schematics": { + "@schematics/angular:component": { + "inlineTemplate": false, + "style": "scss" + } + }, + "architect": { + "build": { + "defaultConfiguration": "developpement", + "builder": "@angular-devkit/build-angular:application", + "options": { + "aot": true, + "outputPath": "dist", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": ["src/polyfills.ts"], + "tsConfig": "src/tsconfig.app.json", + "inlineStyleLanguage": "scss", + "sourceMap": { + "scripts": true, + "styles": true, + "vendor": true + }, + "assets": [ + "src/favicon.ico", + "src/assets", + "src/config", + "src/contexts", + "src/locale", + { + "glob": "**/*", + "input": "./node_modules/@igo2/common/assets/", + "output": "./assets/igo2/common/" + }, + { + "glob": "**/*", + "input": "./node_modules/@igo2/core/assets/", + "output": "./assets/igo2/core/" + }, + { + "glob": "**/*", + "input": "./node_modules/@igo2/core/locale/", + "output": "./locale/libs_locale", + "ignore": ["**/*.core.json"] + }, + { + "glob": "**/*", + "input": "./node_modules/@igo2/geo/assets/", + "output": "./assets/igo2/geo/" + } + ], + "styles": ["src/styles.scss"], + "scripts": [], + "stylePreprocessorOptions": { + "includePaths": ["node_modules"] + }, + "allowedCommonJsDependencies": [ + "hammerjs", + "typy", + "jwt-decode", + "pbf", + "geojson-rbush", + "raf", + "striptags", + "core-js/modules/es.promise.js", + "core-js/modules/es.regexp.to-string.js", + "core-js/modules/es.array.reverse.js", + "core-js/modules/es.array.index-of.js", + "core-js/modules/es.array.reduce.js", + "core-js/modules/web.dom-collections.iterator.js", + "core-js/modules/es.array.iterator.js", + "nosleep.js", + "regenerator-runtime", + "bowser", + "ts-md5", + "moment", + "html2canvas", + "rgbcolor", + "jszip", + "file-saver", + "rbush" + ] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "anyComponentStyle", + "maximumWarning": "12kb" + } + ], + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "serviceWorker": false + }, + "developpement": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + }, + "developpement-link": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true, + "assets": [ + "src/favicon.ico", + "src/assets", + "src/config", + "src/contexts", + "src/locale", + { + "glob": "**/*", + "input": "../../node_modules/@igo2/common/assets/", + "output": "./assets/igo2/common/" + }, + { + "glob": "**/*", + "input": "../../node_modules/@igo2/core/assets/", + "output": "./assets/igo2/core/" + }, + { + "glob": "**/*", + "input": "../../node_modules/@igo2/core/locale/", + "output": "./locale/libs_locale", + "ignore": ["**/*.core.json"] + }, + { + "glob": "**/*", + "input": "../../node_modules/@igo2/geo/assets/", + "output": "./assets/igo2/geo/" + } + ] + }, + "github": { + "budgets": [ + { + "type": "anyComponentStyle", + "maximumWarning": "12kb" + } + ], + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.github.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "serviceWorker": false + } + } + }, + "serve": { + "defaultConfiguration": "developpement", + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "buildTarget": "igo2-quebec:build" + }, + "configurations": { + "developpement": { + "buildTarget": "igo2-quebec:build:developpement" + }, + "developpement-link": { + "buildTarget": "igo2-quebec:build:developpement-link" + }, + "production": { + "buildTarget": "igo2-quebec:build:production" + }, + "github": { + "buildTarget": "igo2-quebec:build:github" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "igo2-quebec:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.spec.json", + "karmaConfig": "src/karma.conf.js", + "styles": ["src/styles.scss"], + "scripts": [], + "assets": [ + "src/favicon.ico", + "src/assets", + "src/manifest.webmanifest" + ], + "stylePreprocessorOptions": { + "includePaths": [ + "src/style/partial", + "src/app/pages/portal", + "node_modules" + ] + } + } + }, + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"] + } + } + } + }, + "igo2-quebec-e2e": { + "root": "e2e/", + "projectType": "application", + "architect": { + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "igo2-quebec:serve" + } + }, + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "lintFilePatterns": ["e2e/**/*.ts"] + } + } + } + } + }, + "cli": { + "schematicCollections": ["@angular-eslint/schematics"], + "cache": { + "enabled": false, + "environment": "all" + }, + "analytics": false + } +} diff --git a/package-lock.json b/package-lock.json index 2c52600c..f372e7e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,12 @@ { - "name": "igo2-quebec", + "name": "igo-quebec", "version": "1.1.0-beta", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "igo2-quebec", + "name": "igo-quebec", "version": "1.1.0-beta", - "hasInstallScript": true, "license": "LiLiQ-R", "dependencies": { "@angular/animations": "^17.2.4", @@ -21,14 +20,11 @@ "@angular/platform-browser-dynamic": "^17.2.4", "@angular/router": "^17.2.4", "@angular/service-worker": "^17.2.4", - "@igo2/auth": "^17.0.0-next.4", - "@igo2/common": "^17.0.0-next.4", - "@igo2/context": "^17.0.0-next.4", - "@igo2/core": "^17.0.0-next.4", - "@igo2/geo": "^17.0.0-next.4", - "@igo2/integration": "^17.0.0-next.4", - "@igo2/utils": "^17.0.0-next.4", - "bootstrap": "^5.3.1", + "@igo2/common": "^17.0.0-next.7", + "@igo2/core": "^17.0.0-next.7", + "@igo2/integration": "^17.0.0-next.7", + "@igo2/sdg": "1.0.0-next.7", + "@igo2/utils": "^17.0.0-next.7", "core-js": "^3.24.1", "rxjs": "^7.5.6", "tslib": "^2.6.0", @@ -53,7 +49,7 @@ "conventional-changelog-cli": "^4.1.0", "eslint": "^8.57.0", "eslint-plugin-unused-imports": "^3.0.0", - "http-server": "^14.1.0", + "execa": "^8.0.1", "jasmine-core": "~5.1.0", "jasmine-spec-reporter": "~7.0.0", "karma": "~6.4.2", @@ -63,30 +59,21 @@ "karma-jasmine-html-reporter": "~2.1.0", "prettier": "^3.2.0", "protractor": "~7.0.0", - "ts-node": "^10.9.1", + "source-map-explorer": "^2.5.3", "typescript": "~5.3.3" }, "engines": { - "node": ">=18.10.0" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=18.13.0" } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -143,71 +130,71 @@ "peer": true }, "node_modules/@angular-devkit/build-angular": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.2.3.tgz", - "integrity": "sha512-AZsEHZj+k2Lxb7uQUwfEpSE6TvQhCoIgP6XLKgKxZHUOiTUVXDj84WhNcbup5SsSG1cafmoVN7APxxuSwHcoeg==", + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.7.tgz", + "integrity": "sha512-AsV80kiFMIPIhm3uzJgOHDj4u6JteUkZedPTKAFFFJC7CTat1luW5qx306vfF7wj62aMvUl5g9HFWaeLghTQGA==", "dev": true, "dependencies": { - "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1702.3", - "@angular-devkit/build-webpack": "0.1702.3", - "@angular-devkit/core": "17.2.3", - "@babel/core": "7.23.9", + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1703.7", + "@angular-devkit/build-webpack": "0.1703.7", + "@angular-devkit/core": "17.3.7", + "@babel/core": "7.24.0", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", "@babel/helper-split-export-declaration": "7.22.6", "@babel/plugin-transform-async-generator-functions": "7.23.9", "@babel/plugin-transform-async-to-generator": "7.23.3", - "@babel/plugin-transform-runtime": "7.23.9", - "@babel/preset-env": "7.23.9", - "@babel/runtime": "7.23.9", + "@babel/plugin-transform-runtime": "7.24.0", + "@babel/preset-env": "7.24.0", + "@babel/runtime": "7.24.0", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.2.3", + "@ngtools/webpack": "17.3.7", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.17", + "autoprefixer": "10.4.18", "babel-loader": "9.1.3", "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.21.5", "copy-webpack-plugin": "11.0.0", - "critters": "0.0.20", + "critters": "0.0.22", "css-loader": "6.10.0", - "esbuild-wasm": "0.20.0", + "esbuild-wasm": "0.20.1", "fast-glob": "3.3.2", "http-proxy-middleware": "2.0.6", - "https-proxy-agent": "7.0.2", - "inquirer": "9.2.14", + "https-proxy-agent": "7.0.4", + "inquirer": "9.2.15", "jsonc-parser": "3.2.1", "karma-source-map-support": "1.4.0", "less": "4.2.0", "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.30.7", - "mini-css-extract-plugin": "2.8.0", + "magic-string": "0.30.8", + "mini-css-extract-plugin": "2.8.1", "mrmime": "2.0.0", "open": "8.4.2", "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.1", - "piscina": "4.3.1", + "piscina": "4.4.0", "postcss": "8.4.35", - "postcss-loader": "8.1.0", + "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.70.0", - "sass-loader": "14.1.0", + "sass": "1.71.1", + "sass-loader": "14.1.1", "semver": "7.6.0", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.27.0", + "terser": "5.29.1", "tree-kill": "1.2.2", "tslib": "2.6.2", - "undici": "6.6.2", - "vite": "5.0.12", + "undici": "6.11.1", + "vite": "5.1.7", "watchpack": "2.4.0", - "webpack": "5.90.1", - "webpack-dev-middleware": "6.1.1", + "webpack": "5.90.3", + "webpack-dev-middleware": "6.1.2", "webpack-dev-server": "4.15.1", "webpack-merge": "5.10.0", "webpack-subresource-integrity": "5.1.0" @@ -218,7 +205,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.20.0" + "esbuild": "0.20.1" }, "peerDependencies": { "@angular/compiler-cli": "^17.0.0", @@ -233,7 +220,7 @@ "ng-packagr": "^17.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.2 <5.4" + "typescript": ">=5.2 <5.5" }, "peerDependenciesMeta": { "@angular/localize": { @@ -272,12 +259,12 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { - "version": "0.1702.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1702.3.tgz", - "integrity": "sha512-4jeBgtBIZxAeJyiwSdbRE4+rWu34j0UMCKia8s7473rKj0Tn4+dXlHmA/kuFYIp6K/9pE/hBoeUFxLNA/DZuRQ==", + "version": "0.1703.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.7.tgz", + "integrity": "sha512-SwXbdsZqEE3JtvujCLChAii+FA20d1931VDjDYffrGWdQEViTBAr4NKtDr/kOv8KkgiL3fhGibPnRNUHTeAMtg==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.2.3", + "@angular-devkit/core": "17.3.7", "rxjs": "7.8.1" }, "engines": { @@ -287,9 +274,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.2.3.tgz", - "integrity": "sha512-A7WWl1/VsZw6utFFPBib1wSbAB5OeBgAgQmVpVe9wW8u9UZa6CLc7b3InWtRRyBXTo9Sa5GNZDFfwlXhy3iW3w==", + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.7.tgz", + "integrity": "sha512-qpZ7BShyqS/Jqld36E7kL02cyb2pjn1Az1p9439SbP8nsvJgYlsyjwYK2Kmcn/Wi+TZGIKxkqxgBBw9vqGgeJw==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -314,12 +301,12 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1702.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1702.3.tgz", - "integrity": "sha512-G9F2Ori8WxJtMvOQGxTdg7d+5aAO1IPeEtMiZwFPrw65Ey6Gvfm0h2+3FnQdzeKrZmGaTk5E6gffHXJJQfCnmQ==", + "version": "0.1703.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.7.tgz", + "integrity": "sha512-gpt2Ia5I1gmdp3hdbtB7tkZTba5qWmKeVhlCYswa/LvbceKmkjedoeNRAoyr1UKM9GeGqt6Xl1B2eHzCH+ykrg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1702.3", + "@angular-devkit/architect": "0.1703.7", "rxjs": "7.8.1" }, "engines": { @@ -333,12 +320,12 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.1702.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1702.3.tgz", - "integrity": "sha512-4jeBgtBIZxAeJyiwSdbRE4+rWu34j0UMCKia8s7473rKj0Tn4+dXlHmA/kuFYIp6K/9pE/hBoeUFxLNA/DZuRQ==", + "version": "0.1703.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.7.tgz", + "integrity": "sha512-SwXbdsZqEE3JtvujCLChAii+FA20d1931VDjDYffrGWdQEViTBAr4NKtDr/kOv8KkgiL3fhGibPnRNUHTeAMtg==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.2.3", + "@angular-devkit/core": "17.3.7", "rxjs": "7.8.1" }, "engines": { @@ -348,9 +335,9 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.2.3.tgz", - "integrity": "sha512-A7WWl1/VsZw6utFFPBib1wSbAB5OeBgAgQmVpVe9wW8u9UZa6CLc7b3InWtRRyBXTo9Sa5GNZDFfwlXhy3iW3w==", + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.7.tgz", + "integrity": "sha512-qpZ7BShyqS/Jqld36E7kL02cyb2pjn1Az1p9439SbP8nsvJgYlsyjwYK2Kmcn/Wi+TZGIKxkqxgBBw9vqGgeJw==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -375,9 +362,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.12.tgz", - "integrity": "sha512-o6ziQs+EcEonFezrsA46jbZqkQrs4ckS1bAQj93g5ZjGtieUz8l/U3lclvKpL/iEzWkGVViSYuP2KyW2oqTDiQ==", + "version": "16.2.14", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.14.tgz", + "integrity": "sha512-Ui14/d2+p7lnmXlK/AX2ieQEGInBV75lonNtPQgwrYgskF8ufCuN0DyVZQUy9fJDkC+xQxbJyYrby/BS0R0e7w==", "dev": true, "peer": true, "dependencies": { @@ -423,13 +410,13 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.12.tgz", - "integrity": "sha512-lf/Nz2o875pllxGNUcI2by4rctfRsOZOxvaLq2UaH6XG6Re9tqeNfn40a8qXrr9/IYntXnlvEid/pd9e8gFBIw==", + "version": "16.2.14", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.14.tgz", + "integrity": "sha512-B6LQKInCT8w5zx5Pbroext5eFFRTCJdTwHN8GhcVS8IeKCnkeqVTQLjB4lBUg7LEm8Y7UHXwzrVxmk+f+MBXhw==", "dev": true, "peer": true, "dependencies": { - "@angular-devkit/core": "16.2.12", + "@angular-devkit/core": "16.2.14", "jsonc-parser": "3.2.0", "magic-string": "0.30.1", "ora": "5.4.1", @@ -462,13 +449,13 @@ } }, "node_modules/@angular-eslint/builder": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.2.1.tgz", - "integrity": "sha512-O30eaR0wCPiP+zKWvXj2JM8hVq30Wok2rp7zJMFm3PurjF9nWIIyexXkE5fa538DYZYxu8N3gQRqhpv5jvTXCg==", + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.4.1.tgz", + "integrity": "sha512-UVnErsAGXTi8OChkoSxDVVGV2jkFpTaXQT+0fgapSwaOt3Ki7BVwJJoNaX0Zs01c64bjNPZ5ONb/i6nC8QiP9Q==", "dev": true, "dependencies": { - "@nx/devkit": "17.2.8", - "nx": "17.2.8" + "@nx/devkit": "^17.2.8 || ^18.0.0 || ^19.0.0", + "nx": "^17.2.8 || ^18.0.0 || ^19.0.0" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -476,19 +463,20 @@ } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.2.1.tgz", - "integrity": "sha512-puC0itsZv2QlrDOCcWtq1KZH+DvfrpV+mV78HHhi6+h25R5iIhr8ARKcl3EQxFjvrFq34jhG8pSupxKvFbHVfA==", + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.4.1.tgz", + "integrity": "sha512-QKQGspxsyMHRwvzqo+Fj42TS/vmnwOHuWC6EN+5KBx3cuImahqFHQW842zVy9f65jfH2xDnNWJ+NW+Tzcgg+pQ==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.2.1.tgz", - "integrity": "sha512-9yA81BHpsaCUKRBtHGN3ieAy8HpIoffzPQMu34lYqZFT4yGHGhYmhQjNSQGBRbV2LD9dVv2U35rMHNmUcozXpw==", + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.4.1.tgz", + "integrity": "sha512-05bN1UB4H2CuX7Sw6fz+rMobsa+Bl3g15IYldH08hbJSnVemO8mf86bIjRN2Th79sO9WOiXXimnfIt7KRf8l0Q==", "dev": true, "dependencies": { - "@angular-eslint/utils": "17.2.1", - "@typescript-eslint/utils": "6.19.0" + "@angular-eslint/bundled-angular-compiler": "17.4.1", + "@angular-eslint/utils": "17.4.1", + "@typescript-eslint/utils": "7.8.0" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -496,15 +484,15 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.2.1.tgz", - "integrity": "sha512-hl1hcHtcm90wyVL1OQGTz16oA0KHon+FFb3Qg0fLXObaXxA495Ecefd9ub5Xxg4JEOPRDi29bF1Y3YKpwflgeg==", + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.4.1.tgz", + "integrity": "sha512-oYP7yzOpn63g1Mpwc8F8ERiywaGRhAs27ttI9t+5NXaLrwHSfc/AJleC7jjkB5xu1p88JY1mb4oIYOjeZAhHIg==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.2.1", - "@angular-eslint/utils": "17.2.1", - "@typescript-eslint/type-utils": "6.19.0", - "@typescript-eslint/utils": "6.19.0", + "@angular-eslint/bundled-angular-compiler": "17.4.1", + "@angular-eslint/utils": "17.4.1", + "@typescript-eslint/type-utils": "7.8.0", + "@typescript-eslint/utils": "7.8.0", "aria-query": "5.3.0", "axobject-query": "4.0.0" }, @@ -514,30 +502,30 @@ } }, "node_modules/@angular-eslint/schematics": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-17.2.1.tgz", - "integrity": "sha512-7ldtIePI4ZTp/TBpeOZkzfv30HSAn//4TgtFuqvojudI8n8batV5FqQ0VNm1e0zitl75t8Zwtr0KYT4I6vh59g==", + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-17.4.1.tgz", + "integrity": "sha512-CYpsGc0B/ZGO/RKYlyfeAi1pOvFmVs4pvoHU13uOdhdFJ6nAUTujHiBaULloIrUmuIhGW9S0g6w4ecD6ZP680w==", "dev": true, "dependencies": { - "@angular-eslint/eslint-plugin": "17.2.1", - "@angular-eslint/eslint-plugin-template": "17.2.1", - "@nx/devkit": "17.2.8", - "ignore": "5.3.0", - "nx": "17.2.8", + "@angular-eslint/eslint-plugin": "17.4.1", + "@angular-eslint/eslint-plugin-template": "17.4.1", + "@nx/devkit": "^17.2.8 || ^18.0.0 || ^19.0.0", + "ignore": "5.3.1", + "nx": "^17.2.8 || ^18.0.0 || ^19.0.0", "strip-json-comments": "3.1.1", - "tmp": "0.2.1" + "tmp": "0.2.3" }, "peerDependencies": { "@angular/cli": ">= 17.0.0 < 18.0.0" } }, "node_modules/@angular-eslint/template-parser": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.2.1.tgz", - "integrity": "sha512-WPQYFvRju0tCDXQ/pwrzC911pE07JvpeDgcN2elhzV6lxDHJEZpA5O9pnW9qgNA6J6XM9Q7dBkJ22ztAzC4WFw==", + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.4.1.tgz", + "integrity": "sha512-fJQpwQXexgs7Z3yYpQAfuAkFB2Y5H8SSlo+eAPPafOOPpPSIm/yP4dQ2e06tE8zWB5yjYnVBMJnUKSmG5GJSDw==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.2.1", + "@angular-eslint/bundled-angular-compiler": "17.4.1", "eslint-scope": "^8.0.0" }, "peerDependencies": { @@ -546,13 +534,13 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.2.1.tgz", - "integrity": "sha512-qQYTBXy90dWM7fhhpa5i9lTtqqhJisvRa+naCrQx9kBgR458JScLdkVIdcZ9D/rPiDCmKiVUfgcDISnjUeqTqg==", + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.4.1.tgz", + "integrity": "sha512-ptpWSrN7hfLtbStOB5vlwjh088WRu+sT1XIXCROrX5uXR5sQMu5ZitnoObSe+Of+1lugguPvMvFm/pzTMp3LIg==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.2.1", - "@typescript-eslint/utils": "6.19.0" + "@angular-eslint/bundled-angular-compiler": "17.4.1", + "@typescript-eslint/utils": "7.8.0" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -560,9 +548,9 @@ } }, "node_modules/@angular/animations": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.2.4.tgz", - "integrity": "sha512-eTjD8XeioL1Xj+W6iQayOh2JBCfjkg+MG3wzyEW0jhetE/N+wm2xbI1aub2pYplKsu96hOih3lfowYt7qIKGfw==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.3.9.tgz", + "integrity": "sha512-9fSFF9Y+pKZGgGEK3IlVy9msS7LRFpD1h2rJ80N6n1k51jiKcTgOcFPPYwLNJZ2fkp+qrOAMo3ez4WYQgVPoow==", "dependencies": { "tslib": "^2.3.0" }, @@ -570,13 +558,13 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.2.4" + "@angular/core": "17.3.9" } }, "node_modules/@angular/cdk": { - "version": "17.2.2", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.2.2.tgz", - "integrity": "sha512-no3FownDI+05SvCGOxduramTJw+V5p/rKebz4msZbsAXXLnOScZPN2rDgMKShl2dQokc6gjsKXsy8fAYpx7NSQ==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.3.9.tgz", + "integrity": "sha512-N/7Is+FkIIql5UEL/I+PV6THw+yXNCCGGpwimf/yaNgT9y1fHAmBWhDY0oQqFjCuD+kXl9gQL0ONfsl5Nlnk+w==", "dependencies": { "tslib": "^2.3.0" }, @@ -590,19 +578,19 @@ } }, "node_modules/@angular/cli": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.2.3.tgz", - "integrity": "sha512-GIF9NF4t8PiHS4wt6baw1hECfmMOmNHvDAuT12/xoAueOairxIQ+AX13WaEHMJriWujm31TjqbwXmhPxMSEQpw==", + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.7.tgz", + "integrity": "sha512-JgCav3sdRCoJHwLXxmF/EMzArYjwbqB+AGUW/xIR98oZET8QxCB985bOFUAm02SkAEUVcMJvjxec+WCaa60m/A==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1702.3", - "@angular-devkit/core": "17.2.3", - "@angular-devkit/schematics": "17.2.3", - "@schematics/angular": "17.2.3", + "@angular-devkit/architect": "0.1703.7", + "@angular-devkit/core": "17.3.7", + "@angular-devkit/schematics": "17.3.7", + "@schematics/angular": "17.3.7", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", - "ini": "4.1.1", - "inquirer": "9.2.14", + "ini": "4.1.2", + "inquirer": "9.2.15", "jsonc-parser": "3.2.1", "npm-package-arg": "11.0.1", "npm-pick-manifest": "9.0.0", @@ -624,12 +612,12 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1702.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1702.3.tgz", - "integrity": "sha512-4jeBgtBIZxAeJyiwSdbRE4+rWu34j0UMCKia8s7473rKj0Tn4+dXlHmA/kuFYIp6K/9pE/hBoeUFxLNA/DZuRQ==", + "version": "0.1703.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.7.tgz", + "integrity": "sha512-SwXbdsZqEE3JtvujCLChAii+FA20d1931VDjDYffrGWdQEViTBAr4NKtDr/kOv8KkgiL3fhGibPnRNUHTeAMtg==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.2.3", + "@angular-devkit/core": "17.3.7", "rxjs": "7.8.1" }, "engines": { @@ -639,9 +627,9 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.2.3.tgz", - "integrity": "sha512-A7WWl1/VsZw6utFFPBib1wSbAB5OeBgAgQmVpVe9wW8u9UZa6CLc7b3InWtRRyBXTo9Sa5GNZDFfwlXhy3iW3w==", + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.7.tgz", + "integrity": "sha512-qpZ7BShyqS/Jqld36E7kL02cyb2pjn1Az1p9439SbP8nsvJgYlsyjwYK2Kmcn/Wi+TZGIKxkqxgBBw9vqGgeJw==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -666,14 +654,14 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.2.3.tgz", - "integrity": "sha512-JZCzHHheotv+iJ4p6qLc3pEi2M8NO12Slo6uiCg2T9B01glAcJB7DA1nwqjwD1cElf24Pt0C+HI0r+Lng48IsQ==", + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.7.tgz", + "integrity": "sha512-d7NKSwstdxYLYmPsbcYO3GOFNfXxXwOyHxSqDa1JNKoSzMdbLj4tvlCpfXw0ThNM7gioMx8aLBaaH1ac+yk06Q==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.2.3", + "@angular-devkit/core": "17.3.7", "jsonc-parser": "3.2.1", - "magic-string": "0.30.7", + "magic-string": "0.30.8", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -684,9 +672,9 @@ } }, "node_modules/@angular/common": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.2.4.tgz", - "integrity": "sha512-ymzDHZPQWpBKVQ7lPZucU+vBSb70Re6y5TKzkOX7oYE8Z1+tiNGLvfmzGsO2/N0lvwyZWXjkdXYEDON2hIlZ1Q==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.3.9.tgz", + "integrity": "sha512-tH1VfbAvNVaz6ZYa+q0DiKtbmUql1jK/3q/af74B8nVjKLHcXVWwxvBayqvrmlUt7FGANGkETIcCWrB44k47Ug==", "dependencies": { "tslib": "^2.3.0" }, @@ -694,14 +682,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.2.4", + "@angular/core": "17.3.9", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.2.4.tgz", - "integrity": "sha512-McSsBcoHhMkaQpHM5/wTosAKTzJY5uE6ji3z+ec5GrIJhV7jrVfa67+RUoUzHe+rlD/7oQbX1L/OaHKDP8+/mA==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.3.9.tgz", + "integrity": "sha512-2d4bPbNm7O2GanqCj5GFgPDnmjbAcsQM502Jnvcv7Aje82yecT69JoqAVRqGOfbbxwlJiPhi31D8DPdLaOz47Q==", "dependencies": { "tslib": "^2.3.0" }, @@ -709,7 +697,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.2.4" + "@angular/core": "17.3.9" }, "peerDependenciesMeta": { "@angular/core": { @@ -718,9 +706,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.2.4.tgz", - "integrity": "sha512-VGQx1YoYuifQZNj2/nGMEyYVYvXSWrt1ZXK43dgxPDH3jCWNncOBUYtmyCmYvxKvDz0aDO3KL8cro8c4+N0pPw==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.3.9.tgz", + "integrity": "sha512-J6aqoz5wqPWaurbZFUZ7iMUlzAJYXzntziJJbalm6ceXfUWEe2Vm67nGUROWCIFvO3kWXvkgYX4ubnqtod2AxA==", "dev": true, "dependencies": { "@babel/core": "7.23.9", @@ -741,14 +729,59 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/compiler": "17.2.4", - "typescript": ">=5.2 <5.4" + "@angular/compiler": "17.3.9", + "typescript": ">=5.2 <5.5" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@angular/core": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.2.4.tgz", - "integrity": "sha512-5Bko+vk7H1Ce57MHuRcpZtq2Srq5euufSvwg0piPozp0yYmCqNoYN7c128kgi6PbiPQeAnKRzRbEuYd1YCU4Tw==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.3.9.tgz", + "integrity": "sha512-x+h5BQ6islvYWGVLTz1CEgNq1/5IYngQ+Inq/tWayM6jN7RPOCydCCbCw+uOZS7MgFebkP0gYTVm14y1MRFKSQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -761,9 +794,9 @@ } }, "node_modules/@angular/forms": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.2.4.tgz", - "integrity": "sha512-flubCxK6Rc1YmAu23+o+NwqaIWbJ4MIYij05b1GlpRKB5GRX6M0fOl7uRHZmA6dC4xZGt/MUklRqb71T7dJ5JQ==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.3.9.tgz", + "integrity": "sha512-5b8OjK0kLghrdxkVWglgerHVp9D5WvXInXwo1KIyc2v/fGdTlyu/RFi0GLGvzq2y+7Z8TvtXWC82SB47vfx3TQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -771,16 +804,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.2.4", - "@angular/core": "17.2.4", - "@angular/platform-browser": "17.2.4", + "@angular/common": "17.3.9", + "@angular/core": "17.3.9", + "@angular/platform-browser": "17.3.9", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { - "version": "17.2.2", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.2.2.tgz", - "integrity": "sha512-ToUp8gARTvdze9L7jhEuKqdos221jUCMRD6qzhl07XZRlxVbf/5VXUq2Nn7ei9uN11Ii1UY5pC0GS2XtlyHp4A==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.3.9.tgz", + "integrity": "sha512-iNLXGfTsXYQ7lX9UkU4ifb6+lVKjDFQJkWE8HmNWC3C2KXC9k15UefPKy4/sZUVzLE/yOBHPfNDwdhaJGlcu+g==", "dependencies": { "@material/animation": "15.0.0-canary.7f224ddd4.0", "@material/auto-init": "15.0.0-canary.7f224ddd4.0", @@ -833,7 +866,7 @@ }, "peerDependencies": { "@angular/animations": "^17.0.0 || ^18.0.0", - "@angular/cdk": "17.2.2", + "@angular/cdk": "17.3.9", "@angular/common": "^17.0.0 || ^18.0.0", "@angular/core": "^17.0.0 || ^18.0.0", "@angular/forms": "^17.0.0 || ^18.0.0", @@ -842,23 +875,23 @@ } }, "node_modules/@angular/material-moment-adapter": { - "version": "17.2.2", - "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-17.2.2.tgz", - "integrity": "sha512-1h8TnghXFpE3z8gWdANan400qtUQnYxRZoKmheN/y3qkTghfNAdGVYxttGE0FnX8Vj6qKURGFF8NsGByl4cmhg==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-17.3.9.tgz", + "integrity": "sha512-w2pKHWHH8uh5EFltEsWko80SXssXZBgpoHJATOO8RtbLnNUIvrofCxZojIhLOW+nSh+89loZhw+gR/VxGqyNvg==", "peer": true, "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/core": "^17.0.0 || ^18.0.0", - "@angular/material": "17.2.2", + "@angular/material": "17.3.9", "moment": "^2.18.1" } }, "node_modules/@angular/platform-browser": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.2.4.tgz", - "integrity": "sha512-A1jkx4ApIx76VDxm8UZLKEq+gwpKZb4qjzCTBDfjOpXB0MJQ5IaYdCrV0E/vPCKZhIfjbEHK+9H1vHRYDCcXtA==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.3.9.tgz", + "integrity": "sha512-vMwHO76rnkz7aV3KHKy23KUFAo/+b0+yHPa6AND5Lee8z5C1J/tA2PdetFAsghlQQsX61JeK4MFJV/f3dFm2dw==", "dependencies": { "tslib": "^2.3.0" }, @@ -866,9 +899,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "17.2.4", - "@angular/common": "17.2.4", - "@angular/core": "17.2.4" + "@angular/animations": "17.3.9", + "@angular/common": "17.3.9", + "@angular/core": "17.3.9" }, "peerDependenciesMeta": { "@angular/animations": { @@ -877,9 +910,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.2.4.tgz", - "integrity": "sha512-tNS6WexBbdks4uiB0JfPjUG2/rJ/5wuWr9C11CIgsMo+Onbw49imwDQQTxsx1A3misVb72mUufRza9DcxfSBxg==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.3.9.tgz", + "integrity": "sha512-Jmth4hFC4dZsWQRkxB++42sR1pfJUoQbErANrKQMgEPb8H4cLRdB1mAQ6f+OASPBM+FsxDxjXq2kepyLGtF2Vg==", "dependencies": { "tslib": "^2.3.0" }, @@ -887,16 +920,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.2.4", - "@angular/compiler": "17.2.4", - "@angular/core": "17.2.4", - "@angular/platform-browser": "17.2.4" + "@angular/common": "17.3.9", + "@angular/compiler": "17.3.9", + "@angular/core": "17.3.9", + "@angular/platform-browser": "17.3.9" } }, "node_modules/@angular/router": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.2.4.tgz", - "integrity": "sha512-HnEq6OtyXVJx24Vps0N2GsdvynQ8Mv6twjGmhBlo3x/19ay0WEHdHdsayOSKFvxXg9LCLPnSDYlmpk074IsgqA==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.3.9.tgz", + "integrity": "sha512-0cRF5YBJoDbXGQsRs3wEG+DPvN4PlhEqTa0DkTr9QIDJRg5P1uiDlOclV+w3OxEMsLrmXGmhjauHaWQk07M4LA==", "dependencies": { "tslib": "^2.3.0" }, @@ -904,16 +937,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.2.4", - "@angular/core": "17.2.4", - "@angular/platform-browser": "17.2.4", + "@angular/common": "17.3.9", + "@angular/core": "17.3.9", + "@angular/platform-browser": "17.3.9", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/service-worker": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-17.2.4.tgz", - "integrity": "sha512-D9itcdOz8Y4r/WncfmPZlaHHe2kPjMEuSkky36OSvFFP8RXhvuu4iCPYwYvhJYILxKZq++usKZSkPtuETlyKhQ==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-17.3.9.tgz", + "integrity": "sha512-7KFThQMTwEj/yj/Sk2NvdsCpBf46wV121UvmDYIaUl8AQcnrD94W+BJHkPSw1WgPL4yLquySg6D6GGHQcL2dQQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -924,70 +957,70 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.2.4", - "@angular/core": "17.2.4" + "@angular/common": "17.3.9", + "@angular/core": "17.3.9" } }, "node_modules/@azure/msal-angular": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@azure/msal-angular/-/msal-angular-3.0.13.tgz", - "integrity": "sha512-HqXwgERyQZ9yYjTeSsVX8aP9vEmRt6blYSMcAzUxaatFV8++T6m4ByBySZdSV2LLdEdCXtAeB1dEDT68rElo/Q==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@azure/msal-angular/-/msal-angular-3.0.17.tgz", + "integrity": "sha512-+ztZ/t+Ty7AXPFV9yn5xhg7KfQjI+7FyCh+qXkv/gITJOe8SiCl6Nj3jUR7QfWPyUA4IdKZuSTkQ1qhO8s19LA==", "peer": true, "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@azure/msal-browser": "^3.10.0", + "@azure/msal-browser": "^3.14.0", "rxjs": "^7.0.0" } }, "node_modules/@azure/msal-browser": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.10.0.tgz", - "integrity": "sha512-mnmi8dCXVNZI+AGRq0jKQ3YiodlIC4W9npr6FCB9WN6NQT+6rq+cIlxgUb//BjLyzKsnYo+i4LROGeMyU+6v1A==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.14.0.tgz", + "integrity": "sha512-Un85LhOoecJ3HDTS3Uv3UWnXC9/43ZSO+Kc+anSqpZvcEt58SiO/3DuVCAe1A3I5UIBYJNMgTmZPGXQ0MVYrwA==", "peer": true, "dependencies": { - "@azure/msal-common": "14.7.1" + "@azure/msal-common": "14.10.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.7.1", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.7.1.tgz", - "integrity": "sha512-v96btzjM7KrAu4NSEdOkhQSTGOuNUIIsUdB8wlyB9cdgl5KqEKnTonHUZ8+khvZ6Ap542FCErbnTyDWl8lZ2rA==", + "version": "14.10.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.10.0.tgz", + "integrity": "sha512-Zk6DPDz7e1wPgLoLgAp0349Yay9RvcjPM5We/ehuenDNsz/t9QEFI7tRoHpp/e47I4p20XE3FiDlhKwAo3utDA==", "peer": true, "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -995,11 +1028,11 @@ "@babel/generator": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1094,19 +1127,19 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", - "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-split-export-declaration": "^7.24.5", "semver": "^6.3.1" }, "engines": { @@ -1116,6 +1149,18 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1152,9 +1197,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", - "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -1202,40 +1247,40 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1244,6 +1289,18 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", @@ -1257,9 +1314,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1283,13 +1340,13 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { @@ -1300,12 +1357,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1336,18 +1393,18 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1363,51 +1420,52 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", + "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/helper-function-name": "^7.23.0", + "@babel/template": "^7.24.0", + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", "dev": true, "dependencies": { "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.5", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1417,12 +1475,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1432,14 +1490,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/plugin-transform-optional-chaining": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -1449,13 +1507,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1540,12 +1598,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1555,12 +1613,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1712,12 +1770,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1762,12 +1820,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1777,12 +1835,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", + "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1792,13 +1850,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1808,13 +1866,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1825,18 +1883,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", + "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.24.5", "globals": "^11.1.0" }, "engines": { @@ -1846,14 +1904,26 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1863,12 +1933,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", + "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -1878,13 +1948,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1894,12 +1964,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1909,12 +1979,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1925,13 +1995,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", "dev": true, "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1941,12 +2011,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1957,12 +2027,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { @@ -1973,14 +2043,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1990,12 +2060,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -2006,12 +2076,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2021,12 +2091,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -2037,12 +2107,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2052,13 +2122,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2068,13 +2138,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-simple-access": "^7.22.5" }, "engines": { @@ -2085,14 +2155,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", - "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { @@ -2103,13 +2173,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2135,12 +2205,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2150,12 +2220,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -2166,12 +2236,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -2182,16 +2252,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", - "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", + "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/plugin-transform-parameters": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -2201,13 +2270,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -2217,12 +2286,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -2233,12 +2302,12 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", + "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -2250,12 +2319,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", + "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -2265,13 +2334,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2281,14 +2350,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", + "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -2299,12 +2368,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2314,12 +2383,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "regenerator-transform": "^0.15.2" }, "engines": { @@ -2330,12 +2399,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2345,13 +2414,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz", - "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", + "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "babel-plugin-polyfill-corejs2": "^0.4.8", "babel-plugin-polyfill-corejs3": "^0.9.0", "babel-plugin-polyfill-regenerator": "^0.5.5", @@ -2374,12 +2443,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2389,12 +2458,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { @@ -2405,12 +2474,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2420,12 +2489,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2435,12 +2504,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", + "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -2450,12 +2519,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2465,13 +2534,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2481,13 +2550,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2497,13 +2566,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2513,14 +2582,14 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", - "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", @@ -2573,7 +2642,7 @@ "@babel/plugin-transform-new-target": "^7.23.3", "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", "@babel/plugin-transform-object-super": "^7.23.3", "@babel/plugin-transform-optional-catch-binding": "^7.23.4", "@babel/plugin-transform-optional-chaining": "^7.23.4", @@ -2636,9 +2705,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2661,19 +2730,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2681,49 +2750,54 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "node_modules/@babel/traverse/node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, "engines": { - "node": ">=0.1.90" + "node": ">=6.9.0" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "engines": { + "node": ">=0.1.90" } }, "node_modules/@ctrl/tinycolor": { @@ -2745,9 +2819,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz", - "integrity": "sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", + "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", "cpu": [ "ppc64" ], @@ -2761,9 +2835,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.0.tgz", - "integrity": "sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g==", + "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" ], @@ -2777,9 +2851,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.0.tgz", - "integrity": "sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q==", + "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" ], @@ -2793,9 +2867,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.0.tgz", - "integrity": "sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ==", + "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" ], @@ -2809,9 +2883,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz", - "integrity": "sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ==", + "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" ], @@ -2825,9 +2899,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.0.tgz", - "integrity": "sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw==", + "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" ], @@ -2841,9 +2915,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.0.tgz", - "integrity": "sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", + "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", "cpu": [ "arm64" ], @@ -2857,9 +2931,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.0.tgz", - "integrity": "sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ==", + "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" ], @@ -2873,9 +2947,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.0.tgz", - "integrity": "sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg==", + "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" ], @@ -2889,9 +2963,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.0.tgz", - "integrity": "sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", + "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", "cpu": [ "arm64" ], @@ -2905,9 +2979,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.0.tgz", - "integrity": "sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w==", + "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" ], @@ -2921,9 +2995,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.0.tgz", - "integrity": "sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw==", + "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" ], @@ -2937,9 +3011,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.0.tgz", - "integrity": "sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ==", + "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" ], @@ -2953,9 +3027,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.0.tgz", - "integrity": "sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw==", + "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" ], @@ -2969,9 +3043,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.0.tgz", - "integrity": "sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", + "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", "cpu": [ "riscv64" ], @@ -2985,9 +3059,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.0.tgz", - "integrity": "sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ==", + "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" ], @@ -3001,9 +3075,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.0.tgz", - "integrity": "sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg==", + "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" ], @@ -3017,9 +3091,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.0.tgz", - "integrity": "sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ==", + "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" ], @@ -3033,9 +3107,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.0.tgz", - "integrity": "sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA==", + "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" ], @@ -3049,9 +3123,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.0.tgz", - "integrity": "sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g==", + "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" ], @@ -3065,9 +3139,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.0.tgz", - "integrity": "sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", + "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", "cpu": [ "arm64" ], @@ -3081,9 +3155,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.0.tgz", - "integrity": "sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg==", + "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" ], @@ -3097,9 +3171,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.0.tgz", - "integrity": "sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg==", + "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" ], @@ -3257,34 +3331,25 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@floating-ui/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", - "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", "peer": true, "dependencies": { - "@floating-ui/utils": "^0.2.1" + "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/core/node_modules/@floating-ui/utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", - "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==", "peer": true }, "node_modules/@floating-ui/dom": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", - "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", + "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", "peer": true, "dependencies": { "@floating-ui/core": "^1.0.0", @@ -3292,9 +3357,9 @@ } }, "node_modules/@floating-ui/dom/node_modules/@floating-ui/utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", - "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==", "peer": true }, "node_modules/@floating-ui/utils": { @@ -3353,9 +3418,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "node_modules/@hutson/parse-repository-url": { @@ -3368,9 +3433,10 @@ } }, "node_modules/@igo2/auth": { - "version": "17.0.0-next.4", - "resolved": "https://registry.npmjs.org/@igo2/auth/-/auth-17.0.0-next.4.tgz", - "integrity": "sha512-j8wlt0zRH6UcJIBqqbqkWHQ5KvkLY9JH88vFa94bSMJp+Ff4D948bAlutPv1G1TyEY9u4gaH8BA2FrmKH2LzFA==", + "version": "17.0.0-next.7", + "resolved": "https://registry.npmjs.org/@igo2/auth/-/auth-17.0.0-next.7.tgz", + "integrity": "sha512-9mxNrbS4UgwfNpi5VSl/CBS63XbmoxfaYXiRjlYzSiRL5loXsQDIF7aWSxSudyFKeTRkaaA4rU86k5a1gAsKsA==", + "peer": true, "dependencies": { "jwt-decode": "^4.0.0", "ts-cacheable": "^1.0.6", @@ -3389,15 +3455,16 @@ "@angular/router": "^17.0.6", "@azure/msal-angular": "^3.0.4", "@azure/msal-browser": "^3.0.4", - "@igo2/core": "^17.0.0-next.4", - "@igo2/utils": "^17.0.0-next.4", + "@igo2/common": "^17.0.0-next.7", + "@igo2/core": "^17.0.0-next.7", + "@igo2/utils": "^17.0.0-next.7", "rxjs": "^7.8.0" } }, "node_modules/@igo2/common": { - "version": "17.0.0-next.4", - "resolved": "https://registry.npmjs.org/@igo2/common/-/common-17.0.0-next.4.tgz", - "integrity": "sha512-icreOEkpFfzN77VfiX6L1cFtrpSNkXX4LwTrNDWIhfEGirm83edFqEv46It0LZN7FOjBw8wsZMf3gLDdxrtOVw==", + "version": "17.0.0-next.7", + "resolved": "https://registry.npmjs.org/@igo2/common/-/common-17.0.0-next.7.tgz", + "integrity": "sha512-ztzJ+ZkcMWl63GUNfAtIPFdHdReXoUSw1u1U036nnnL76UnU7k03Ed/bksTachEjTVcCcogtRdg7HGXa2xlH0A==", "dependencies": { "tslib": "^2.6.0" }, @@ -3410,8 +3477,8 @@ "@angular/material": "^17.0.3", "@angular/platform-browser": "^17.0.6", "@floating-ui/utils": "^0.1.4", - "@igo2/core": "^17.0.0-next.4", - "@igo2/utils": "^17.0.0-next.4", + "@igo2/core": "^17.0.0-next.7", + "@igo2/utils": "^17.0.0-next.7", "angular-shepherd": "17.0.0", "ngx-color": "^9.0.0", "scroll-into-view-if-needed": "^3.0.0", @@ -3420,9 +3487,10 @@ } }, "node_modules/@igo2/context": { - "version": "17.0.0-next.4", - "resolved": "https://registry.npmjs.org/@igo2/context/-/context-17.0.0-next.4.tgz", - "integrity": "sha512-cM8vn74qBWf09nTOzRvKI1Hp2VABjAfUeUjHnAGIAp7wvLEdYU/GzHOwMlFL28Lsnf7nfv8QljclvViqQVtt9Q==", + "version": "17.0.0-next.7", + "resolved": "https://registry.npmjs.org/@igo2/context/-/context-17.0.0-next.7.tgz", + "integrity": "sha512-svZHJBzCwvoZKlyBRhstzWeNXflSLmOJ6F6F4JWaVDACT1XNIK30h+9fst0cZOL0mJl/Dz/XLqqtSEEBvYXQdQ==", + "peer": true, "dependencies": { "tslib": "^2.6.0" }, @@ -3436,19 +3504,19 @@ "@angular/forms": "^17.0.6", "@angular/material": "^17.0.3", "@angular/platform-browser": "^17.0.6", - "@igo2/auth": "^17.0.0-next.4", - "@igo2/common": "^17.0.0-next.4", - "@igo2/core": "^17.0.0-next.4", - "@igo2/geo": "^17.0.0-next.4", - "@igo2/utils": "^17.0.0-next.4", - "ol": "^7.5.2", + "@igo2/auth": "^17.0.0-next.7", + "@igo2/common": "^17.0.0-next.7", + "@igo2/core": "^17.0.0-next.7", + "@igo2/geo": "^17.0.0-next.7", + "@igo2/utils": "^17.0.0-next.7", + "ol": "^9.0.0", "rxjs": "^7.8.0" } }, "node_modules/@igo2/core": { - "version": "17.0.0-next.4", - "resolved": "https://registry.npmjs.org/@igo2/core/-/core-17.0.0-next.4.tgz", - "integrity": "sha512-sz/VfoNL7CrHCCq8H5ozJ7J6WzeliXBHmS8ZevrVewL3kK7K2heHqyeJ7P7twPcV24FAh4nvUACfWIjSHKTBLA==", + "version": "17.0.0-next.7", + "resolved": "https://registry.npmjs.org/@igo2/core/-/core-17.0.0-next.7.tgz", + "integrity": "sha512-sDjH6xTB/QYn9nLNHfQ2++TNarS2yI5DNT+ucBBpWGj8IlYCeLDL5rRgEDCWNzpVkMP44uBJv+wEGJqh6E0fbg==", "dependencies": { "@ngx-translate/core": "^15.0.0", "tslib": "^2.6.0" @@ -3462,7 +3530,9 @@ "@angular/core": "^17.0.6", "@angular/platform-browser": "^17.0.6", "@angular/router": "^17.0.6", - "@igo2/utils": "^17.0.0-next.4", + "@igo2/utils": "^17.0.0-next.7", + "@ngx-translate/core": "^15.0.0", + "@ngx-translate/http-loader": "^8.0.0", "@sentry/angular-ivy": "^7.87.0", "ngx-indexed-db": "^11.0.2", "ngx-toastr": "^18.0.0", @@ -3470,9 +3540,10 @@ } }, "node_modules/@igo2/geo": { - "version": "17.0.0-next.4", - "resolved": "https://registry.npmjs.org/@igo2/geo/-/geo-17.0.0-next.4.tgz", - "integrity": "sha512-bpOPPCjRoeVu8pdCplKRLKhYwHFb+q1LhyKSdzLtGUMbSKKF5VER7Pjx1aplkHMukGXeY7V3YcyjXQyLCnNZpQ==", + "version": "17.0.0-next.7", + "resolved": "https://registry.npmjs.org/@igo2/geo/-/geo-17.0.0-next.7.tgz", + "integrity": "sha512-16cvVtQm+PCK4eYY4jL6ALybkKf2GI7r/peR/3kzM+7jZqQ9WOe4xxxyiJ8eoARrRsPt+BAJrl6QlBP7bSKIdg==", + "peer": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/line-intersect": "^6.5.0", @@ -3494,10 +3565,10 @@ "@angular/material": "^17.0.3", "@angular/material-moment-adapter": "^17.1.0", "@angular/platform-browser": "^17.0.6", - "@igo2/auth": "^17.0.0-next.4", - "@igo2/common": "^17.0.0-next.4", - "@igo2/core": "^17.0.0-next.4", - "@igo2/utils": "^17.0.0-next.4", + "@igo2/auth": "^17.0.0-next.7", + "@igo2/common": "^17.0.0-next.7", + "@igo2/core": "^17.0.0-next.7", + "@igo2/utils": "^17.0.0-next.7", "@mat-datetimepicker/core": "~13.0.0", "file-saver": "^2.0.2", "flexsearch": "0.7.21", @@ -3508,7 +3579,7 @@ "moment": "^2.29.4", "ngx-color-picker": "^14.0.0", "ngx-indexed-db": "^11.0.2", - "ol": "^7.5.2", + "ol": "^9.0.0", "ol-mapbox-style": "^12.0.0", "proj4": "^2.9.0", "rxjs": "^7.8.0", @@ -3516,9 +3587,9 @@ } }, "node_modules/@igo2/integration": { - "version": "17.0.0-next.4", - "resolved": "https://registry.npmjs.org/@igo2/integration/-/integration-17.0.0-next.4.tgz", - "integrity": "sha512-fP4hODmXI6mswYyiOtXUMnLw73hj9Er73KxBLd7zzbCHEDAomQ5MOPj8/kOiBhV+RUxPTTGA4J3CDIM8LVRp1g==", + "version": "17.0.0-next.7", + "resolved": "https://registry.npmjs.org/@igo2/integration/-/integration-17.0.0-next.7.tgz", + "integrity": "sha512-SdRNc8hMxTfS7eRzeQZxenm5w3pQbJwJFdXxVBNzTzWIsHOo6l8zm4kvgdLvuR2APg+GaC6Ku9wrlbVjNWGEaw==", "dependencies": { "tslib": "^2.6.0" }, @@ -3528,18 +3599,38 @@ "peerDependencies": { "@angular/common": "^17.0.6", "@angular/core": "^17.0.6", - "@igo2/auth": "^17.0.0-next.4", - "@igo2/context": "^17.0.0-next.4", - "@igo2/geo": "^17.0.0-next.4", + "@igo2/auth": "^17.0.0-next.7", + "@igo2/context": "^17.0.0-next.7", + "@igo2/geo": "^17.0.0-next.7", "jspdf": "^2.5.1", "jspdf-autotable": "^3.5.29", "rxjs": "^7.8.0" } }, + "node_modules/@igo2/sdg": { + "version": "1.0.0-next.7", + "resolved": "https://registry.npmjs.org/@igo2/sdg/-/sdg-1.0.0-next.7.tgz", + "integrity": "sha512-2DMa/00p+MAY7TOG0bsJU2oxIswHCrOTJNPpk7achNmbjg9Q2c8GNcl8TryZVlBtTVwLRiKztsbyOS3JMBeUpg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^17.3.0", + "@angular/core": "^17.3.0", + "@angular/material": "^17.3.0", + "@angular/router": "^17.3.0", + "@igo2/context": "^17.0.0-next.7", + "@igo2/core": "^17.0.0-next.7", + "@igo2/geo": "^17.0.0-next.7", + "@igo2/integration": "^17.0.0-next.7", + "@igo2/utils": "^17.0.0-next.7", + "bootstrap": "^5.3.1" + } + }, "node_modules/@igo2/utils": { - "version": "17.0.0-next.4", - "resolved": "https://registry.npmjs.org/@igo2/utils/-/utils-17.0.0-next.4.tgz", - "integrity": "sha512-CgbmteHSOlvJSngH1yLfmuzAGy8MRvpRIJKgABJKo/G5qbNG3mbWbSxWpDgIwvDcAWwj5KsA6/o+7uao8FSqkg==", + "version": "17.0.0-next.7", + "resolved": "https://registry.npmjs.org/@igo2/utils/-/utils-17.0.0-next.7.tgz", + "integrity": "sha512-KGbE/IHpqbBZGaVdFREEgzBwwF86wRzedUjHH2T85m3daUL9priZOgg128eqo9sJyy6pfs/cDh8WHzlbSnu6Rw==", "dependencies": { "bowser": "^2.10.0", "tslib": "^2.6.0" @@ -3745,9 +3836,9 @@ } }, "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", "dev": true }, "node_modules/@ljharb/through": { @@ -3806,9 +3897,9 @@ "peer": true }, "node_modules/@mat-datetimepicker/core": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/@mat-datetimepicker/core/-/core-13.0.1.tgz", - "integrity": "sha512-1c/AgJG62br5wBQbhWaydDWJCQK/UCjSfRc2ahjrRXPKSQRW7dW9UDty2a82I7o3DYvB6Do3nSHIcBMbGBCW7Q==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/@mat-datetimepicker/core/-/core-13.0.2.tgz", + "integrity": "sha512-1xpS6Te76aZJAO8/obh8D99VzT2ABxwmpgx53JX34khQQ3trGps4sw3MyjVUx2mP7pWENHVEPz6TmXt73+KTBg==", "peer": true, "dependencies": { "tslib": "^2.6.2" @@ -4573,9 +4664,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.2.3.tgz", - "integrity": "sha512-+d5Q7/ctDHePYZXcg0GFwL/AbyEkPMHoCiT7pmLI0B0n87D/mYKK/qmVN1VANBrFLTuIe8RtcL0aJ9pw8HAxWA==", + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.7.tgz", + "integrity": "sha512-kQNS68jsPQlaWAnKcVeFKNHp6K90uQANvq+9oXb/i+JnYWzuBsHzn2r8bVdMmvjd1HdBRiGtg767XRk3u+jgRw==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -4584,7 +4675,7 @@ }, "peerDependencies": { "@angular/compiler-cli": "^17.0.0", - "typescript": ">=5.2 <5.4", + "typescript": ">=5.2 <5.5", "webpack": "^5.54.0" } }, @@ -4601,6 +4692,21 @@ "rxjs": "^6.5.5 || ^7.4.0" } }, + "node_modules/@ngx-translate/http-loader": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-8.0.0.tgz", + "integrity": "sha512-SFMsdUcmHF5OdZkL1CHEoSAwbP5EbAOPTLLboOCRRoOg21P4GJx+51jxGdJeGve6LSKLf4Pay7BkTwmE6vxYlg==", + "peer": true, + "engines": { + "node": "^16.13.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/common": ">=16.0.0", + "@angular/core": ">=16.0.0", + "@ngx-translate/core": ">=15.0.0", + "rxjs": "^6.5.5 || ^7.4.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4637,34 +4743,34 @@ } }, "node_modules/@npmcli/agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.1.tgz", - "integrity": "sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "dev": true, "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.1" + "socks-proxy-agent": "^8.0.3" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" } }, "node_modules/@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -4674,15 +4780,15 @@ } }, "node_modules/@npmcli/git": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.4.tgz", - "integrity": "sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.7.tgz", + "integrity": "sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^7.0.0", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", @@ -4702,14 +4808,23 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" } }, + "node_modules/@npmcli/git/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@npmcli/git/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -4726,16 +4841,16 @@ } }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", - "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, "dependencies": { "npm-bundled": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -4751,9 +4866,9 @@ } }, "node_modules/@npmcli/package-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.0.tgz", - "integrity": "sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.1.0.tgz", + "integrity": "sha512-1aL4TuVrLS9sf8quCLerU3H9J4vtCtgu8VauYozrmEyU57i/EdKleCnsQ7vpnABIH6c9mnTxcH5sFkO3BlV8wQ==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", @@ -4761,7 +4876,7 @@ "hosted-git-info": "^7.0.0", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^6.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "semver": "^7.5.3" }, "engines": { @@ -4769,31 +4884,40 @@ } }, "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@npmcli/package-json/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", - "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, "dependencies": { "which": "^4.0.0" @@ -4826,6 +4950,15 @@ "node": "^16.13.0 || >=18.0.0" } }, + "node_modules/@npmcli/redact": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz", + "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/@npmcli/run-script": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", @@ -4867,21 +5000,21 @@ } }, "node_modules/@nrwl/devkit": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-17.2.8.tgz", - "integrity": "sha512-l2dFy5LkWqSA45s6pee6CoqJeluH+sjRdVnAAQfjLHRNSx6mFAKblyzq5h1f4P0EUCVVVqLs+kVqmNx5zxYqvw==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.0.4.tgz", + "integrity": "sha512-wOb7qiluWjVgmfhIGxWXAgJ61ZoL7rDYfx0mibPhbBlqm+86NHJ9CbKTfbfamS20fkzCYdhYeE6xd7sdpcZIZA==", "dev": true, "dependencies": { - "@nx/devkit": "17.2.8" + "@nx/devkit": "19.0.4" } }, "node_modules/@nrwl/tao": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-17.2.8.tgz", - "integrity": "sha512-Qpk5YKeJ+LppPL/wtoDyNGbJs2MsTi6qyX/RdRrEc8lc4bk6Cw3Oul1qTXCI6jT0KzTz+dZtd0zYD/G7okkzvg==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.0.4.tgz", + "integrity": "sha512-ZoHM5hbj0fOaWiiQoN/Wjozc6lbBCCcH7jCIX7amN6aztmcwNYk+Q3NKJE5Jh0/Js5M78VTnLRG2h4KHPzKSKg==", "dev": true, "dependencies": { - "nx": "17.2.8", + "nx": "19.0.4", "tslib": "^2.3.0" }, "bin": { @@ -4889,60 +5022,29 @@ } }, "node_modules/@nx/devkit": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-17.2.8.tgz", - "integrity": "sha512-6LtiQihtZwqz4hSrtT5cCG5XMCWppG6/B8c1kNksg97JuomELlWyUyVF+sxmeERkcLYFaKPTZytP0L3dmCFXaw==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.0.4.tgz", + "integrity": "sha512-nsD0RaL61nZLHSJbog2XwxcI8bML5GlI69Z1k2rvd2zvylqdjNS4SXakMPl/Ar9xX2mAW3Qbup850V0jG87y/Q==", "dev": true, "dependencies": { - "@nrwl/devkit": "17.2.8", + "@nrwl/devkit": "19.0.4", "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", - "semver": "7.5.3", + "minimatch": "9.0.3", + "semver": "^7.5.3", "tmp": "~0.2.1", - "tslib": "^2.3.0" + "tslib": "^2.3.0", + "yargs-parser": "21.1.1" }, "peerDependencies": { - "nx": ">= 16 <= 18" - } - }, - "node_modules/@nx/devkit/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nx/devkit/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "nx": ">= 17 <= 20" } }, - "node_modules/@nx/devkit/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@nx/nx-darwin-arm64": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.2.8.tgz", - "integrity": "sha512-dMb0uxug4hM7tusISAU1TfkDK3ixYmzc1zhHSZwpR7yKJIyKLtUpBTbryt8nyso37AS1yH+dmfh2Fj2WxfBHTg==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.0.4.tgz", + "integrity": "sha512-EwTMKVFdMF42b+DG3ACtrGVE3iiAgOw+VJ4Vekm59+ZkTg6GrZly2VNbthoNSJd6/uPQssoljx36NZH953ieBw==", "cpu": [ "arm64" ], @@ -4956,9 +5058,9 @@ } }, "node_modules/@nx/nx-darwin-x64": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.2.8.tgz", - "integrity": "sha512-0cXzp1tGr7/6lJel102QiLA4NkaLCkQJj6VzwbwuvmuCDxPbpmbz7HC1tUteijKBtOcdXit1/MEoEU007To8Bw==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.0.4.tgz", + "integrity": "sha512-W+SVaYOHWRHcws7wZVcWyxoT57r1qXLMUBvpTVBf5PsVfsI+t9sINwzZjcXWaGNVcPGrVYUZF6Cp3/exkPNUBw==", "cpu": [ "x64" ], @@ -4972,9 +5074,9 @@ } }, "node_modules/@nx/nx-freebsd-x64": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.2.8.tgz", - "integrity": "sha512-YFMgx5Qpp2btCgvaniDGdu7Ctj56bfFvbbaHQWmOeBPK1krNDp2mqp8HK6ZKOfEuDJGOYAp7HDtCLvdZKvJxzA==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.0.4.tgz", + "integrity": "sha512-8Wl2+TOXiRDLbI8mwsbx1sHQLKAaNvfTm2e5Kf+4ay4W/UsrHONRDRA4d/LhMOLQMo+2+q2q+u8DziqT0w0Vaw==", "cpu": [ "x64" ], @@ -4988,9 +5090,9 @@ } }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.2.8.tgz", - "integrity": "sha512-iN2my6MrhLRkVDtdivQHugK8YmR7URo1wU9UDuHQ55z3tEcny7LV3W9NSsY9UYPK/FrxdDfevj0r2hgSSdhnzA==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.0.4.tgz", + "integrity": "sha512-C3PBsyNM5Npq8G8h/WHjUwwlKZpfWK4tK1ZeNseb6LtoNIgNF0PVrJQERqXABt29lanoQ4SeJ8RPgppB3xgCwg==", "cpu": [ "arm" ], @@ -5004,9 +5106,9 @@ } }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.2.8.tgz", - "integrity": "sha512-Iy8BjoW6mOKrSMiTGujUcNdv+xSM1DALTH6y3iLvNDkGbjGK1Re6QNnJAzqcXyDpv32Q4Fc57PmuexyysZxIGg==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.0.4.tgz", + "integrity": "sha512-d7gJv/QlaaBKTHpN+DmnQvo1FBNOGfh9b819WMaNXgDLSNpw9CpaOBZPbPgduee3OaGwbfWmll8VDYzUZgKWuw==", "cpu": [ "arm64" ], @@ -5020,9 +5122,9 @@ } }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.2.8.tgz", - "integrity": "sha512-9wkAxWzknjpzdofL1xjtU6qPFF1PHlvKCZI3hgEYJDo4mQiatGI+7Ttko+lx/ZMP6v4+Umjtgq7+qWrApeKamQ==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.0.4.tgz", + "integrity": "sha512-lQ76O4AtXAQJ6r1MdVDVp4GG+o2vylWFjcyZvZpclhjag+fWKSdO0igL/14HsqNwCPmcPtaHmgqQNlw3MMtL3w==", "cpu": [ "arm64" ], @@ -5036,9 +5138,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.2.8.tgz", - "integrity": "sha512-sjG1bwGsjLxToasZ3lShildFsF0eyeGu+pOQZIp9+gjFbeIkd19cTlCnHrOV9hoF364GuKSXQyUlwtFYFR4VTQ==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.0.4.tgz", + "integrity": "sha512-1K95WMdKHM4pMACzsO9m9TWqSXwL5cg9/1UuS9LUKhjY/bX2y3iTtzT0tFBptCVzRVLZG8wAZphxwQfBIQvnCQ==", "cpu": [ "x64" ], @@ -5052,9 +5154,9 @@ } }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.2.8.tgz", - "integrity": "sha512-QiakXZ1xBCIptmkGEouLHQbcM4klQkcr+kEaz2PlNwy/sW3gH1b/1c0Ed5J1AN9xgQxWspriAONpScYBRgxdhA==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.0.4.tgz", + "integrity": "sha512-iZ+TH/qT2R6nb+bqL8oJDDeUUEJmzYxtacFlf5yLjaiG5nvOxq7cu/lUw/LEqT+BUgK33T7acr3BDC0/q2bFZQ==", "cpu": [ "x64" ], @@ -5068,9 +5170,9 @@ } }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.2.8.tgz", - "integrity": "sha512-XBWUY/F/GU3vKN9CAxeI15gM4kr3GOBqnzFZzoZC4qJt2hKSSUEWsMgeZtsMgeqEClbi4ZyCCkY7YJgU32WUGA==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.0.4.tgz", + "integrity": "sha512-YiRyGZecH4hIy5shZz8SNX5NwY+dZC3Xs09QlMeLKNhf6klfmjJYNtd+9250V4cjJS3opKYf08uG4x+EtuEB5A==", "cpu": [ "arm64" ], @@ -5084,9 +5186,9 @@ } }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.2.8.tgz", - "integrity": "sha512-HTqDv+JThlLzbcEm/3f+LbS5/wYQWzb5YDXbP1wi7nlCTihNZOLNqGOkEmwlrR5tAdNHPRpHSmkYg4305W0CtA==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.0.4.tgz", + "integrity": "sha512-eHEdPjV0GlblyBM501xfe47tPRzugw2U+YOkZh++Ago9MDOrs/ULS9+RM3NhvZl2WnkpNYDbQMjzbQ0r7rxlTA==", "cpu": [ "x64" ], @@ -5100,9 +5202,9 @@ } }, "node_modules/@petamoriken/float16": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.6.tgz", - "integrity": "sha512-GNJhABTtcmt9al/nqdJPycwFD46ww2+q2zwZzTjY0dFFwUAFRw9zszvEr9osyJRd9krRGy6hUDopWUg9fX7VVw==", + "version": "3.8.7", + "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.7.tgz", + "integrity": "sha512-/Ri4xDDpe12NT6Ex/DRgHzLlobiQXEW/hmG08w1wj/YU7hLemk97c+zHQFp0iZQ9r7YqgLEXZR2sls4HxBf9NA==", "peer": true }, "node_modules/@pkgjs/parseargs": { @@ -5126,9 +5228,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "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": [ "arm" ], @@ -5139,9 +5241,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "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" ], @@ -5152,9 +5254,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "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" ], @@ -5165,9 +5267,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "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" ], @@ -5178,9 +5280,22 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "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" ], @@ -5191,9 +5306,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", + "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", "cpu": [ "arm64" ], @@ -5204,9 +5319,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", + "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", "cpu": [ "arm64" ], @@ -5216,10 +5331,23 @@ "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.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "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" ], @@ -5229,10 +5357,23 @@ "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.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "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" ], @@ -5243,9 +5384,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "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" ], @@ -5256,9 +5397,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "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" ], @@ -5269,9 +5410,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "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" ], @@ -5282,9 +5423,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "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" ], @@ -5295,13 +5436,13 @@ ] }, "node_modules/@schematics/angular": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.2.3.tgz", - "integrity": "sha512-rXsYmWC1a8uvGTC6RwICwg1GLLQlTw8jOSqHf6T2AFMzP4p1FV3/GFSGyPIMl9yPwn6JqbmfQy3Bvj0stQNM0Q==", + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.7.tgz", + "integrity": "sha512-HaJroKaberriP4wFefTTSVFrtU9GMvnG3I6ELbOteOyKMH7o2V91FXGJDJ5KnIiLRlBmC30G3r+9Ybc/rtAYkw==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.2.3", - "@angular-devkit/schematics": "17.2.3", + "@angular-devkit/core": "17.3.7", + "@angular-devkit/schematics": "17.3.7", "jsonc-parser": "3.2.1" }, "engines": { @@ -5311,9 +5452,9 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.2.3.tgz", - "integrity": "sha512-A7WWl1/VsZw6utFFPBib1wSbAB5OeBgAgQmVpVe9wW8u9UZa6CLc7b3InWtRRyBXTo9Sa5GNZDFfwlXhy3iW3w==", + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.7.tgz", + "integrity": "sha512-qpZ7BShyqS/Jqld36E7kL02cyb2pjn1Az1p9439SbP8nsvJgYlsyjwYK2Kmcn/Wi+TZGIKxkqxgBBw9vqGgeJw==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -5338,14 +5479,14 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.2.3.tgz", - "integrity": "sha512-JZCzHHheotv+iJ4p6qLc3pEi2M8NO12Slo6uiCg2T9B01glAcJB7DA1nwqjwD1cElf24Pt0C+HI0r+Lng48IsQ==", + "version": "17.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.7.tgz", + "integrity": "sha512-d7NKSwstdxYLYmPsbcYO3GOFNfXxXwOyHxSqDa1JNKoSzMdbLj4tvlCpfXw0ThNM7gioMx8aLBaaH1ac+yk06Q==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.2.3", + "@angular-devkit/core": "17.3.7", "jsonc-parser": "3.2.1", - "magic-string": "0.30.7", + "magic-string": "0.30.8", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -5356,58 +5497,58 @@ } }, "node_modules/@sentry-internal/feedback": { - "version": "7.106.1", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.106.1.tgz", - "integrity": "sha512-udYR7rQnnQJ0q4PP3R7lTFx7cUz3SB4ghm8T/fJzdItrk+Puv6y8VqI19SFfDgvwgStInEzE5yys6SUQcXLBtA==", + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.114.0.tgz", + "integrity": "sha512-kUiLRUDZuh10QE9JbSVVLgqxFoD9eDPOzT0MmzlPuas8JlTmJuV4FtSANNcqctd5mBuLt2ebNXH0MhRMwyae4A==", "peer": true, "dependencies": { - "@sentry/core": "7.106.1", - "@sentry/types": "7.106.1", - "@sentry/utils": "7.106.1" + "@sentry/core": "7.114.0", + "@sentry/types": "7.114.0", + "@sentry/utils": "7.114.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "7.106.1", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.106.1.tgz", - "integrity": "sha512-r+nhLrQuTQih93gZ08F6MLdmaoBy/bQFcVt/2ZVqe1SkDY+MxRlXxq8ydo3FfgEjMRHdody3yT1dj6E174h23w==", + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.114.0.tgz", + "integrity": "sha512-6rTiqmKi/FYtesdM2TM2U+rh6BytdPjLP65KTUodtxohJ+r/3m+termj2o4BhIYPE1YYOZNmbZfwebkuQPmWeg==", "peer": true, "dependencies": { - "@sentry/core": "7.106.1", - "@sentry/replay": "7.106.1", - "@sentry/types": "7.106.1", - "@sentry/utils": "7.106.1" + "@sentry/core": "7.114.0", + "@sentry/replay": "7.114.0", + "@sentry/types": "7.114.0", + "@sentry/utils": "7.114.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry-internal/tracing": { - "version": "7.106.1", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.106.1.tgz", - "integrity": "sha512-Ui9zSmW88jTdmNnNBLYYpNoAi31esX5/auysC3v7+SpwxIsC3AGLFvXs4EPziyz8d0F62Ji0fNQZ96ui4fO6BQ==", + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.114.0.tgz", + "integrity": "sha512-dOuvfJN7G+3YqLlUY4HIjyWHaRP8vbOgF+OsE5w2l7ZEn1rMAaUbPntAR8AF9GBA6j2zWNoSo8e7GjbJxVofSg==", "peer": true, "dependencies": { - "@sentry/core": "7.106.1", - "@sentry/types": "7.106.1", - "@sentry/utils": "7.106.1" + "@sentry/core": "7.114.0", + "@sentry/types": "7.114.0", + "@sentry/utils": "7.114.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/angular-ivy": { - "version": "7.106.1", - "resolved": "https://registry.npmjs.org/@sentry/angular-ivy/-/angular-ivy-7.106.1.tgz", - "integrity": "sha512-1kNTDC69AKuRT/xKwwuFYL6ce3yLPO6z6Byqg9Fy2pdsx+Vx5x5SG8CdC4/XKG1/+phCR1KO72Ou2S3HwgudGQ==", + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/angular-ivy/-/angular-ivy-7.114.0.tgz", + "integrity": "sha512-fgiyB2N6UzXwGL7rMHLTqeLIm3ZCxHKRqcQP5P/2DTnJAsyxgx0e4CYZV236IgpPFl1JndCXMYSD/aJQPH6h7Q==", "peer": true, "dependencies": { - "@sentry/browser": "7.106.1", - "@sentry/core": "7.106.1", - "@sentry/types": "7.106.1", - "@sentry/utils": "7.106.1", + "@sentry/browser": "7.114.0", + "@sentry/core": "7.114.0", + "@sentry/types": "7.114.0", + "@sentry/utils": "7.114.0", "tslib": "^2.4.1" }, "engines": { @@ -5421,139 +5562,166 @@ } }, "node_modules/@sentry/browser": { - "version": "7.106.1", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.106.1.tgz", - "integrity": "sha512-+Yp7OUx78ZwFFYfIvOKZGjMPW7Ds3zZSO8dsMxvDRzkA9NyyAmYMZ/dNTcsGb+PssgkCasF2XA07f6WgkNW92A==", + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.114.0.tgz", + "integrity": "sha512-ijJ0vOEY6U9JJADVYGkUbLrAbpGSQgA4zV+KW3tcsBLX9M1jaWq4BV1PWHdzDPPDhy4OgfOjIfaMb5BSPn1U+g==", "peer": true, "dependencies": { - "@sentry-internal/feedback": "7.106.1", - "@sentry-internal/replay-canvas": "7.106.1", - "@sentry-internal/tracing": "7.106.1", - "@sentry/core": "7.106.1", - "@sentry/replay": "7.106.1", - "@sentry/types": "7.106.1", - "@sentry/utils": "7.106.1" + "@sentry-internal/feedback": "7.114.0", + "@sentry-internal/replay-canvas": "7.114.0", + "@sentry-internal/tracing": "7.114.0", + "@sentry/core": "7.114.0", + "@sentry/integrations": "7.114.0", + "@sentry/replay": "7.114.0", + "@sentry/types": "7.114.0", + "@sentry/utils": "7.114.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/core": { - "version": "7.106.1", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.106.1.tgz", - "integrity": "sha512-cwCd66wkbutXCI8j14JLkyod9RHtqSNfzGpx/ieBE+N786jX+Yj1DiaZJ6ZYjKQpnToipFnacEakCd9Vc9oePA==", + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.114.0.tgz", + "integrity": "sha512-YnanVlmulkjgZiVZ9BfY9k6I082n+C+LbZo52MTvx3FY6RE5iyiPMpaOh67oXEZRWcYQEGm+bKruRxLVP6RlbA==", + "peer": true, + "dependencies": { + "@sentry/types": "7.114.0", + "@sentry/utils": "7.114.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/integrations": { + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.114.0.tgz", + "integrity": "sha512-BJIBWXGKeIH0ifd7goxOS29fBA8BkEgVVCahs6xIOXBjX1IRS6PmX0zYx/GP23nQTfhJiubv2XPzoYOlZZmDxg==", "peer": true, "dependencies": { - "@sentry/types": "7.106.1", - "@sentry/utils": "7.106.1" + "@sentry/core": "7.114.0", + "@sentry/types": "7.114.0", + "@sentry/utils": "7.114.0", + "localforage": "^1.8.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/replay": { - "version": "7.106.1", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.106.1.tgz", - "integrity": "sha512-UnuY6bj7v7CVv3T1sbLHjLutSG4hzcQQj6CjEB2NUpM+QAIguFrwAcYG4U42iNg4Qeg5q4kHi1rPpdpvh6unSA==", + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.114.0.tgz", + "integrity": "sha512-UvEajoLIX9n2poeW3R4Ybz7D0FgCGXoFr/x/33rdUEMIdTypknxjJWxg6fJngIduzwrlrvWpvP8QiZXczYQy2Q==", "peer": true, "dependencies": { - "@sentry-internal/tracing": "7.106.1", - "@sentry/core": "7.106.1", - "@sentry/types": "7.106.1", - "@sentry/utils": "7.106.1" + "@sentry-internal/tracing": "7.114.0", + "@sentry/core": "7.114.0", + "@sentry/types": "7.114.0", + "@sentry/utils": "7.114.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/types": { - "version": "7.106.1", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.106.1.tgz", - "integrity": "sha512-g3OcyAHGugBwkQP4fZYCCZqF2ng9K7yQc9FVngKq/y7PwHm84epXdYYGDGgfQOIC1d5/GMaPxmzI5IIrZexzkg==", + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.114.0.tgz", + "integrity": "sha512-tsqkkyL3eJtptmPtT0m9W/bPLkU7ILY7nvwpi1hahA5jrM7ppoU0IMaQWAgTD+U3rzFH40IdXNBFb8Gnqcva4w==", "peer": true, "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.106.1", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.106.1.tgz", - "integrity": "sha512-NIeuvB9MeDwrObbi6W5xRrNTcQj8klVvwWWYQB0zotY/LDjyl+c+cZzUshFOxBTp9ljVnYzWqZ7J8x/i4baj7w==", + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.114.0.tgz", + "integrity": "sha512-319N90McVpupQ6vws4+tfCy/03AdtsU0MurIE4+W5cubHME08HtiEWlfacvAxX+yuKFhvdsO4K4BB/dj54ideg==", "peer": true, "dependencies": { - "@sentry/types": "7.106.1" + "@sentry/types": "7.114.0" }, "engines": { "node": ">=8" } }, "node_modules/@sigstore/bundle": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", - "integrity": "sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.3.0" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.0.0.tgz", - "integrity": "sha512-dW2qjbWLRKGu6MIDUTBuJwXCnR8zivcSpf5inUzk7y84zqy/dji0/uahppoIgMoKeR+6pUZucrwHfkQQtiG9Rw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz", - "integrity": "sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "dev": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.3.tgz", - "integrity": "sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.2.0", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.0", - "make-fetch-happen": "^13.0.0" + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@sigstore/sign/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@sigstore/tuf": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.1.tgz", - "integrity": "sha512-9Iv40z652td/QbV0o5n/x25H9w6IYRt2pIGbTX55yFDYlApDQn/6YZomjz6+KBx69rXHLzHcbtTS586mDdFD+Q==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.3.0", - "tuf-js": "^2.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/verify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.1.0.tgz", - "integrity": "sha512-1fTqnqyTBWvV7cftUUFtDcHPdSox0N3Ub7C0lRyReYx4zZUlNTZjCV+HPy4Lre+r45dV7Qx5JLKvqqsgxuyYfg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.2.0", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.0" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -5566,9 +5734,9 @@ "dev": true }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, "node_modules/@trivago/prettier-plugin-sort-imports": { @@ -5630,14 +5798,14 @@ } }, "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", "dev": true, "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -5645,13 +5813,13 @@ } }, "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -5674,35 +5842,11 @@ "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", @@ -5714,22 +5858,38 @@ } }, "node_modules/@tufjs/models": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", - "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" + "minimatch": "^9.0.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@turf/bbox": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", + "peer": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -5742,6 +5902,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz", "integrity": "sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==", + "peer": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -5754,6 +5915,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.5.0.tgz", "integrity": "sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==", + "peer": true, "dependencies": { "@turf/bbox": "^6.5.0", "@turf/helpers": "^6.5.0" @@ -5766,6 +5928,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.5.0.tgz", "integrity": "sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==", + "peer": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -5777,6 +5940,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.5.0.tgz", "integrity": "sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==", + "peer": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0" @@ -5789,6 +5953,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-6.5.0.tgz", "integrity": "sha512-6cSvMrnHm2qAsace6pw9cDmK2buAlw8+tjeJVXMfMyY+w7ZUi1rprWMsY92J7s2Dar63Bv09n56/1V7+tcj52Q==", + "peer": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/meta": "^6.5.0" @@ -5801,6 +5966,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", + "peer": true, "funding": { "url": "https://opencollective.com/turf" } @@ -5809,6 +5975,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz", "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", + "peer": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -5820,6 +5987,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.5.0.tgz", "integrity": "sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==", + "peer": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -5835,6 +6003,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.5.0.tgz", "integrity": "sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==", + "peer": true, "dependencies": { "@turf/helpers": "^6.5.0", "@turf/invariant": "^6.5.0", @@ -5848,6 +6017,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", + "peer": true, "dependencies": { "@turf/helpers": "^6.5.0" }, @@ -5859,6 +6029,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-6.5.0.tgz", "integrity": "sha512-fguV09QxilZv/p94s8SMsXILIAMiaXI5PATq9d7YWijLxWUj6Q/r43kxyoi78Zmwwh1Zfqz9w+bCYUAxZ5+euA==", + "peer": true, "dependencies": { "@turf/clone": "^6.5.0", "@turf/distance": "^6.5.0", @@ -5873,6 +6044,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-6.5.0.tgz", "integrity": "sha512-bDpuIlvugJhfcF/0awAQ+QI6Om1Y1FFYE8Y/YdxGRongivix850dTeXCo0mDylFdWFPGDo7Mmh9Vo4VxNwW/TA==", + "peer": true, "dependencies": { "@turf/boolean-point-in-polygon": "^6.5.0", "@turf/center": "^6.5.0", @@ -5938,9 +6110,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.56.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", - "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", "dev": true, "dependencies": { "@types/estree": "*", @@ -5976,9 +6148,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.43", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", - "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", + "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", "dev": true, "dependencies": { "@types/node": "*", @@ -5990,7 +6162,8 @@ "node_modules/@types/geojson": { "version": "7946.0.8", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", - "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==", + "peer": true }, "node_modules/@types/http-errors": { "version": "2.0.4", @@ -6035,9 +6208,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.27.tgz", - "integrity": "sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==", + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -6065,9 +6238,9 @@ "dev": true }, "node_modules/@types/qs": { - "version": "6.9.12", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", - "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==", + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, "node_modules/@types/raf": { @@ -6121,14 +6294,14 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/sockjs": { @@ -6150,25 +6323,23 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.2.0.tgz", - "integrity": "sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.9.0.tgz", + "integrity": "sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/type-utils": "7.2.0", - "@typescript-eslint/utils": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.9.0", + "@typescript-eslint/type-utils": "7.9.0", + "@typescript-eslint/utils": "7.9.0", + "@typescript-eslint/visitor-keys": "7.9.0", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6185,18 +6356,18 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.2.0.tgz", - "integrity": "sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.9.0.tgz", + "integrity": "sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/utils": "7.2.0", + "@typescript-eslint/typescript-estree": "7.9.0", + "@typescript-eslint/utils": "7.9.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6212,21 +6383,18 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.2.0.tgz", - "integrity": "sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "semver": "^7.5.4" + "@typescript-eslint/scope-manager": "7.9.0", + "@typescript-eslint/types": "7.9.0", + "@typescript-eslint/typescript-estree": "7.9.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6237,19 +6405,19 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", - "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.9.0.tgz", + "integrity": "sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/scope-manager": "7.9.0", + "@typescript-eslint/types": "7.9.0", + "@typescript-eslint/typescript-estree": "7.9.0", + "@typescript-eslint/visitor-keys": "7.9.0", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6265,16 +6433,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.9.0.tgz", + "integrity": "sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@typescript-eslint/types": "7.9.0", + "@typescript-eslint/visitor-keys": "7.9.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6282,25 +6450,25 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz", - "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.8.0.tgz", + "integrity": "sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.19.0", - "@typescript-eslint/utils": "6.19.0", + "@typescript-eslint/typescript-estree": "7.8.0", + "@typescript-eslint/utils": "7.8.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -6309,12 +6477,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", - "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", + "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6322,22 +6490,22 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", - "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", + "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", + "@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.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6350,29 +6518,44 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", - "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", + "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.8.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz", + "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6380,22 +6563,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.9.0.tgz", + "integrity": "sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/types": "7.9.0", + "@typescript-eslint/visitor-keys": "7.9.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6407,42 +6590,57 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/utils": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz", - "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz", + "integrity": "sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/typescript-estree": "6.19.0", - "semver": "^7.5.4" + "@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": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", - "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", + "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0" + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6450,12 +6648,12 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", - "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", + "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6463,22 +6661,22 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", - "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", + "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", + "@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.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6491,33 +6689,48 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", - "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", + "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.8.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/utils/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.9.0.tgz", + "integrity": "sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.9.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6789,15 +7002,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/add-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", @@ -6832,18 +7036,18 @@ } }, "node_modules/adm-zip": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.11.tgz", - "integrity": "sha512-bSG/kcTQRVyCZ3aOWt3nu/KGIxkfSNi7MXzgKr/MHfKbqPakFESQvaujpUaAG8OQuSroxYMY5vLMpdE6+oND2Q==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", + "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true, "engines": { "node": ">=6.0" } }, "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { "debug": "^4.3.4" @@ -7026,12 +7230,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -7144,9 +7342,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.17", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", - "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", "dev": true, "funding": [ { @@ -7163,8 +7361,8 @@ } ], "dependencies": { - "browserslist": "^4.22.2", - "caniuse-lite": "^1.0.30001578", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -7196,12 +7394,12 @@ "dev": true }, "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dev": true, "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -7249,13 +7447,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", - "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.1", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { @@ -7372,18 +7570,6 @@ "node": "^4.5.0 || >= 5.9" } }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dev": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -7409,12 +7595,15 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bl": { @@ -7526,6 +7715,7 @@ "url": "https://opencollective.com/bootstrap" } ], + "peer": true, "peerDependencies": { "@popperjs/core": "^2.11.8" } @@ -7635,7 +7825,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "peer": true, "bin": { "btoa": "bin/btoa.js" }, @@ -7673,15 +7862,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -7692,9 +7872,9 @@ } }, "node_modules/cacache": { - "version": "18.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", - "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", + "version": "18.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", + "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", @@ -7715,31 +7895,31 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -7783,9 +7963,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001597", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", - "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", + "version": "1.0.30001620", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", "dev": true, "funding": [ { @@ -8041,6 +8221,40 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, + "node_modules/color-parse": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-2.0.2.tgz", + "integrity": "sha512-eCtOz5w5ttWIUcaKLiktF+DxZO1R9KLNY/xhbV6CkhM7sR3GhVghmt6X6yOnzeaM24po+Z9/S1apbXMwA3Iepw==", + "peer": true, + "dependencies": { + "color-name": "^2.0.0" + } + }, + "node_modules/color-parse/node_modules/color-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.0.tgz", + "integrity": "sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow==", + "peer": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/color-rgba": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-3.0.0.tgz", + "integrity": "sha512-PPwZYkEY3M2THEHHV6Y95sGUie77S7X8v+h1r6LSAPF3/LL2xJ8duUXSrkic31Nzc4odPwHgUbiX/XuTYzQHQg==", + "peer": true, + "dependencies": { + "color-parse": "^2.0.0", + "color-space": "^2.0.0" + } + }, + "node_modules/color-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-space/-/color-space-2.0.1.tgz", + "integrity": "sha512-nKqUYlo0vZATVOFHY810BSYjmCARrG7e5R3UE3CQlyjJTvv5kSSmPG1kzm/oDyyqjehM+lW1RnEt9It9GNa5JA==", + "peer": true + }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -8550,9 +8764,9 @@ } }, "node_modules/core-js": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", - "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -8560,12 +8774,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", - "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, "dependencies": { - "browserslist": "^4.22.3" + "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", @@ -8590,15 +8804,6 @@ "node": ">= 0.10" } }, - "node_modules/corser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", - "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", @@ -8643,16 +8848,10 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, "node_modules/critters": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", - "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", + "version": "0.0.22", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.22.tgz", + "integrity": "sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -8661,7 +8860,7 @@ "domhandler": "^5.0.2", "htmlparser2": "^8.0.2", "postcss": "^8.4.23", - "pretty-bytes": "^5.3.0" + "postcss-media-query-parser": "^0.2.3" } }, "node_modules/critters/node_modules/ansi-styles": { @@ -8856,78 +9055,185 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, "engines": { - "node": ">=0.10" + "node": ">=10.17.0" } }, - "node_modules/date-format": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "node_modules/default-gateway/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { - "node": ">=4.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/default-gateway/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/default-gateway/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { - "ms": "2.1.2" + "path-key": "^3.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=8" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "node_modules/default-gateway/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "node_modules/default-gateway/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "node_modules/default-gateway/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, "engines": { - "node": ">= 10" + "node": ">=6" } }, "node_modules/defaults": { @@ -9076,15 +9382,6 @@ "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -9184,9 +9481,9 @@ } }, "node_modules/dompurify": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.7.tgz", - "integrity": "sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.3.tgz", + "integrity": "sha512-09uyBM2URzOfXMUAqGRnm9R9IUeSkzO9PktXc2eVQIsBmmJUqRmfL1xW2QPBxVJEtlEVs5d8ndrsIQsyAqs81g==", "optional": true, "peer": true }, @@ -9278,9 +9575,9 @@ "dev": true }, "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "dependencies": { "jake": "^10.8.5" @@ -9293,9 +9590,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.703", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.703.tgz", - "integrity": "sha512-094ZZC4nHXPKl/OwPinSMtLN9+hoFkdfQGKnvXbY+3WEAYtVDpz9UhJIViiY6Zb8agvqxiaJzNG9M+pRZWvSZw==", + "version": "1.4.773", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.773.tgz", + "integrity": "sha512-87eHF+h3PlCRwbxVEAw9KtK3v7lWfc/sUDr0W76955AdYTG4bV/k0zrl585Qnj/skRMH2qOSiE+kqMeOQ+LOpw==", "dev": true }, "node_modules/email-addresses": { @@ -9391,9 +9688,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz", + "integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -9492,9 +9789,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", + "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==", "dev": true }, "node_modules/es6-promise": { @@ -9513,9 +9810,9 @@ } }, "node_modules/esbuild": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.0.tgz", - "integrity": "sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", + "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", "dev": true, "hasInstallScript": true, "optional": true, @@ -9526,35 +9823,35 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.0", - "@esbuild/android-arm": "0.20.0", - "@esbuild/android-arm64": "0.20.0", - "@esbuild/android-x64": "0.20.0", - "@esbuild/darwin-arm64": "0.20.0", - "@esbuild/darwin-x64": "0.20.0", - "@esbuild/freebsd-arm64": "0.20.0", - "@esbuild/freebsd-x64": "0.20.0", - "@esbuild/linux-arm": "0.20.0", - "@esbuild/linux-arm64": "0.20.0", - "@esbuild/linux-ia32": "0.20.0", - "@esbuild/linux-loong64": "0.20.0", - "@esbuild/linux-mips64el": "0.20.0", - "@esbuild/linux-ppc64": "0.20.0", - "@esbuild/linux-riscv64": "0.20.0", - "@esbuild/linux-s390x": "0.20.0", - "@esbuild/linux-x64": "0.20.0", - "@esbuild/netbsd-x64": "0.20.0", - "@esbuild/openbsd-x64": "0.20.0", - "@esbuild/sunos-x64": "0.20.0", - "@esbuild/win32-arm64": "0.20.0", - "@esbuild/win32-ia32": "0.20.0", - "@esbuild/win32-x64": "0.20.0" + "@esbuild/aix-ppc64": "0.20.1", + "@esbuild/android-arm": "0.20.1", + "@esbuild/android-arm64": "0.20.1", + "@esbuild/android-x64": "0.20.1", + "@esbuild/darwin-arm64": "0.20.1", + "@esbuild/darwin-x64": "0.20.1", + "@esbuild/freebsd-arm64": "0.20.1", + "@esbuild/freebsd-x64": "0.20.1", + "@esbuild/linux-arm": "0.20.1", + "@esbuild/linux-arm64": "0.20.1", + "@esbuild/linux-ia32": "0.20.1", + "@esbuild/linux-loong64": "0.20.1", + "@esbuild/linux-mips64el": "0.20.1", + "@esbuild/linux-ppc64": "0.20.1", + "@esbuild/linux-riscv64": "0.20.1", + "@esbuild/linux-s390x": "0.20.1", + "@esbuild/linux-x64": "0.20.1", + "@esbuild/netbsd-x64": "0.20.1", + "@esbuild/openbsd-x64": "0.20.1", + "@esbuild/sunos-x64": "0.20.1", + "@esbuild/win32-arm64": "0.20.1", + "@esbuild/win32-ia32": "0.20.1", + "@esbuild/win32-x64": "0.20.1" } }, "node_modules/esbuild-wasm": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.0.tgz", - "integrity": "sha512-Lc9KeQCg1Zf8kCtfDXgy29rx0x8dOuhDWbkP76Wc64q7ctOOc1Zv1C39AxiE+y4N6ONyXtJk4HKpM7jlU7/jSA==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.1.tgz", + "integrity": "sha512-6v/WJubRsjxBbQdz6izgvx7LsVFvVaGmSdwrFHmEzoVgfXL89hkKPoQHsnVI2ngOkcBUQT9kmAM1hVL1k/Av4A==", "dev": true, "bin": { "esbuild": "bin/esbuild" @@ -9643,9 +9940,9 @@ } }, "node_modules/eslint-plugin-unused-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.1.0.tgz", - "integrity": "sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.2.0.tgz", + "integrity": "sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==", "dev": true, "dependencies": { "eslint-rule-composer": "^0.3.0" @@ -9673,9 +9970,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.0.tgz", - "integrity": "sha512-zj3Byw6jX4TcFCJmxOzLt6iol5FAr9xQyZZSQjEzW2UiCJXLwXdRIKCYVFftnpZckaC9Ps9xlC7jB8tSeWWOaw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz", + "integrity": "sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -10057,23 +10354,23 @@ } }, "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -10095,9 +10392,9 @@ "dev": true }, "node_modules/express": { - "version": "4.18.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", - "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, "dependencies": { "accepts": "~1.3.8", @@ -10105,7 +10402,7 @@ "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -10137,9 +10434,9 @@ } }, "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, "engines": { "node": ">= 0.6" @@ -10511,9 +10808,9 @@ "peer": true }, "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { @@ -10546,18 +10843,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -10646,9 +10931,9 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", "dev": true }, "node_modules/fs.realpath": { @@ -10693,6 +10978,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.2.0.tgz", "integrity": "sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==", + "peer": true, "dependencies": { "@turf/bbox": "*", "@turf/helpers": "6.x", @@ -10764,12 +11050,12 @@ } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11071,6 +11357,21 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -11230,19 +11531,10 @@ "node": ">= 0.4" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, "node_modules/hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, "dependencies": { "lru-cache": "^10.0.1" @@ -11252,9 +11544,9 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -11272,18 +11564,6 @@ "wbuf": "^1.1.0" } }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/html-entities": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", @@ -11378,155 +11658,58 @@ "node_modules/http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-server": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", - "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", - "dev": true, - "dependencies": { - "basic-auth": "^2.0.1", - "chalk": "^4.1.2", - "corser": "^2.0.1", - "he": "^1.2.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy": "^1.18.1", - "mime": "^1.6.0", - "minimist": "^1.2.6", - "opener": "^1.5.1", - "portfinder": "^1.0.28", - "secure-compare": "3.0.1", - "union": "~0.5.0", - "url-join": "^4.0.1" - }, - "bin": { - "http-server": "bin/http-server" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/http-server/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/http-server/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true }, - "node_modules/http-server/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=8.0.0" } }, - "node_modules/http-server/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/http-server/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "node_modules/http-server/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" }, "engines": { - "node": ">=8" + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } } }, "node_modules/http-signature": { @@ -11545,9 +11728,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, "dependencies": { "agent-base": "^7.0.2", @@ -11558,12 +11741,12 @@ } }, "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=16.17.0" } }, "node_modules/iconv-lite": { @@ -11610,18 +11793,18 @@ ] }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", - "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, "dependencies": { "minimatch": "^9.0.0" @@ -11649,9 +11832,9 @@ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, "node_modules/immutable": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", - "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", "dev": true }, "node_modules/import-fresh": { @@ -11713,18 +11896,18 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", - "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/inquirer": { - "version": "9.2.14", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.14.tgz", - "integrity": "sha512-4ByIMt677Iz5AvjyKrDpzaepIyMewNvDcvwpVVRZNmy9dLakVoVgdCHZXbK1SlVJra1db0JZ6XkJyHsanpdrdQ==", + "version": "9.2.15", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", + "integrity": "sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==", "dev": true, "dependencies": { "@ljharb/through": "^2.3.12", @@ -11779,9 +11962,9 @@ "dev": true }, "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, "engines": { "node": ">= 10" @@ -11962,12 +12145,12 @@ } }, "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12183,9 +12366,9 @@ } }, "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", + "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", "dev": true, "dependencies": { "async": "^3.2.3", @@ -12533,9 +12716,9 @@ "dev": true }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", - "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -12683,6 +12866,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "peer": true, "engines": { "node": ">=18" } @@ -12880,18 +13064,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/karma/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/karma/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -13060,6 +13232,19 @@ "node": ">=6" } }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/less/node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -13155,6 +13340,24 @@ "node": ">= 12.13.0" } }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "peer": true, + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/localforage/node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "peer": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -13297,9 +13500,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", - "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -13323,16 +13526,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, "node_modules/make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "dev": true, "dependencies": { "@npmcli/agent": "^2.0.0", @@ -13344,6 +13541,7 @@ "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", + "proc-log": "^4.2.0", "promise-retry": "^2.0.1", "ssri": "^10.0.0" }, @@ -13351,6 +13549,15 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/make-fetch-happen/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/mapbox-to-css-font": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.4.tgz", @@ -13458,15 +13665,15 @@ } }, "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=4.0.0" } }, "node_modules/mime-db": { @@ -13491,18 +13698,21 @@ } }, "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mini-css-extract-plugin": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.0.tgz", - "integrity": "sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", + "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", "dev": true, "dependencies": { "schema-utils": "^4.0.0", @@ -13549,9 +13759,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -13570,9 +13780,9 @@ } }, "node_modules/minipass-fetch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, "dependencies": { "minipass": "^7.0.3", @@ -13950,9 +14160,9 @@ } }, "node_modules/node-gyp": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", - "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", + "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", "dev": true, "dependencies": { "env-paths": "^2.2.0", @@ -13974,9 +14184,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", "dev": true, "optional": true, "bin": { @@ -13986,22 +14196,22 @@ } }, "node_modules/node-gyp/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -14044,9 +14254,9 @@ "dev": true }, "node_modules/nopt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, "dependencies": { "abbrev": "^2.0.0" @@ -14059,9 +14269,9 @@ } }, "node_modules/normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", + "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", @@ -14094,12 +14304,13 @@ "node_modules/nosleep.js": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", - "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==" + "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==", + "peer": true }, "node_modules/npm-bundled": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", "dev": true, "dependencies": { "npm-normalize-package-bin": "^3.0.0" @@ -14172,33 +14383,58 @@ } }, "node_modules/npm-registry-fetch": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", - "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "version": "16.2.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz", + "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==", "dev": true, "dependencies": { + "@npmcli/redact": "^1.1.0", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^11.0.0", - "proc-log": "^3.0.0" + "proc-log": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/npm-registry-fetch/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "dependencies": { - "path-key": "^3.0.0" + "path-key": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/nth-check": { @@ -14214,17 +14450,17 @@ } }, "node_modules/nx": { - "version": "17.2.8", - "resolved": "https://registry.npmjs.org/nx/-/nx-17.2.8.tgz", - "integrity": "sha512-rM5zXbuXLEuqQqcjVjClyvHwRJwt+NVImR2A6KFNG40Z60HP6X12wAxxeLHF5kXXTDRU0PFhf/yACibrpbPrAw==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/nx/-/nx-19.0.4.tgz", + "integrity": "sha512-E+wkP3H+23Vu9jso6Xw7cbXPzy2PMyrPukrEUDWkQrr/eCqf0Npkj5zky1/lKFSBaLtNYgsFD21co+b4rwxtdw==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nrwl/tao": "17.2.8", + "@nrwl/tao": "19.0.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.0-rc.46", "@zkochan/js-yaml": "0.0.6", - "axios": "^1.5.1", + "axios": "^1.6.0", "chalk": "^4.1.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", @@ -14235,17 +14471,17 @@ "figures": "3.2.0", "flat": "^5.0.2", "fs-extra": "^11.1.0", - "glob": "7.1.4", "ignore": "^5.0.4", "jest-diff": "^29.4.1", "js-yaml": "4.1.0", "jsonc-parser": "3.2.0", "lines-and-columns": "~2.0.3", - "minimatch": "3.0.5", + "minimatch": "9.0.3", "node-machine-id": "1.1.12", "npm-run-path": "^4.0.1", "open": "^8.4.0", - "semver": "7.5.3", + "ora": "5.3.0", + "semver": "^7.5.3", "string-width": "^4.2.3", "strong-log-transformer": "^2.1.0", "tar-stream": "~2.2.0", @@ -14260,19 +14496,19 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "17.2.8", - "@nx/nx-darwin-x64": "17.2.8", - "@nx/nx-freebsd-x64": "17.2.8", - "@nx/nx-linux-arm-gnueabihf": "17.2.8", - "@nx/nx-linux-arm64-gnu": "17.2.8", - "@nx/nx-linux-arm64-musl": "17.2.8", - "@nx/nx-linux-x64-gnu": "17.2.8", - "@nx/nx-linux-x64-musl": "17.2.8", - "@nx/nx-win32-arm64-msvc": "17.2.8", - "@nx/nx-win32-x64-msvc": "17.2.8" + "@nx/nx-darwin-arm64": "19.0.4", + "@nx/nx-darwin-x64": "19.0.4", + "@nx/nx-freebsd-x64": "19.0.4", + "@nx/nx-linux-arm-gnueabihf": "19.0.4", + "@nx/nx-linux-arm64-gnu": "19.0.4", + "@nx/nx-linux-arm64-musl": "19.0.4", + "@nx/nx-linux-x64-gnu": "19.0.4", + "@nx/nx-linux-x64-musl": "19.0.4", + "@nx/nx-win32-arm64-msvc": "19.0.4", + "@nx/nx-win32-x64-msvc": "19.0.4" }, "peerDependencies": { - "@swc-node/register": "^1.6.7", + "@swc-node/register": "^1.8.0", "@swc/core": "^1.3.85" }, "peerDependenciesMeta": { @@ -14305,16 +14541,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/nx/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/nx/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -14363,23 +14589,6 @@ "node": ">=14.14" } }, - "node_modules/nx/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/nx/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -14407,43 +14616,38 @@ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true }, - "node_modules/nx/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/nx/node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "node_modules/nx/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "path-key": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/nx/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "node_modules/nx/node_modules/ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/nx/node_modules/supports-color": { @@ -14458,11 +14662,19 @@ "node": ">=8" } }, - "node_modules/nx/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/nx/node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, "node_modules/oauth-sign": { "version": "0.9.0", @@ -14498,14 +14710,15 @@ "dev": true }, "node_modules/ol": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/ol/-/ol-7.5.2.tgz", - "integrity": "sha512-HJbb3CxXrksM6ct367LsP3N+uh+iBBMdP3DeGGipdV9YAYTP0vTJzqGnoqQ6C2IW4qf8krw9yuyQbc9fjOIaOQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/ol/-/ol-9.2.1.tgz", + "integrity": "sha512-aMaVieM5B5UiUxkOvjf00TWjJPJe+yDJu8hlmTGiElo4rVIxPqO1eibu5OIrIxCZyBh+rWwwjxp4xUIWSaERZg==", "peer": true, "dependencies": { + "color-rgba": "^3.0.0", + "color-space": "^2.0.1", "earcut": "^2.2.3", "geotiff": "^2.0.7", - "ol-mapbox-style": "^10.1.0", "pbf": "3.2.1", "rbush": "^3.0.1" }, @@ -14515,27 +14728,16 @@ } }, "node_modules/ol-mapbox-style": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-12.2.1.tgz", - "integrity": "sha512-soh8x+8CwlA+e3fd8grotA4XXnm0DSWnpzu5Ef3aEQwpM1o2OfoGPSk/hpjhXL5kFUm79pEyiONTw+kdth2FEQ==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-12.3.2.tgz", + "integrity": "sha512-Qw9I6+WHz9zBsLNm8zWWb707Y/hXrQP1fcwK86pxcX/FklwyDxAhfJAdTkINHncZ331CBEWcqvi2tzoN23dgwg==", "peer": true, "dependencies": { "@mapbox/mapbox-gl-style-spec": "^13.23.1", "mapbox-to-css-font": "^2.4.1" }, - "peerDependencies": { - "ol": ">=9.0.0 || >=9.0.0-dev.0 <9.0.0 || =9.0.0-dev || >=8.0.0 <=8.2.0 || >=7.0.0 <=7.5.2" - } - }, - "node_modules/ol/node_modules/ol-mapbox-style": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-10.7.0.tgz", - "integrity": "sha512-S/UdYBuOjrotcR95Iq9AejGYbifKeZE85D9VtH11ryJLQPTZXZSW1J5bIXcr4AlAH6tyjPPHTK34AdkwB32Myw==", - "peer": true, - "dependencies": { - "@mapbox/mapbox-gl-style-spec": "^13.23.1", - "mapbox-to-css-font": "^2.4.1", - "ol": "^7.3.0" + "peerDependencies": { + "ol": "*" } }, "node_modules/on-finished": { @@ -14569,15 +14771,15 @@ } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -14600,27 +14802,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true, - "bin": { - "opener": "bin/opener-bin.js" - } - }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -14982,25 +15175,25 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -15041,9 +15234,9 @@ "devOptional": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { @@ -15089,9 +15282,9 @@ } }, "node_modules/piscina": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.3.1.tgz", - "integrity": "sha512-MBj0QYm3hJQ/C/wIXTN1OCYC8uQ4BBJ4LVele2P4ZwVQAH04vkk8E1SpDbuemLAL1dZorbuOob9rYqJeWCcCRg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz", + "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==", "dev": true, "optionalDependencies": { "nice-napi": "^1.0.2" @@ -15194,29 +15387,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", - "dev": true, - "dependencies": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/postcss": { "version": "8.4.35", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", @@ -15246,9 +15416,9 @@ } }, "node_modules/postcss-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.0.tgz", - "integrity": "sha512-AbperNcX3rlob7Ay7A/HQcrofug1caABBkopoFeOQMspZBqcqj6giYn1Bwey/0uiOPAcR+NQD0I2HC7rXzk91w==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", "dev": true, "dependencies": { "cosmiconfig": "^9.0.0", @@ -15276,10 +15446,16 @@ } } }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, "engines": { "node": "^10 || ^12 || >= 14" @@ -15289,9 +15465,9 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", - "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", @@ -15306,9 +15482,9 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", - "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.4" @@ -15378,18 +15554,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -15431,9 +15595,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/proj4": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.10.0.tgz", - "integrity": "sha512-0eyB8h1PDoWxucnq88/EZqt7UZlvjhcfbXCcINpE7hqRN0iRPWE/4mXINGulNa/FAvK+Ie7F+l2OxH/0uKV36A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.11.0.tgz", + "integrity": "sha512-SasuTkAx8HnWQHfIyhkdUNJorSJqINHAN3EyMWYiQRVorftz9DHz650YraFgczwgtHOxqnfuDxSNv3C8MUnHeg==", "peer": true, "dependencies": { "mgrs": "1.0.0", @@ -15761,7 +15925,8 @@ "node_modules/quickselect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "peer": true }, "node_modules/raf": { "version": "3.4.1", @@ -15810,20 +15975,21 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "peer": true, "dependencies": { "quickselect": "^2.0.0" } }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/read-package-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", - "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.1.tgz", + "integrity": "sha512-8PcDiZ8DXUjLf687Ol4BR8Bpm2umR7vhoZOzNRt+uxD9GpBh/K+CAAALVIiYFknmvlmyg7hM7BSNUXPaCCqd0Q==", "dev": true, "dependencies": { "glob": "^10.2.2", @@ -15849,22 +16015,22 @@ } }, "node_modules/read-package-json/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -15976,9 +16142,9 @@ } }, "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.12.0.tgz", - "integrity": "sha512-5Y2/pp2wtJk8o08G0CMkuFPCO354FGwk/vbidxrdhRGZfd0tFnb4Qb8anp9XxXriwBgVPjdWbKpGl4J9lJY2jQ==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.18.2.tgz", + "integrity": "sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==", "dev": true, "engines": { "node": ">=16" @@ -16031,9 +16197,9 @@ } }, "node_modules/read-pkg/node_modules/type-fest": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.12.0.tgz", - "integrity": "sha512-5Y2/pp2wtJk8o08G0CMkuFPCO354FGwk/vbidxrdhRGZfd0tFnb4Qb8anp9XxXriwBgVPjdWbKpGl4J9lJY2jQ==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.18.2.tgz", + "integrity": "sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==", "dev": true, "engines": { "node": ">=16" @@ -16081,9 +16247,9 @@ } }, "node_modules/reflect-metadata": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "dev": true }, "node_modules/regenerate": { @@ -16334,6 +16500,36 @@ "node": ">=8" } }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -16385,9 +16581,9 @@ } }, "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", + "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -16400,19 +16596,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.17.2", + "@rollup/rollup-android-arm64": "4.17.2", + "@rollup/rollup-darwin-arm64": "4.17.2", + "@rollup/rollup-darwin-x64": "4.17.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", + "@rollup/rollup-linux-arm-musleabihf": "4.17.2", + "@rollup/rollup-linux-arm64-gnu": "4.17.2", + "@rollup/rollup-linux-arm64-musl": "4.17.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", + "@rollup/rollup-linux-riscv64-gnu": "4.17.2", + "@rollup/rollup-linux-s390x-gnu": "4.17.2", + "@rollup/rollup-linux-x64-gnu": "4.17.2", + "@rollup/rollup-linux-x64-musl": "4.17.2", + "@rollup/rollup-win32-arm64-msvc": "4.17.2", + "@rollup/rollup-win32-ia32-msvc": "4.17.2", + "@rollup/rollup-win32-x64-msvc": "4.17.2", "fsevents": "~2.3.2" } }, @@ -16479,9 +16678,9 @@ "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" }, "node_modules/sass": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", - "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -16496,9 +16695,9 @@ } }, "node_modules/sass-loader": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.0.tgz", - "integrity": "sha512-LS2mLeFWA+orYxHNu+O18Xe4jR0kyamNOOUsE3NyBP4DvIL+8stHpNX0arYTItdPe80kluIiJ7Wfe/9iHSRO0Q==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.1.tgz", + "integrity": "sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==", "dev": true, "dependencies": { "neo-async": "^2.6.2" @@ -16615,12 +16814,6 @@ "compute-scroll-into-view": "^3.0.2" } }, - "node_modules/secure-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", - "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", - "dev": true - }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -16751,6 +16944,18 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -16971,23 +17176,29 @@ } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/sigstore": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.2.tgz", - "integrity": "sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.2.0", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.0", - "@sigstore/sign": "^2.2.3", - "@sigstore/tuf": "^2.3.1", - "@sigstore/verify": "^1.1.0" + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -17013,9 +17224,9 @@ } }, "node_modules/socket.io": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", - "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", "dev": true, "dependencies": { "accepts": "~1.3.4", @@ -17027,124 +17238,292 @@ "socket.io-parser": "~4.2.4" }, "engines": { - "node": ">=10.2.0" + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", + "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "dev": true, + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", + "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/sort-asc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz", + "integrity": "sha512-jBgdDd+rQ+HkZF2/OHCmace5dvpos/aWQpcxuyRs9QUbPRnkEJmYVo81PIGpjIdpOcsnJ4rGjStfDHsbn+UVyw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-desc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz", + "integrity": "sha512-jfZacW5SKOP97BF5rX5kQfJmRVZP5/adDUTY8fCSPvNcXDVpUEe2pr/iKGlcyZzchRJZrswnp68fgk3qBXgkJw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-object": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz", + "integrity": "sha512-aAQiEdqFTTdsvUFxXm3umdo04J7MRljoVGbBlkH7BgNsMvVNAJyGj7C/wV1A8wHWAJj/YikeZbfuCKqhggNWGA==", + "peer": true, + "dependencies": { + "sort-asc": "^0.1.0", + "sort-desc": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-explorer": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/source-map-explorer/-/source-map-explorer-2.5.3.tgz", + "integrity": "sha512-qfUGs7UHsOBE5p/lGfQdaAj/5U/GWYBw2imEpD6UQNkqElYonkow8t+HBL1qqIl3CuGZx7n8/CQo4x1HwSHhsg==", + "dev": true, + "dependencies": { + "btoa": "^1.2.1", + "chalk": "^4.1.0", + "convert-source-map": "^1.7.0", + "ejs": "^3.1.5", + "escape-html": "^1.0.3", + "glob": "^7.1.6", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "open": "^7.3.1", + "source-map": "^0.7.4", + "temp": "^0.9.4", + "yargs": "^16.2.0" + }, + "bin": { + "sme": "bin/cli.js", + "source-map-explorer": "bin/cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/source-map-explorer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/source-map-explorer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/socket.io-adapter": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", - "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "node_modules/source-map-explorer/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "debug": "~4.3.4", - "ws": "~8.11.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "node_modules/source-map-explorer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10.0.0" + "node": ">=7.0.0" } }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } + "node_modules/source-map-explorer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/source-map-explorer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "bin": { - "uuid": "dist/bin/uuid" + "engines": { + "node": ">=8" } }, - "node_modules/socks": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", - "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "node_modules/source-map-explorer/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dev": true, "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" }, "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/socks-proxy-agent": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "node_modules/source-map-explorer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "socks": "^2.7.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 14" - } - }, - "node_modules/sort-asc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz", - "integrity": "sha512-jBgdDd+rQ+HkZF2/OHCmace5dvpos/aWQpcxuyRs9QUbPRnkEJmYVo81PIGpjIdpOcsnJ4rGjStfDHsbn+UVyw==", - "peer": true, - "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/sort-desc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz", - "integrity": "sha512-jfZacW5SKOP97BF5rX5kQfJmRVZP5/adDUTY8fCSPvNcXDVpUEe2pr/iKGlcyZzchRJZrswnp68fgk3qBXgkJw==", - "peer": true, + "node_modules/source-map-explorer/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/sort-object": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz", - "integrity": "sha512-aAQiEdqFTTdsvUFxXm3umdo04J7MRljoVGbBlkH7BgNsMvVNAJyGj7C/wV1A8wHWAJj/YikeZbfuCKqhggNWGA==", - "peer": true, + "node_modules/source-map-explorer/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, "dependencies": { - "sort-asc": "^0.1.0", - "sort-desc": "^0.1.1" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "node_modules/source-map-explorer/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { - "node": ">= 8" + "node": ">=10" } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -17324,9 +17703,9 @@ "dev": true }, "node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dev": true, "dependencies": { "minipass": "^7.0.3" @@ -17472,12 +17851,15 @@ } }, "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-json-comments": { @@ -17580,9 +17962,9 @@ } }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -17677,6 +18059,19 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/temp-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", @@ -17686,6 +18081,18 @@ "node": ">=14.16" } }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/tempfile": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-5.0.0.tgz", @@ -17702,9 +18109,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.29.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", + "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -17890,15 +18297,12 @@ "peer": true }, "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, "engines": { - "node": ">=8.17.0" + "node": ">=14.14" } }, "node_modules/to-fast-properties": { @@ -17981,6 +18385,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/ts-cacheable/-/ts-cacheable-1.0.10.tgz", "integrity": "sha512-eWPYcbbiXE6TSw39RCTrKBhGDoepcuufhh51bwSxa5qQKwQ8EHbCj+QOL5aOEoLsitwZZiW5/sTxiU8WycA0sw==", + "peer": true, "peerDependencies": { "rxjs": "^6.6.0 || ^7.4.0" } @@ -17989,81 +18394,25 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/ts-md5/-/ts-md5-1.3.1.tgz", "integrity": "sha512-DiwiXfwvcTeZ5wCE0z+2A9EseZsztaiZtGrtSaY5JOD7ekPnR/GoIVD5gXZAlK9Na9Kvpo9Waz5rW64WKAWApg==", + "peer": true, "engines": { "node": ">=12" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tuf-js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", - "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, "dependencies": { - "@tufjs/models": "2.0.0", + "@tufjs/models": "2.0.1", "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" + "make-fetch-happen": "^13.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -18186,13 +18535,10 @@ } }, "node_modules/undici": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.6.2.tgz", - "integrity": "sha512-vSqvUE5skSxQJ5sztTZ/CdeJb1Wq0Hf44hlYMciqHghvz+K88U0l7D6u1VsndoFgskDcnU+nG3gYmMzJVzd9Qg==", + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.11.1.tgz", + "integrity": "sha512-KyhzaLJnV1qa3BSHdj4AZ2ndqI0QWPxYzaIOio0WzcEJB9gvuysprJSLtpvc2D9mhR9jPDUk7xlJlZbH2KR5iw==", "dev": true, - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, "engines": { "node": ">=18.0" } @@ -18243,18 +18589,6 @@ "node": ">=4" } }, - "node_modules/union": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", - "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", - "dev": true, - "dependencies": { - "qs": "^6.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/unique-filename": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", @@ -18298,9 +18632,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "funding": [ { @@ -18317,8 +18651,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -18336,12 +18670,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -18375,12 +18703,6 @@ "uuid": "bin/uuid" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -18392,13 +18714,10 @@ } }, "node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -18433,13 +18752,13 @@ "dev": true }, "node_modules/vite": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz", - "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz", + "integrity": "sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA==", "dev": true, "dependencies": { "esbuild": "^0.19.3", - "postcss": "^8.4.32", + "postcss": "^8.4.35", "rollup": "^4.2.0" }, "bin": { @@ -19060,9 +19379,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -19107,9 +19426,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", - "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz", + "integrity": "sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ==", "dev": true, "dependencies": { "colorette": "^2.0.10", @@ -19194,9 +19513,9 @@ } }, "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "dependencies": { "colorette": "^2.0.10", @@ -19217,9 +19536,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "dev": true, "engines": { "node": ">=10.0.0" @@ -19381,30 +19700,6 @@ "node": ">=0.8.0" } }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -19435,7 +19730,8 @@ "node_modules/windows-1252": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/windows-1252/-/windows-1252-3.0.4.tgz", - "integrity": "sha512-PxP05UYnSeqhkkcHeT3xhpY/BsMOX6URw4ZW9ljOlhkQ6UZRRj/xvS3o5kG+fwefCztUtW36+DHBBNnWfXPIsw==" + "integrity": "sha512-PxP05UYnSeqhkkcHeT3xhpY/BsMOX6URw4ZW9ljOlhkQ6UZRRj/xvS3o5kG+fwefCztUtW36+DHBBNnWfXPIsw==", + "peer": true }, "node_modules/wkt-parser": { "version": "1.3.3", @@ -19443,6 +19739,15 @@ "integrity": "sha512-ZnV3yH8/k58ZPACOXeiHaMuXIiaTk1t0hSUVisbO0t4RjA5wPpUytcxeyiN2h+LZRrmuHIh/1UlrR9e7DHDvTw==", "peer": true }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -19575,9 +19880,9 @@ } }, "node_modules/xml-utils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.7.0.tgz", - "integrity": "sha512-bWB489+RQQclC7A9OW8e5BzbT8Tu//jtAOvkYwewFr+Q9T9KDGvfzC1lp0pYPEQPEoPQLDkmxkepSC/2gIAZGw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.8.0.tgz", + "integrity": "sha512-1TY5yLw8DApowZAUsWCniNr8HH6Ebt6O7UQvmIwziGKwUNsQx6e+4NkfOvCfnqmYIcPjCeoI6dh1JenPJ9a1hQ==", "peer": true }, "node_modules/xml2js": { @@ -19644,15 +19949,6 @@ "node": ">=12" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -19666,12 +19962,9 @@ } }, "node_modules/zone.js": { - "version": "0.14.4", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.4.tgz", - "integrity": "sha512-NtTUvIlNELez7Q1DzKVIFZBzNb646boQMgpATo9z3Ftuu/gWvzxCW7jdjcUDoRGxRikrhVHB/zLXh1hxeJawvw==", - "dependencies": { - "tslib": "^2.3.0" - } + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.6.tgz", + "integrity": "sha512-vyRNFqofdaHVdWAy7v3Bzmn84a1JHWSjpuTZROT/uYn8I3p2cmo7Ro9twFmYRQDPhiYOV7QLk0hhY4JJQVqS6Q==" }, "node_modules/zstddec": { "version": "0.1.0", @@ -19680,4 +19973,4 @@ "peer": true } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 264044b8..7154961d 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "igo2-quebec", + "name": "igo-quebec", "version": "1.1.0-beta", "description": "Infrastructure géomatique ouverte - Québec.ca", "author": "Communauté IGO", @@ -8,47 +8,24 @@ }, "license": "LiLiQ-R", "engines": { - "node": ">=18.10.0" + "node": ">=18.13.0" }, "scripts": { - "ng": "ng", - "start": "ng serve --host 0.0.0.0 --port 4202 --proxy-config proxy.conf.json", - "start-pwa": "ng build --configuration pwa --output-path ./dist/pwa && npm run serve.pwa", + "start": "ng serve", "build": "ng build", + "build.github": "ng build --configuration=github", + "link.start": "ng serve --configuration=developpement-link", "lint": "ng lint", "lint.fix": "ng lint --fix", "format": "prettier --write ./src/**/*.{ts,js,html,scss,css,json}", "e2e": "ng e2e --port 4300", - "postinstall": "npm run copyLocaleToDemo", - "build.prod": "ng build --configuration production", - "build.github": "ng build --configuration=github --output-path ./dist/ghpages --base-href /igo2-quebec/", - "build.pwa": "ng build --configuration pwa --output-path ./dist/pwa", "serve.prod": "http-server ./dist/igo2-quebec/ --port 4202 --no-browser", - "serve.pwa": "http-server ./dist/pwa/ --port 4202 --no-browser", - "copyLocaleToDemo": "ts-node scripts/src/locale-copy-from-igo2-core.ts", - "coverage": "npm run build.coverage && npm run serve.coverage", "build.coverage": "ng test --code-coverage --watch=false", - "serve.coverage": "http-server ./coverage/ --port=4210 --no-browser", - "i18n": "ng2-translate-extract --dir ./src --output ./src/assets/locale/ --format=json --clean", "test": "ng test --watch=false --browsers=ChromeHeadless", "test.watch": "ng test", "test.all": "npm run test && npm run e2e", - "clean": "rimraf ./dist && rimraf ./node_modules && npm cache clean --force && git checkout -- package.json && git checkout -- package-lock.json", - "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", - "changelog-current": "conventional-changelog -p angular -r 2", - "preversion.linux": "npm run test.all && rimraf ./dist && npm run build.prod", - "version.linux": "npm run changelog && git add -A CHANGELOG.md", - "postversion.linux": "git push && git push --tags && npm run ghpages", - "preversion": "npm run test.all && rimraf ./dist && npm run build.prod", - "version": "npm run changelog && git add -A CHANGELOG.md", - "postversion": "git push && git push --tags && npm run ghpages.win", - "preghpages": "npm run build.github && echo \"include: ['_default.json', '_contexts.json', '_base.json']\" > dist/ghpages/_config.yml", - "ghpages": "VERSION=$(node -p -e \"require('./package.json').version\") && npx ngh --dir=dist/ghpages --no-silent=false --message=$VERSION", - "postghpages": "rimraf ./dist/ghpages", - "preghpages.win": "npm run build.github && echo include: ['_default.json', '_contexts.json', '_base.json'] > dist/ghpages/_config.yml", - "ghpages.win": "npx ngh --dir=dist/ghpages --no-silent=false --message=%npm_package_version%" + "source-map-explorer": "source-map-explorer dist/browser/main.*.js" }, - "private": true, "dependencies": { "@angular/animations": "^17.2.4", "@angular/cdk": "^17.2.2", @@ -61,14 +38,11 @@ "@angular/platform-browser-dynamic": "^17.2.4", "@angular/router": "^17.2.4", "@angular/service-worker": "^17.2.4", - "@igo2/auth": "^17.0.0-next.4", - "@igo2/common": "^17.0.0-next.4", - "@igo2/context": "^17.0.0-next.4", - "@igo2/core": "^17.0.0-next.4", - "@igo2/geo": "^17.0.0-next.4", - "@igo2/integration": "^17.0.0-next.4", - "@igo2/utils": "^17.0.0-next.4", - "bootstrap": "^5.3.1", + "@igo2/common": "^17.0.0-next.7", + "@igo2/core": "^17.0.0-next.7", + "@igo2/integration": "^17.0.0-next.7", + "@igo2/utils": "^17.0.0-next.7", + "@igo2/sdg": "1.0.0-next.7", "core-js": "^3.24.1", "rxjs": "^7.5.6", "tslib": "^2.6.0", @@ -93,7 +67,7 @@ "conventional-changelog-cli": "^4.1.0", "eslint": "^8.57.0", "eslint-plugin-unused-imports": "^3.0.0", - "http-server": "^14.1.0", + "execa": "^8.0.1", "jasmine-core": "~5.1.0", "jasmine-spec-reporter": "~7.0.0", "karma": "~6.4.2", @@ -101,9 +75,9 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "protractor": "~7.0.0", - "ts-node": "^10.9.1", "prettier": "^3.2.0", + "protractor": "~7.0.0", + "source-map-explorer": "^2.5.3", "typescript": "~5.3.3" } } \ No newline at end of file diff --git a/scripts/src/locale-copy-from-igo2-core.ts b/scripts/src/locale-copy-from-igo2-core.ts deleted file mode 100644 index ee79473b..00000000 --- a/scripts/src/locale-copy-from-igo2-core.ts +++ /dev/null @@ -1,26 +0,0 @@ - -import { readdir } from 'fs/promises'; -import { copyFile } from '../src/utils/file-system.utils'; -import path from 'path'; - -const srcPath = 'node_modules/@igo2/core/locale'; -const distPath = 'src/locale/libs_locale'; - - -(async () => { - - await copyLocales(); -})(); - -async function copyLocales(): Promise { - - const files = await readdir(srcPath); - const localeFiles = files.filter((filePath) => - !filePath.includes('.core.') - ); - for (const localeFile of localeFiles) { - const input = path.join(srcPath, localeFile); - const output = path.join(distPath, localeFile); - await copyFile(input, output); - } -} diff --git a/scripts/src/utils/file-system.utils.ts b/scripts/src/utils/file-system.utils.ts deleted file mode 100644 index e0604797..00000000 --- a/scripts/src/utils/file-system.utils.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { existsSync } from 'fs'; -import { - copyFile as fsCopyFile, - mkdir, - readFile, - writeFile -} from 'fs/promises'; -import { normalize, sep } from 'path'; - -const BUFFER_ENCODING: BufferEncoding = 'utf-8'; - -export async function readFileContent(path: string): Promise { - const body = await readFile(path, BUFFER_ENCODING); - return JSON.parse(body) as T; -} - -export async function createFile( - fileName: string, - dest: string, - body: string -): Promise { - const path = `${dest}/${fileName}`; - try { - await writeFile(path, body, BUFFER_ENCODING); - } catch (err: any) { - if (err.code === 'ENOENT') { - await createFolderRecursively(dest); - await writeFile(path, body, BUFFER_ENCODING); - } - } -} - -export async function copyFile(src: string, dest: string): Promise { - try { - await fsCopyFile(src, dest); - } catch (err: any) { - if (err.code === 'ENOENT') { - await createPreviousFolder(dest); - await fsCopyFile(src, dest); - } - } -} - -export async function createFolderRecursively(dest: string): Promise { - try { - await mkdir(dest); - } catch (err: any) { - if (err.code === 'ENOENT') { - await createPreviousFolder(dest); - await createFolderRecursively(dest); - } - } -} - -async function createPreviousFolder(dest: string): Promise { - const folders = normalize(dest).split(sep); - folders.pop(); - await createFolderRecursively(folders.join(sep)); -} - -export function pathExist(path: string): boolean { - return existsSync(path); -} diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json deleted file mode 100644 index 4442bc0b..00000000 --- a/scripts/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compilerOptions": { - "lib": ["es2022"], - "module": "NodeNext", - "target": "es2022", - "rootDir": "./src", - "baseUrl": "./", - - "isolatedModules": true, - "noImplicitAny": true, - "sourceMap": true, - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "moduleResolution": "node" - }, - "exclude": ["node_modules"] -} diff --git a/src/app/app.component.html b/src/app/app.component.html index 0d2a6f16..cead4573 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,15 +1,16 @@ - - -@if (hasHeader) { - -} - -@if (hasMenu) { - +@if (config.header) { + } -@if (!hasMenu) { - -} + + + diff --git a/src/app/app.component.scss b/src/app/app.component.scss index e956325f..cb2ad2c6 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -1,43 +1,10 @@ -@import '@igo2/core/partial/core.variables'; -@import './pages/portal/portal.variables.scss'; - -$header-height: 72px; -$header-height-mobile: 72px; -$footer-height: 29px; - :host { display: flex; flex-direction: column; overflow-y: auto; height: 100%; +} - igo-message-center - ::ng-deep - simple-notifications - ::ng-deep - div.simple-notification-wrapper { - right: 10px; - } - ::ng-deep .portal-hasHeader { - height: $portal-height-hasHeader-mobile !important; - display: block; - } - - ::ng-deep .portal { - height: 100%; - } - - @media (min-width: 768px) { - ::ng-deep .portal-hasHeader { - height: $portal-height-hasHeader !important; - display: block; - } - } - - igo-spinner { - position: absolute; - top: 50% !important; - right: 50%; - z-index: 100; - } +igo-message-center ::ng-deep .simple-notification-wrapper { + right: 10px; } diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 30f4c43c..7ccb5ca7 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -4,26 +4,24 @@ import { ElementRef, Inject, OnInit, - Renderer2, + Signal, ViewChild } from '@angular/core'; -import { MatIconRegistry } from '@angular/material/icon'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule, MatIconRegistry } from '@angular/material/icon'; import { Meta, Title } from '@angular/platform-browser'; -import { NavigationEnd, Router } from '@angular/router'; +import { NavigationEnd, Router, RouterOutlet } from '@angular/router'; -import { SpinnerActivityDirective, SpinnerComponent } from '@igo2/common'; import { ConfigService } from '@igo2/core/config'; import { LanguageService } from '@igo2/core/language'; -import { MessageService } from '@igo2/core/message'; -import { AnalyticsListenerService, AppOptions } from '@igo2/integration'; -import { DomUtils, userAgent } from '@igo2/utils'; +import { HeaderComponent, NavigationComponent } from '@igo2/sdg'; +import { DomUtils } from '@igo2/utils'; import { delay, first } from 'rxjs'; -import { HeaderComponent } from './pages/header/header.component'; -import { MenuComponent } from './pages/menu/menu.component'; -import { PortalComponent } from './pages/portal/portal.component'; -import { PwaService } from './services/pwa.service'; +import { EnvironmentOptions } from '../environments/environnement.interface'; +import { routes } from './app.routes'; +import { AppService } from './app.service'; @Component({ selector: 'app-root', @@ -31,53 +29,48 @@ import { PwaService } from './services/pwa.service'; styleUrls: ['./app.component.scss'], standalone: true, imports: [ - SpinnerComponent, - SpinnerActivityDirective, + NgClass, + NavigationComponent, HeaderComponent, - MenuComponent, - PortalComponent, - NgClass + RouterOutlet, + MatButtonModule, + MatIconModule ] }) export class AppComponent implements OnInit { - private themeClass = 'qcca-theme'; public hasHeader: boolean; public hasFooter: boolean; - private promptEvent: any; public hasMenu: boolean = false; + config: EnvironmentOptions; + routes = routes.filter((route) => route.redirectTo == null); @ViewChild('searchBar', { read: ElementRef, static: true }) searchBar: ElementRef; + get isHandset(): Signal { + return this.appService.isHandset; + } + constructor( @Inject(DOCUMENT) private document: Document, protected languageService: LanguageService, private configService: ConfigService, - private analyticsListenerService: AnalyticsListenerService, - private renderer: Renderer2, private titleService: Title, private metaService: Meta, - private messageService: MessageService, - private pwaService: PwaService, private router: Router, + private appService: AppService, iconRegistry: MatIconRegistry ) { iconRegistry.registerFontClassAlias('Linearicons-Free', 'lnr'); - this.readTitleConfig(); - this.readThemeConfig(); - this.readDescriptionConfig(); - this.analyticsListenerService.listen(); + this.config = this.configService.getConfigs(); - this.detectOldBrowser(); + this.readTitleConfig(); + this.readDescriptionConfig(); this.hasHeader = this.configService.getConfig('header.hasHeader', false); this.hasFooter = this.configService.getConfig('hasFooter', false); this.hasMenu = this.configService.getConfig('hasMenu', false); - - this.setManifest(); - this.installPrompt(); - this.pwaService.checkForUpdates(); } ngOnInit(): void { @@ -122,70 +115,10 @@ export class AppComponent implements OnInit { }); } - private setManifest() { - if (this.configService.getConfig('app.install.enabled')) { - const manifestPath = this.configService.getConfig( - 'app.install.manifestPath', - 'manifest.webmanifest' - ); - document - .querySelector('#igoManifestByConfig') - .setAttribute('href', manifestPath); - } - } - - private installPrompt() { - const appConfig: AppOptions = this.configService.getConfig('app'); - if (appConfig?.install?.enabled && appConfig?.install?.promote) { - if (userAgent.getOSName() !== 'iOS') { - window.addEventListener( - 'beforeinstallprompt', - (event: any) => { - event.preventDefault(); - this.promptEvent = event; - window.addEventListener( - 'click', - () => { - setTimeout(() => { - this.promptEvent.prompt(); - this.promptEvent = undefined; - }, 750); - }, - { once: true } - ); - }, - { once: true } - ); - } - } - } - - private readThemeConfig() { - const theme = this.configService.getConfig('theme') || this.themeClass; - if (theme) { - this.renderer.addClass(document.body, theme); - } - } - private readDescriptionConfig() { const description = this.configService.getConfig('description'); if (description) { this.metaService.addTag({ name: 'description', content: description }); } } - - private detectOldBrowser() { - const oldBrowser = userAgent.satisfies({ - ie: '<=11', - chrome: '<64', - firefox: '<60', - safari: '<=11' - }); - - if (oldBrowser) { - this.messageService.alert('oldBrowser.message', 'oldBrowser.title', { - timeOut: 15000 - }); - } - } } diff --git a/src/app/app.config.ts b/src/app/app.config.ts new file mode 100644 index 00000000..2afeaf8c --- /dev/null +++ b/src/app/app.config.ts @@ -0,0 +1,34 @@ +import { provideHttpClient } from '@angular/common/http'; +import { ApplicationConfig, importProvidersFrom } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { provideAnimations } from '@angular/platform-browser/animations'; +import { + PreloadAllModules, + provideRouter, + withPreloading +} from '@angular/router'; + +import { provideIcon } from '@igo2/common/icon'; +import { IgoCoreModule } from '@igo2/core'; +import { provideConfig } from '@igo2/core/config'; +import { provideTranslation } from '@igo2/core/language'; +import { provideNavigationTitle } from '@igo2/sdg'; + +import { environment } from '../environments'; +import { routes } from './app.routes'; + +export const appConfig: ApplicationConfig = { + providers: [ + importProvidersFrom(BrowserModule, IgoCoreModule), + provideHttpClient(), + provideAnimations(), + provideRouter(routes, withPreloading(PreloadAllModules)), + provideConfig({ + default: { ...environment, ...environment.igo }, + path: './config/config.json' + }), + provideTranslation(), + provideNavigationTitle(), + provideIcon() + ] +}; diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts new file mode 100644 index 00000000..7f15b6a6 --- /dev/null +++ b/src/app/app.routes.ts @@ -0,0 +1,32 @@ +import { INavigationRoutes } from '@igo2/sdg'; + +export const routes: INavigationRoutes = [ + { path: '', redirectTo: '', pathMatch: 'full' }, + { + path: '', + title: 'Accueil', + loadComponent: () => + import('./pages/home/home.component').then((m) => m.HomeComponent) + }, + { + path: 'carte', + title: 'Carte', + loadComponent: () => + import('./pages/map/map.component').then((m) => m.MapComponent) + }, + { + path: 'en-savoir-plus', + title: 'En savoir plus', + loadChildren: () => + import('./pages/about/about.routes').then((m) => m.routes) + }, + { + path: 'contact-us', + title: 'header.contactUs', + hidden: true, + loadComponent: () => + import('./pages/contact-us/contact-us.component').then( + (m) => m.ContactUsComponent + ) + } +]; diff --git a/src/app/pages/portal/panels/panels-handler/panels-handler.state.spec.ts b/src/app/app.service.spec.ts similarity index 51% rename from src/app/pages/portal/panels/panels-handler/panels-handler.state.spec.ts rename to src/app/app.service.spec.ts index 821f69b2..3a3b746f 100644 --- a/src/app/pages/portal/panels/panels-handler/panels-handler.state.spec.ts +++ b/src/app/app.service.spec.ts @@ -1,13 +1,13 @@ import { TestBed } from '@angular/core/testing'; -import { PanelsHandlerState } from './panels-handler.state'; +import { AppService } from './app.service'; -describe('PanelsHandlerState', () => { - let service: PanelsHandlerState; +describe('AppService', () => { + let service: AppService; beforeEach(() => { TestBed.configureTestingModule({}); - service = TestBed.inject(PanelsHandlerState); + service = TestBed.inject(AppService); }); it('should be created', () => { diff --git a/src/app/app.service.ts b/src/app/app.service.ts new file mode 100644 index 00000000..646500c2 --- /dev/null +++ b/src/app/app.service.ts @@ -0,0 +1,21 @@ +import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; +import { Injectable, WritableSignal, signal } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class AppService { + public isHandset: WritableSignal = signal(false); + + constructor(private breakpointObserver: BreakpointObserver) { + this.handleBreakpoint(); + } + + private handleBreakpoint(): void { + this.breakpointObserver + .observe(Breakpoints.HandsetPortrait) + .subscribe((result) => { + this.isHandset.set(result.matches); + }); + } +} diff --git a/src/app/app.theming.scss b/src/app/app.theming.scss deleted file mode 100644 index 75b48e9e..00000000 --- a/src/app/app.theming.scss +++ /dev/null @@ -1,5 +0,0 @@ -@use './pages/portal/portal.theming' as portal; - -@mixin themes($theme) { - @include portal.themes($theme); -} diff --git a/src/app/components/_components-theme.scss b/src/app/components/_components-theme.scss new file mode 100644 index 00000000..9671fe4c --- /dev/null +++ b/src/app/components/_components-theme.scss @@ -0,0 +1,8 @@ +@mixin themes($theme) { +} + +@mixin colors($theme) { +} + +@mixin densities($theme) { +} diff --git a/src/app/pages/about/about-sub-page/about-sub-page.component.html b/src/app/pages/about/about-sub-page/about-sub-page.component.html new file mode 100644 index 00000000..dadcaa1f --- /dev/null +++ b/src/app/pages/about/about-sub-page/about-sub-page.component.html @@ -0,0 +1,89 @@ + +

Exemple de navigation secondaire

+ +

Fil d'ariane dynamique

+

+ Paragraphe : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Tu + enim ista lenius, hic Stoicorum more nos vexat. Quo studio Aristophanem + putamus aetatem in litteris duxisse? Honesta oratio, Socratica, Platonis + etiam. Vitiosum est enim in dividendo partem in genere numerare. + Non est igitur voluptas bonum. Duo Reges: constructio interrete. Non + autem hoc: igitur ne illud quidem. Magna laus. + Quis istum dolorem timet? Quod autem satis est, eo quicquid accessit, + nimium est; Sed ille, ut dixi, vitiose. +

+ +

+ Cur tantas regiones barbarorum pedibus obiit, tot maria transmisit? + Nulla erit controversia. + Prave, nequiter, turpiter cenabat; + Multoque hoc melius nos veriusque quam Stoici. Contineo me ab + exemplis. Sed nimis multa. + Nos vero, inquit ille; + Occultum facinus esse potuerit, gaudebit; +

+ +
    +
  • + Iam doloris medicamenta illa Epicurea tamquam de narthecio proment: Si + gravis, brevis; +
  • +
  • + Ergo et avarus erit, sed finite, et adulter, verum habebit modum, et + luxuriosus eodem modo. +
  • +
  • Sedulo, inquam, faciam.
  • +
  • + Quid enim tanto opus est instrumento in optimis artibus comparandis? +
  • +
  • + Sic, et quidem diligentius saepiusque ista loquemur inter nos agemusque + communiter. +
  • +
+ +

+ Bold Inde igitur, inquit, ordiendum est. Quis hoc dicit? Quamquam te + quidem video minime esse deterritum. + Bonum incolumis acies: misera caecitas. Indicant pueri, in quibus ut + in speculis natura cernitur. Duae sunt enim res quoque, ne tu verba solum + putes. + Est enim effectrix multarum et magnarum voluptatum. +

+ +
+      Pre Corporis igitur nostri partes totaque figura et forma et
+      statura quam apta ad naturam sit, apparet, neque est dubium,
+      quin frons, oculi, aures et reliquae partes quales propriae
+      sint hominis intellegatur.
+
+      Pungunt quasi aculeis interrogatiunculis angustis, quibus
+      etiam qui assentiuntur nihil commutantur animo et idem
+      abeunt, qui venerant.
+  
+ +
    +
  1. + Atqui perspicuum est hominem e corpore animoque constare, cum primae sint + animi partes, secundae corporis. +
  2. +
  3. + Nonne videmus quanta perturbatio rerum omnium consequatur, quanta + confusio? +
  4. +
+ +
+
Stoicos roga.
+
Quid enim de amicitia statueris utilitatis causa expetenda vides.
+
Qui convenit?
+
Que Manilium, ab iisque M.
+
Paria sunt igitur.
+
Quamquam ab iis philosophiam et omnes ingenuas disciplinas habemus;
+
Confecta res esset.
+
Cupiditates non Epicuri divisione finiebat, sed sua satietate.
+
+
diff --git a/src/app/pages/portal/panels/panels-handler/panels-handler.interface.ts b/src/app/pages/about/about-sub-page/about-sub-page.component.scss similarity index 100% rename from src/app/pages/portal/panels/panels-handler/panels-handler.interface.ts rename to src/app/pages/about/about-sub-page/about-sub-page.component.scss diff --git a/src/app/pages/about/about-sub-page/about-sub-page.component.spec.ts b/src/app/pages/about/about-sub-page/about-sub-page.component.spec.ts new file mode 100644 index 00000000..b77e86b3 --- /dev/null +++ b/src/app/pages/about/about-sub-page/about-sub-page.component.spec.ts @@ -0,0 +1,22 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AboutSubPageComponent } from './about-sub-page.component'; + +describe('AboutSubPageComponent', () => { + let component: AboutSubPageComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [AboutSubPageComponent] + }).compileComponents(); + + fixture = TestBed.createComponent(AboutSubPageComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/about/about-sub-page/about-sub-page.component.ts b/src/app/pages/about/about-sub-page/about-sub-page.component.ts new file mode 100644 index 00000000..7385d1e0 --- /dev/null +++ b/src/app/pages/about/about-sub-page/about-sub-page.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; + +import { BasicScreenComponent } from '@igo2/sdg'; + +import { AppService } from '../../../app.service'; + +@Component({ + selector: 'app-about-sub-page', + standalone: true, + imports: [BasicScreenComponent], + templateUrl: './about-sub-page.component.html', + styleUrl: './about-sub-page.component.scss' +}) +export class AboutSubPageComponent { + get isHandset() { + return this.appService.isHandset; + } + + constructor(private appService: AppService) {} +} diff --git a/src/app/pages/about/about.component.html b/src/app/pages/about/about.component.html new file mode 100644 index 00000000..357ea11d --- /dev/null +++ b/src/app/pages/about/about.component.html @@ -0,0 +1,92 @@ + +

Notre Mission

+ +

Mission 1

+

+ Paragraphe : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Tu + enim ista lenius, hic Stoicorum more nos vexat. Quo studio Aristophanem + putamus aetatem in litteris duxisse? Honesta oratio, Socratica, Platonis + etiam. Vitiosum est enim in dividendo partem in genere numerare. + Non est igitur voluptas bonum. Duo Reges: constructio interrete. Non + autem hoc: igitur ne illud quidem. Magna laus. + Quis istum dolorem timet? Quod autem satis est, eo quicquid accessit, + nimium est; Sed ille, ut dixi, vitiose. +

+ +

+ Cur tantas regiones barbarorum pedibus obiit, tot maria transmisit? + Nulla erit controversia. + Prave, nequiter, turpiter cenabat; + Multoque hoc melius nos veriusque quam Stoici. Contineo me ab + exemplis. Sed nimis multa. + Nos vero, inquit ille; + Occultum facinus esse potuerit, gaudebit; +

+ +
    +
  • + Iam doloris medicamenta illa Epicurea tamquam de narthecio proment: Si + gravis, brevis; +
  • +
  • + Ergo et avarus erit, sed finite, et adulter, verum habebit modum, et + luxuriosus eodem modo. +
  • +
  • Sedulo, inquam, faciam.
  • +
  • + Quid enim tanto opus est instrumento in optimis artibus comparandis? +
  • +
  • + Sic, et quidem diligentius saepiusque ista loquemur inter nos agemusque + communiter. +
  • +
+ +

+ Bold Inde igitur, inquit, ordiendum est. Quis hoc dicit? Quamquam te + quidem video minime esse deterritum. + Bonum incolumis acies: misera caecitas. Indicant pueri, in quibus ut + in speculis natura cernitur. Duae sunt enim res quoque, ne tu verba solum + putes. + Est enim effectrix multarum et magnarum voluptatum. +

+ +
+      Pre Corporis igitur nostri partes totaque figura et forma et
+      statura quam apta ad naturam sit, apparet, neque est dubium,
+      quin frons, oculi, aures et reliquae partes quales propriae
+      sint hominis intellegatur.
+
+      Pungunt quasi aculeis interrogatiunculis angustis, quibus
+      etiam qui assentiuntur nihil commutantur animo et idem
+      abeunt, qui venerant.
+  
+ +
    +
  1. + Atqui perspicuum est hominem e corpore animoque constare, cum primae sint + animi partes, secundae corporis. +
  2. +
  3. + Nonne videmus quanta perturbatio rerum omnium consequatur, quanta + confusio? +
  4. +
+ +
+
Stoicos roga.
+
Quid enim de amicitia statueris utilitatis causa expetenda vides.
+
Qui convenit?
+
Que Manilium, ab iisque M.
+
Paria sunt igitur.
+
Quamquam ab iis philosophiam et omnes ingenuas disciplinas habemus;
+
Confecta res esset.
+
Cupiditates non Epicuri divisione finiebat, sed sua satietate.
+
+ + Naviguer à une sous page + +
+
diff --git a/src/app/pages/menu/menu-pages/about/about.component.spec.ts b/src/app/pages/about/about.component.spec.ts similarity index 100% rename from src/app/pages/menu/menu-pages/about/about.component.spec.ts rename to src/app/pages/about/about.component.spec.ts diff --git a/src/app/pages/about/about.component.ts b/src/app/pages/about/about.component.ts new file mode 100644 index 00000000..198acef2 --- /dev/null +++ b/src/app/pages/about/about.component.ts @@ -0,0 +1,21 @@ +import { Component, Signal } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterLink } from '@angular/router'; + +import { BasicScreenComponent } from '@igo2/sdg'; + +import { AppService } from '../../../app/app.service'; + +@Component({ + selector: 'app-about-page', + templateUrl: './about.component.html', + standalone: true, + imports: [BasicScreenComponent, RouterLink, MatButtonModule] +}) +export class AboutComponent { + get isHandset(): Signal { + return this.appService.isHandset; + } + + constructor(private appService: AppService) {} +} diff --git a/src/app/pages/about/about.routes.ts b/src/app/pages/about/about.routes.ts new file mode 100644 index 00000000..24fd2956 --- /dev/null +++ b/src/app/pages/about/about.routes.ts @@ -0,0 +1,19 @@ +import { INavigationRoutes } from '@igo2/sdg'; + +export const routes: INavigationRoutes = [ + { path: '', redirectTo: '', pathMatch: 'full' }, + { + path: '', + title: 'En savoir plus', + loadComponent: () => + import('./about.component').then((m) => m.AboutComponent) + }, + { + path: 'sub-page', + title: 'Sous page', + loadComponent: () => + import('./about-sub-page/about-sub-page.component').then( + (m) => m.AboutSubPageComponent + ) + } +]; diff --git a/src/app/pages/contact-us/contact-us.component.html b/src/app/pages/contact-us/contact-us.component.html new file mode 100644 index 00000000..8e4cec9c --- /dev/null +++ b/src/app/pages/contact-us/contact-us.component.html @@ -0,0 +1,12 @@ + +

+ Paragraphe : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Tu + enim ista lenius, hic Stoicorum more nos vexat. Quo studio Aristophanem + putamus aetatem in litteris duxisse? Honesta oratio, Socratica, Platonis + etiam. Vitiosum est enim in dividendo partem in genere numerare. + Non est igitur voluptas bonum. Duo Reges: constructio interrete. Non + autem hoc: igitur ne illud quidem. Magna laus. + Quis istum dolorem timet? Quod autem satis est, eo quicquid accessit, + nimium est; Sed ille, ut dixi, vitiose. +

+
diff --git a/src/app/pages/contact-us/contact-us.component.scss b/src/app/pages/contact-us/contact-us.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/pages/menu/menu-pages/map/map.component.spec.ts b/src/app/pages/contact-us/contact-us.component.spec.ts similarity index 53% rename from src/app/pages/menu/menu-pages/map/map.component.spec.ts rename to src/app/pages/contact-us/contact-us.component.spec.ts index e07307f0..a7308cfc 100644 --- a/src/app/pages/menu/menu-pages/map/map.component.spec.ts +++ b/src/app/pages/contact-us/contact-us.component.spec.ts @@ -1,19 +1,17 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MapComponent } from './map.component'; +import { ContactUsComponent } from './contact-us.component'; -describe('MapComponent', () => { - let component: MapComponent; - let fixture: ComponentFixture; +describe('ContactUsComponent', () => { + let component: ContactUsComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [MapComponent] + imports: [ContactUsComponent] }).compileComponents(); - }); - beforeEach(() => { - fixture = TestBed.createComponent(MapComponent); + fixture = TestBed.createComponent(ContactUsComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/pages/contact-us/contact-us.component.ts b/src/app/pages/contact-us/contact-us.component.ts new file mode 100644 index 00000000..28849fba --- /dev/null +++ b/src/app/pages/contact-us/contact-us.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; + +import { BasicScreenComponent } from '@igo2/sdg'; + +import { AppService } from '../../app.service'; + +@Component({ + selector: 'app-contact-us', + standalone: true, + imports: [BasicScreenComponent], + templateUrl: './contact-us.component.html', + styleUrl: './contact-us.component.scss' +}) +export class ContactUsComponent { + get isHandset() { + return this.appService.isHandset; + } + + constructor(private appService: AppService) {} +} diff --git a/src/app/pages/footer/footer.component.html b/src/app/pages/footer/footer.component.html deleted file mode 100644 index 0b291d0d..00000000 --- a/src/app/pages/footer/footer.component.html +++ /dev/null @@ -1,34 +0,0 @@ - diff --git a/src/app/pages/footer/footer.component.scss b/src/app/pages/footer/footer.component.scss deleted file mode 100644 index 0cfbeae5..00000000 --- a/src/app/pages/footer/footer.component.scss +++ /dev/null @@ -1,54 +0,0 @@ -@import '../portal/portal.variables.scss'; - -:host { - .order2 { - order: 2; - margin-right: 0.5%; - margin-left: 140px; - display: flex; - justify-content: flex-end; - right: 0; - margin-left: 140px; - text-align: right !important; - width: 100%; - } - - .footer-right { - z-index: 666; - background: #ffffffa3; - font-size: 0.7rem; - align-items: center; - height: $footer-height; - display: flex; - margin-left: auto; - } - - span.footer-text { - color: #095797; - align-self: center; - margin-left: 0.5rem; - } - - span.footer-text a { - color: #095797; - text-decoration: none; - } - - ::ng-deep .map-hasFooter { - height: calc(100% - #{$footer-height}) !important; - } - - ::ng-deep .ol-scale-line-inner { - border: 1px solid black; - color: black; - border-top: none; - order: 1; - } - - ::ng-deep .ol-scale-line { - position: relative; - left: 0; - bottom: 0; - margin-left: 12px; - } -} diff --git a/src/app/pages/footer/footer.component.ts b/src/app/pages/footer/footer.component.ts deleted file mode 100644 index 704766d8..00000000 --- a/src/app/pages/footer/footer.component.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Component } from '@angular/core'; - -import { LanguageService } from '@igo2/core/language'; - -import { TranslateModule } from '@ngx-translate/core'; - -@Component({ - selector: 'app-footer', - templateUrl: './footer.component.html', - styleUrls: ['./footer.component.scss'], - standalone: true, - imports: [TranslateModule] -}) -export class FooterComponent { - constructor(protected languageService: LanguageService) {} -} diff --git a/src/app/pages/header/header.component.html b/src/app/pages/header/header.component.html deleted file mode 100644 index 0a59923d..00000000 --- a/src/app/pages/header/header.component.html +++ /dev/null @@ -1,40 +0,0 @@ -
- -
diff --git a/src/app/pages/header/header.component.scss b/src/app/pages/header/header.component.scss deleted file mode 100644 index d53a5150..00000000 --- a/src/app/pages/header/header.component.scss +++ /dev/null @@ -1,110 +0,0 @@ -@use '../../../theme/qcca'; -@import '../portal/portal.variables.scss'; - -:host { - ::ng-deep .portal-with-header { - height: calc(100% - $header-height-mobile) !important; - - @media screen and (min-width: 768px) { - height: calc(100% - $header-height) !important; - } - } - - header { - background-color: qcca.colors-get(blue, normal-piv); - - a, - p { - font-weight: normal; - color: #fff; - } - - a { - font-size: 14px; - text-decoration: none; - - &:focus, - &:hover, - &:visited { - text-decoration: underline; - color: #fff; - } - } - - @media (max-width: 575.98px) { - p { - margin-bottom: 12px; - } - } - } - - .zone-links { - @media (min-width: 768px) { - align-items: center; - } - - @media (max-width: 768px) { - align-items: center; - } - - ul { - text-align: left; - flex-wrap: wrap; - list-style: none; - padding: 0; - margin: 0; - - a { - &:hover, - &:focus { - text-decoration: underline; - cursor: pointer; - } - font-family: 'Roboto', sans-serif; - } - } - - @media screen and (min-width: 768px) { - .zone-links { - flex: 0 0 16.66667%; - max-width: 16.66667%; - } - } - } - - .zone-title { - @media (min-width: 768px) { - margin: 0 0 0 60px; - } - font-family: 'Roboto', sans-serif; - } - - ul li:last-child { - padding: 0; - } - - .logo { - height: 100%; - img { - width: 200px; - max-width: 20rem; - max-height: 7.2rem; - height: 72px; - - @media (max-width: 575.98px) { - max-width: min(100%, 20rem); - } - } - } - - #header-logo-print { - display: none; - } - - .buttonLanguage { - background: none; - border-style: none; - padding: 0; - color: unset; - } -} diff --git a/src/app/pages/header/header.component.ts b/src/app/pages/header/header.component.ts deleted file mode 100644 index 989f80fa..00000000 --- a/src/app/pages/header/header.component.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Component } from '@angular/core'; -import { RouterLink } from '@angular/router'; - -import { ConfigService } from '@igo2/core/config'; -import { LanguageService } from '@igo2/core/language'; - -import { TranslateModule } from '@ngx-translate/core'; - -@Component({ - selector: 'app-header', - templateUrl: './header.component.html', - styleUrls: ['./header.component.scss'], - standalone: true, - imports: [RouterLink, TranslateModule] -}) -export class HeaderComponent { - public headerLogo: string; - public headerLogoPrint: string; - - constructor( - private configService: ConfigService, - protected languageService: LanguageService - ) { - this.headerLogo = this.configService.getConfig('header.logo'); - this.headerLogoPrint = this.configService.getConfig('header.logoPrint'); - } - - // Future translation system - /*changeLanguage() { - if (this.languageService.getLanguage() === 'fr'){ - this.languageService.setLanguage('en'); - } else { - this.languageService.setLanguage('fr'); - } - }*/ -} diff --git a/src/app/pages/header/header.module.ts b/src/app/pages/header/header.module.ts deleted file mode 100644 index b78d0b1e..00000000 --- a/src/app/pages/header/header.module.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { MatToolbarModule } from '@angular/material/toolbar'; - -import { IgoLanguageModule } from '@igo2/core/language'; - -import { MenuRoutingModule } from '../menu/menu-routing/menu-routing.module'; -import { HeaderComponent } from './header.component'; - -@NgModule({ - imports: [ - CommonModule, - IgoLanguageModule, - MatToolbarModule, - MenuRoutingModule, - HeaderComponent - ], - exports: [HeaderComponent] -}) -export class HeaderModule {} diff --git a/src/app/pages/header/index.ts b/src/app/pages/header/index.ts deleted file mode 100644 index b9af6ea0..00000000 --- a/src/app/pages/header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './header.module'; diff --git a/src/app/pages/home/home.component.html b/src/app/pages/home/home.component.html new file mode 100644 index 00000000..f8782310 --- /dev/null +++ b/src/app/pages/home/home.component.html @@ -0,0 +1,28 @@ + +

+ Infrastructure géomatique ouverte 2.0 (IGO2) / Open GIS Infrastructure 2.0 +

+

Qu'est-ce qu'IGO?

+ +

+ IGO2 est une solution Web gratuite en géomatique basée sur Angular - + Material, OpenLayers et IGO2lib. IGO2 permet de tirer profit d’une multitude + de données géographiques grâce à une interface cartographique accessible par + un navigateur Web sur un poste de travail et par un appareil mobile. IGO2 a + été initié par l'administration publique du Québec (Canada) et issu d’un + travail collaboratif basé sur la philosophie des logiciels libres et ouverts + (« open source »). Les membres du public en géomatique et du Web qui + soumettent des contributions conservent leurs droits d'auteur s'ils + partagent leur code source selon la LICENCE LiLiQ-R de type LGPL. +

+

+ Téléchargement et code source : + https://github.com/infra-geo-ouverte/igo2 +

+
diff --git a/src/app/pages/menu/menu-pages/home/home.component.spec.ts b/src/app/pages/home/home.component.spec.ts similarity index 100% rename from src/app/pages/menu/menu-pages/home/home.component.spec.ts rename to src/app/pages/home/home.component.spec.ts diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts new file mode 100644 index 00000000..ce32c195 --- /dev/null +++ b/src/app/pages/home/home.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; + +import { BasicScreenComponent } from '@igo2/sdg'; + +import { AppService } from '../../app.service'; + +@Component({ + selector: 'app-home-page', + templateUrl: './home.component.html', + standalone: true, + imports: [BasicScreenComponent, MatButtonModule] +}) +export class HomeComponent { + get isHandset() { + return this.appService.isHandset; + } + + constructor(private appService: AppService) {} +} diff --git a/src/app/pages/index.ts b/src/app/pages/index.ts deleted file mode 100644 index b6b63773..00000000 --- a/src/app/pages/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './portal'; -export * from './header'; - -export * from './menu'; diff --git a/src/app/pages/map/map.component.html b/src/app/pages/map/map.component.html new file mode 100644 index 00000000..942a1969 --- /dev/null +++ b/src/app/pages/map/map.component.html @@ -0,0 +1 @@ + diff --git a/src/app/pages/map/map.component.scss b/src/app/pages/map/map.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/pages/map/map.component.ts b/src/app/pages/map/map.component.ts new file mode 100644 index 00000000..59036ff1 --- /dev/null +++ b/src/app/pages/map/map.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; + +import { MapScreenComponent } from '@igo2/sdg/geo'; + +import { AppService } from '../../app.service'; + +@Component({ + selector: 'app-map-page', + templateUrl: './map.component.html', + styleUrls: ['./map.component.scss'], + standalone: true, + imports: [MapScreenComponent] +}) +export class MapComponent { + get isHandset() { + return this.appService.isHandset; + } + + constructor(private appService: AppService) {} +} diff --git a/src/app/pages/menu/index.ts b/src/app/pages/menu/index.ts deleted file mode 100644 index 25e8cd6c..00000000 --- a/src/app/pages/menu/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './menu-routing'; -export * from './menu.module'; diff --git a/src/app/pages/menu/menu-pages/about/about.component.html b/src/app/pages/menu/menu-pages/about/about.component.html deleted file mode 100644 index 8d15297c..00000000 --- a/src/app/pages/menu/menu-pages/about/about.component.html +++ /dev/null @@ -1,97 +0,0 @@ -
-
-
-

En savoir plus

-

Notre Mission

- -

Mission 1

-

- Paragraphe : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Tu - enim ista lenius, hic Stoicorum more nos vexat. Quo studio Aristophanem - putamus aetatem in litteris duxisse? Honesta oratio, Socratica, Platonis - etiam. Vitiosum est enim in dividendo partem in genere numerare. - Non est igitur voluptas bonum. Duo Reges: constructio interrete. - Non autem hoc: igitur ne illud quidem. Magna laus. - Quis istum dolorem timet? Quod autem satis est, eo quicquid - accessit, nimium est; Sed ille, ut dixi, vitiose. -

- -

- Cur tantas regiones barbarorum pedibus obiit, tot maria transmisit? - Nulla erit controversia. - Prave, nequiter, turpiter cenabat; - Multoque hoc melius nos veriusque quam Stoici. Contineo me - ab exemplis. Sed nimis multa. - Nos vero, inquit ille; - Occultum facinus esse potuerit, gaudebit; -

- -
    -
  • - Iam doloris medicamenta illa Epicurea tamquam de narthecio proment: Si - gravis, brevis; -
  • -
  • - Ergo et avarus erit, sed finite, et adulter, verum habebit modum, et - luxuriosus eodem modo. -
  • -
  • Sedulo, inquam, faciam.
  • -
  • - Quid enim tanto opus est instrumento in optimis artibus comparandis? -
  • -
  • - Sic, et quidem diligentius saepiusque ista loquemur inter nos - agemusque communiter. -
  • -
- -

- Bold Inde igitur, inquit, ordiendum est. Quis hoc dicit? - Quamquam te quidem video minime esse deterritum. - Bonum incolumis acies: misera caecitas. Indicant pueri, in quibus - ut in speculis natura cernitur. Duae sunt enim res quoque, ne tu verba - solum putes. - Est enim effectrix multarum et magnarum voluptatum. -

- -
-        Pre Corporis igitur nostri partes totaque figura et forma et
-        statura quam apta ad naturam sit, apparet, neque est dubium,
-        quin frons, oculi, aures et reliquae partes quales propriae
-        sint hominis intellegatur.
-
-        Pungunt quasi aculeis interrogatiunculis angustis, quibus
-        etiam qui assentiuntur nihil commutantur animo et idem
-        abeunt, qui venerant.
-      
- -
    -
  1. - Atqui perspicuum est hominem e corpore animoque constare, cum primae - sint animi partes, secundae corporis. -
  2. -
  3. - Nonne videmus quanta perturbatio rerum omnium consequatur, quanta - confusio? -
  4. -
- -
-
Stoicos roga.
-
- Quid enim de amicitia statueris utilitatis causa expetenda vides. -
-
Qui convenit?
-
Que Manilium, ab iisque M.
-
Paria sunt igitur.
-
- Quamquam ab iis philosophiam et omnes ingenuas disciplinas habemus; -
-
Confecta res esset.
-
Cupiditates non Epicuri divisione finiebat, sed sua satietate.
-
-
-
-
diff --git a/src/app/pages/menu/menu-pages/about/about.component.ts b/src/app/pages/menu/menu-pages/about/about.component.ts deleted file mode 100644 index c70c295f..00000000 --- a/src/app/pages/menu/menu-pages/about/about.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-about', - templateUrl: './about.component.html', - standalone: true -}) -export class AboutComponent { - constructor() {} -} diff --git a/src/app/pages/menu/menu-pages/home/home.component.html b/src/app/pages/menu/menu-pages/home/home.component.html deleted file mode 100644 index 0417803b..00000000 --- a/src/app/pages/menu/menu-pages/home/home.component.html +++ /dev/null @@ -1,34 +0,0 @@ -
-
-
-

Accueil

-

- Infrastructure géomatique ouverte 2.0 (IGO2) / Open GIS Infrastructure - 2.0 -

-

Qu'est-ce qu'IGO?

-

- IGO2 est une solution Web gratuite en géomatique basée sur Angular - - Material, OpenLayers et IGO2lib. IGO2 permet de tirer profit d’une - multitude de données géographiques grâce à une interface cartographique - accessible par un navigateur Web sur un poste de travail et par un - appareil mobile. IGO2 a été initié par l'administration publique du - Québec (Canada) et issu d’un travail collaboratif basé sur la - philosophie des logiciels libres et ouverts (« open source »). Les - membres du public en géomatique et du Web qui soumettent des - contributions conservent leurs droits d'auteur s'ils partagent leur code - source selon la LICENCE LiLiQ-R de type LGPL. -

-

- Téléchargement et code source : - https://github.com/infra-geo-ouverte/igo2 -

-
-
-
diff --git a/src/app/pages/menu/menu-pages/home/home.component.ts b/src/app/pages/menu/menu-pages/home/home.component.ts deleted file mode 100644 index 8a6d56d6..00000000 --- a/src/app/pages/menu/menu-pages/home/home.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-menu-home', - templateUrl: './home.component.html', - styles: [ - ` - .linkExtImg { - max-height: 11px; - max-width: 11px; - margin-bottom: 0.16rem; - float: left; - display: inline; - text-align: left; - } - ` - ], - standalone: true -}) -export class HomeComponent { - getHomeComponent: any; - - constructor() {} -} diff --git a/src/app/pages/menu/menu-pages/map/map.component.html b/src/app/pages/menu/menu-pages/map/map.component.html deleted file mode 100644 index 1ba90ab1..00000000 --- a/src/app/pages/menu/menu-pages/map/map.component.html +++ /dev/null @@ -1,4 +0,0 @@ - - diff --git a/src/app/pages/menu/menu-pages/map/map.component.scss b/src/app/pages/menu/menu-pages/map/map.component.scss deleted file mode 100644 index a26173f7..00000000 --- a/src/app/pages/menu/menu-pages/map/map.component.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import '../../../portal/portal.variables.scss'; - -:host { - width: 100%; - height: 100%; -} diff --git a/src/app/pages/menu/menu-pages/map/map.component.ts b/src/app/pages/menu/menu-pages/map/map.component.ts deleted file mode 100644 index e77063ee..00000000 --- a/src/app/pages/menu/menu-pages/map/map.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { NgClass } from '@angular/common'; -import { Component } from '@angular/core'; - -import { ConfigService } from '@igo2/core/config'; - -import { PortalComponent } from '../../../portal/portal.component'; - -@Component({ - selector: 'app-map', - templateUrl: './map.component.html', - styleUrls: ['./map.component.scss'], - standalone: true, - imports: [PortalComponent, NgClass] -}) -export class MapComponent { - public hasHeader = true; - - constructor(private configService: ConfigService) { - this.hasHeader = - this.configService.getConfig('header.hasHeader') === undefined - ? false - : this.configService.getConfig('header.hasHeader'); - } -} diff --git a/src/app/pages/menu/menu-pages/map/map.module.ts b/src/app/pages/menu/menu-pages/map/map.module.ts deleted file mode 100644 index 10513447..00000000 --- a/src/app/pages/menu/menu-pages/map/map.module.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; - -import { IgoLanguageModule } from '@igo2/core/language'; - -import { MapComponent } from './map.component'; - -@NgModule({ - declarations: [MapComponent], - imports: [CommonModule, IgoLanguageModule], - exports: [MapComponent] -}) -export class MapModule {} diff --git a/src/app/pages/menu/menu-pages/map/map.variables.scss b/src/app/pages/menu/menu-pages/map/map.variables.scss deleted file mode 100644 index 99ce134f..00000000 --- a/src/app/pages/menu/menu-pages/map/map.variables.scss +++ /dev/null @@ -1,58 +0,0 @@ -@use 'variables'; -@import '~@igo2/core/partial/media'; - -$app-map-footer-height: 48px; -$app-map-mobile-min-space-right: 40px; - -$app-map-expansion-panel-collapsed-height: 40px; -$app-map-expansion-panel-collapsed-width: 40px; -$app-map-expansion-panel-height: 281px; -$app-map-expansion-panel-height-maximized: 496px; -$app-map-expansion-panel-header-height: calc( - #{$app-map-expansion-panel-collapsed-height} + 10px -); - -$app-map-toast-panel-collapsed-height: 46px; -$app-map-toast-panel-collapsed-height-mobile: 35px; -// $app-map-toast-panel-max-height: 281px; -// $app-map-full-toast-panel-max-height: 800px; -// $app-map-full-toast-panel-max-width: 750px; -// $app-map-toast-panel-width: 30%; -$app-map-toast-panel-width-tablet: 500px; - -$app-map-toast-panel-width: 42vw; -$app-map-toast-panel-max-width: 600px; -$app-map-toast-panel-height: 30vh; -$app-map-toast-panel-max-height: 30vh; -$app-map-toast-panel-height-mobile: 34vh; - -$app-map-full-toast-panel-width: 45vw; -$app-map-full-toast-panel-max-height: 65vh; -$app-map-full-toast-panel-height-mobile: 55vh; - -$app-map-toast-panel-html-width: 60vw; -$app-map-toast-panel-html-height: 32vh; - -$app-map-toast-panel-html-large-height: 55vh; - -$app-map-sidenav-margin-top: 50px; -$app-map-sidenav-height: calc(100% - #{$app-map-sidenav-margin-top}); -$app-map-sidenav-width: 400px; -$app-map-sidenav-width-mobile: calc( - 100% - #{$app-map-mobile-min-space-right} - #{variables.$igo-margin} -); - -//$search-bar-left: $igo-icon-size + variables.$igo-margin; -$search-bar-left: variables.$igo-margin; -$search-bar-width: calc( - #{$app-map-sidenav-width} - #{$search-bar-left} - - (2 * #{variables.$igo-margin}) -); -$search-bar-width-mobile: calc( - 100% - #{$app-map-mobile-min-space-right} - #{$search-bar-left} - - (3 * #{variables.$igo-margin}) -); - -$app-map-footer-height: 49px; - -$igo-icon-size: 40px; diff --git a/src/app/pages/menu/menu-routing/index.ts b/src/app/pages/menu/menu-routing/index.ts deleted file mode 100644 index 53ceab61..00000000 --- a/src/app/pages/menu/menu-routing/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './menu-routing.module'; diff --git a/src/app/pages/menu/menu-routing/menu-routing.module.ts b/src/app/pages/menu/menu-routing/menu-routing.module.ts deleted file mode 100644 index fc21417f..00000000 --- a/src/app/pages/menu/menu-routing/menu-routing.module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; - -import { AboutComponent } from '../menu-pages/about/about.component'; -import { HomeComponent } from '../menu-pages/home/home.component'; -import { MapComponent } from '../menu-pages/map/map.component'; - -const routes: Routes = [ - { path: '', component: HomeComponent }, - { path: 'carte', component: MapComponent }, - { path: 'en-savoir-plus', component: AboutComponent } -]; - -@NgModule({ - imports: [ - RouterModule.forRoot(routes, { - onSameUrlNavigation: 'reload' - }) - ], - exports: [RouterModule] -}) -export class MenuRoutingModule {} diff --git a/src/app/pages/menu/menu.component.html b/src/app/pages/menu/menu.component.html deleted file mode 100644 index 910ffeb5..00000000 --- a/src/app/pages/menu/menu.component.html +++ /dev/null @@ -1,43 +0,0 @@ -
-
-
-
- -
-
-
-
- diff --git a/src/app/pages/menu/menu.component.scss b/src/app/pages/menu/menu.component.scss deleted file mode 100644 index a4095515..00000000 --- a/src/app/pages/menu/menu.component.scss +++ /dev/null @@ -1,140 +0,0 @@ -@use 'sass:map'; -@use '../../../theme/qcca'; -@import '../portal/portal.variables.scss'; - -:host { - ::ng-deep { - .navbar { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - padding: 0; - - ::-webkit-scrollbar { - display: none; - } - - @media (min-width: 768px) { - a:focus, - a.active { - padding-bottom: calc(1rem - 4px) !important; - } - } - } - - .navbar-nav { - padding-bottom: 0; - } - - .nav-item { - margin-bottom: 0; - line-height: initial; - margin-right: 0.4rem; - } - - .nav-link { - display: block; - text-decoration: none; - color: qcca.$light-primary-text; - letter-spacing: 0; - font-size: 18px; - line-height: 28px; - - &.active { - color: qcca.$light-primary-text !important; - font-weight: bold; - display: inline-block; - margin: 0; - border-bottom: 4px solid rgba(255, 255, 255, 0.5); - padding-bottom: 12px; - } - - @media (max-width: 576px) { - font-size: 14px; - line-height: 20px; - padding: 0 8px 8px 8px !important; - } - } - - .nav-arrow { - z-index: 500; - position: absolute; - transition: opacity 0.5s ease; - // height: 48px; - // width: 60px; - color: qcca.$accent; - - &__right-button { - @media (max-width: 575.98px) { - right: 0; - margin-right: -16px; - background: linear-gradient( - to right, - rgba(255, 255, 255, 0) 0%, - qcca.$blue-dark 55%, - qcca.$blue-dark 100% - ); - } - } - // background-color: map.get(qcca.$palette, 900); - - &__left-button { - @media (max-width: 575.98px) { - left: 0; - margin-left: -16px; - background: linear-gradient( - to left, - rgba(255, 255, 255, 0) 0%, - qcca.$blue-dark 55%, - qcca.$blue-dark 100% - ); - } - } - - @media (max-width: 575.98px) { - align-items: center; - opacity: 1; - bottom: 0; - padding: 0; - pointer-events: auto; - } - } - } - - .headline { - background-color: qcca.colors-get(blue, dark); - padding: 0; - - .row { - min-height: 72px; - } - } - - div.slick-track { - overflow-x: auto; - white-space: nowrap; - display: flex; - } - - .right { - right: 0; - padding: 5px 5px 5px 15px !important; - } - - .left { - left: 0; - padding: 5px 15px 5px 5px !important; - } - - @media (min-width: 400px) { - .nav-arrow { - display: none; - } - - .main-nav { - width: 98%; - } - } -} diff --git a/src/app/pages/menu/menu.component.ts b/src/app/pages/menu/menu.component.ts deleted file mode 100644 index e2813a47..00000000 --- a/src/app/pages/menu/menu.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component } from '@angular/core'; -import { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router'; - -@Component({ - selector: 'app-menu', - templateUrl: './menu.component.html', - styleUrls: ['./menu.component.scss'], - standalone: true, - imports: [RouterLink, RouterLinkActive, RouterOutlet] -}) -export class MenuComponent { - public color = 'accent'; - - constructor() {} -} diff --git a/src/app/pages/menu/menu.module.ts b/src/app/pages/menu/menu.module.ts deleted file mode 100644 index e88c4c8f..00000000 --- a/src/app/pages/menu/menu.module.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { MatToolbarModule } from '@angular/material/toolbar'; - -import { PortalModule } from '../portal'; -import { AboutComponent } from './menu-pages/about/about.component'; -import { HomeComponent } from './menu-pages/home/home.component'; -import { MapComponent } from './menu-pages/map/map.component'; -import { MenuRoutingModule } from './menu-routing/menu-routing.module'; -import { MenuComponent } from './menu.component'; - -@NgModule({ - imports: [ - CommonModule, - MatButtonModule, - MatIconModule, - MenuRoutingModule, - PortalModule, - MatToolbarModule, - MenuComponent, - HomeComponent, - AboutComponent, - MapComponent - ], - exports: [MenuComponent, MenuRoutingModule] -}) -export class MenuModule {} diff --git a/src/app/pages/portal/filter-button/filter-button.component.html b/src/app/pages/portal/filter-button/filter-button.component.html deleted file mode 100644 index 79b26d6d..00000000 --- a/src/app/pages/portal/filter-button/filter-button.component.html +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/src/app/pages/portal/filter-button/filter-button.component.scss b/src/app/pages/portal/filter-button/filter-button.component.scss deleted file mode 100644 index d8ceec33..00000000 --- a/src/app/pages/portal/filter-button/filter-button.component.scss +++ /dev/null @@ -1,7 +0,0 @@ -:host { - #filter-button { - border-radius: 0 !important; - color: #095797 !important; - border-color: #095797 !important; - } -} diff --git a/src/app/pages/portal/filter-button/filter-button.component.ts b/src/app/pages/portal/filter-button/filter-button.component.ts deleted file mode 100644 index 862068dd..00000000 --- a/src/app/pages/portal/filter-button/filter-button.component.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { AsyncPipe } from '@angular/common'; -import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { MatButton } from '@angular/material/button'; -import { MatTooltip } from '@angular/material/tooltip'; - -import { TranslateModule } from '@ngx-translate/core'; - -import { PanelsHandlerState } from '../panels/panels-handler/panels-handler.state'; - -@Component({ - selector: 'app-filter-button', - templateUrl: './filter-button.component.html', - styleUrls: ['./filter-button.component.scss'], - standalone: true, - imports: [MatButton, MatTooltip, TranslateModule, AsyncPipe] -}) -export class FilterButtonComponent { - @Input() tooltipDisabled: boolean; - @Output() filterToggled = new EventEmitter(); - - public dialogRef = null; - public legendButtonTooltip: unknown; - - constructor(public panelsHandlerState: PanelsHandlerState) {} - - toggleFilter(): void { - this.panelsHandlerState.shownComponent$; - this.filterToggled.emit(); - } -} diff --git a/src/app/pages/portal/index.ts b/src/app/pages/portal/index.ts deleted file mode 100644 index 10671445..00000000 --- a/src/app/pages/portal/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './portal.module'; diff --git a/src/app/pages/portal/legend-button/legend-button.component.html b/src/app/pages/portal/legend-button/legend-button.component.html deleted file mode 100644 index 84d9f7a9..00000000 --- a/src/app/pages/portal/legend-button/legend-button.component.html +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/src/app/pages/portal/legend-button/legend-button.component.scss b/src/app/pages/portal/legend-button/legend-button.component.scss deleted file mode 100644 index cb762578..00000000 --- a/src/app/pages/portal/legend-button/legend-button.component.scss +++ /dev/null @@ -1,7 +0,0 @@ -:host { - #legend-button { - border-radius: 0 !important; - color: #095797 !important; - border-color: #095797 !important; - } -} diff --git a/src/app/pages/portal/legend-button/legend-button.component.ts b/src/app/pages/portal/legend-button/legend-button.component.ts deleted file mode 100644 index 65e79d86..00000000 --- a/src/app/pages/portal/legend-button/legend-button.component.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; -import { MatButton } from '@angular/material/button'; -import { MatDialog } from '@angular/material/dialog'; -import { MatTooltip } from '@angular/material/tooltip'; - -import { LanguageService } from '@igo2/core/language'; - -import { TranslateModule } from '@ngx-translate/core'; - -import { LegendDialogComponent } from '../legend-dialog/legend-dialog.component'; - -@Component({ - selector: 'app-legend-button', - templateUrl: './legend-button.component.html', - styleUrls: ['./legend-button.component.scss'], - standalone: true, - imports: [MatButton, MatTooltip, TranslateModule] -}) -export class LegendButtonComponent implements OnInit { - @Output() legendToggled = new EventEmitter(); - @Input() tooltipDisabled: boolean; - @Input() legendInPanel: boolean; - @Input() mobile: boolean; - - public dialogRef = null; - public legendButtonTooltip: unknown; - - constructor( - public dialog: MatDialog, - protected languageService: LanguageService - ) {} - - ngOnInit() { - this.legendButtonTooltip = - this.languageService.translate.instant('legend.open'); - } - - toggleLegend(): void { - if (!this.legendInPanel && !this.mobile) { - const dialogOpened = this.dialog.getDialogById('legend-dialog-container'); - if (!dialogOpened) { - this.legendButtonTooltip = - this.languageService.translate.instant('legend.close'); - this.dialogRef = this.dialog.open(LegendDialogComponent, { - id: 'legend-dialog-container', - hasBackdrop: false, - closeOnNavigation: true - }); - } else { - this.legendButtonTooltip = - this.languageService.translate.instant('legend.open'); - this.dialogRef.close(); - } - } - this.legendToggled.emit(); - } -} diff --git a/src/app/pages/portal/legend-dialog/legend-dialog.component.html b/src/app/pages/portal/legend-dialog/legend-dialog.component.html deleted file mode 100644 index e7ab3c27..00000000 --- a/src/app/pages/portal/legend-dialog/legend-dialog.component.html +++ /dev/null @@ -1,17 +0,0 @@ -
-

{{ 'legend.title' | translate }}

-
- -
-
- - - diff --git a/src/app/pages/portal/legend-dialog/legend-dialog.component.scss b/src/app/pages/portal/legend-dialog/legend-dialog.component.scss deleted file mode 100644 index 64d5f976..00000000 --- a/src/app/pages/portal/legend-dialog/legend-dialog.component.scss +++ /dev/null @@ -1,113 +0,0 @@ -@import '../portal.variables.scss'; - -:host { - ::ng-deep #legend-dialog-container { - width: fit-content !important; - z-index: 10; - position: fixed; - right: 0.5%; - max-width: 99% !important; - padding: 16px !important; - max-height: calc( - 100% - #{$header-height-mobile} - #{$footer-height} - 100px - ) !important; - overflow: hidden; - display: flex; - flex-direction: column; - height: 100%; - border-radius: 0; - height: fit-content; - - igo-layer-legend-list { - max-height: inherit; - .layer-legend-list-container { - overflow-y: auto; - height: inherit; - max-height: inherit; - } - } - - igo-layer-legend-item { - flex-wrap: wrap; - width: min-content; - display: flex; - flex-direction: column; - margin-bottom: 16px; - } - - igo-layer-legend-item:last-child { - margin-bottom: 0; - } - - .igo-layer-legend-container { - padding-left: 0 !important; - width: max-content !important; - } - } - - ::ng-deep app-legend-dialog { - max-height: calc(100% - 24px) !important; - height: inherit; - - .mat-mdc-dialog-title { - margin: 0; - display: block; - } - - .mat-mdc-dialog-title:after { - content: ''; - display: block; - width: 2.8rem; - border-bottom: 4px solid #f09686; - margin-bottom: 0.8rem; - } - - .mat-mdc-list-item:after { - content: ''; - display: block; - width: 1.8rem; - border-bottom: 3px solid #dae6f0; - margin-bottom: 0.4rem; - padding-top: 2px; - } - - .igo-layer-list-item { - height: fit-content !important; - } - } - - // CLOSE BUTTON - - ::ng-deep app-legend-dialog { - .mat-icon, - mat-button-wrapper, - .mat-mdc-icon-button .mat-icon, - .mat-icon-button { - line-height: 26px; - height: 24px; - width: 24px; - } - .mat-icon svg { - height: 20px; - width: 20px; - } - div.mat-mdc-dialog-content.legend > img { - max-height: 100%; - max-width: 100%; - } - div.mat-mdc-dialog-actions { - float: right; - padding: 0; - min-height: auto; - } - } - - .title-close { - h4 { - margin-top: 8px !important; - } - display: flex; - align-items: center; - justify-content: space-between; - } -} diff --git a/src/app/pages/portal/legend-dialog/legend-dialog.component.ts b/src/app/pages/portal/legend-dialog/legend-dialog.component.ts deleted file mode 100644 index 5732ebdf..00000000 --- a/src/app/pages/portal/legend-dialog/legend-dialog.component.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { MatIconButton } from '@angular/material/button'; -import { - MatDialogActions, - MatDialogClose, - MatDialogState, - MatDialogTitle -} from '@angular/material/dialog'; -import { MatIcon } from '@angular/material/icon'; - -import { IgoMap, Layer, LayerLegendListComponent } from '@igo2/geo'; -import { MapState } from '@igo2/integration'; - -import { TranslateModule } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; - -@Component({ - selector: 'app-legend-dialog', - templateUrl: 'legend-dialog.component.html', - styleUrls: ['./legend-dialog.component.scss'], - standalone: true, - imports: [ - MatDialogTitle, - MatDialogActions, - MatIconButton, - MatDialogClose, - MatIcon, - LayerLegendListComponent, - TranslateModule - ] -}) -export class LegendDialogComponent implements OnInit { - public getState: MatDialogState; - - get map(): IgoMap { - return this.mapState.map; - } - - get layers$(): Observable { - return this.map.layers$; - } - - public mapLayersShownInLegend: Layer[]; - - constructor(private mapState: MapState) {} - - ngOnInit() { - this.mapLayersShownInLegend = this.map.layers.filter( - (layer) => layer.showInLayerList !== false - ); - } -} diff --git a/src/app/pages/portal/map-overlay/index.ts b/src/app/pages/portal/map-overlay/index.ts deleted file mode 100644 index 812a54bb..00000000 --- a/src/app/pages/portal/map-overlay/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './map-overlay.interface'; diff --git a/src/app/pages/portal/map-overlay/map-overlay.component.html b/src/app/pages/portal/map-overlay/map-overlay.component.html deleted file mode 100644 index c6a21390..00000000 --- a/src/app/pages/portal/map-overlay/map-overlay.component.html +++ /dev/null @@ -1,33 +0,0 @@ -@for (element of mapOverlay; track element; let i = $index) { -
- @if (element.link) { - - {{ element.text }} - @if (element.imgSrc) { - - } - - } @else { - {{ element.text }} - @if (element.imgSrc) { - - } - } -
-} diff --git a/src/app/pages/portal/map-overlay/map-overlay.component.scss b/src/app/pages/portal/map-overlay/map-overlay.component.scss deleted file mode 100644 index ee8455bb..00000000 --- a/src/app/pages/portal/map-overlay/map-overlay.component.scss +++ /dev/null @@ -1,62 +0,0 @@ -:host { - height: 100%; - top: 0; - left: 0; - right: 0; - position: fixed; - pointer-events: none; -} - -.mapOverlayDefault { - position: absolute; - white-space: nowrap; - pointer-events: auto; -} - -.bottom-right { - bottom: 0; - right: 0; -} - -.top-right { - top: 0; - right: 0; -} - -.bottom-left { - bottom: 0; - left: 0; -} - -.top-left { - top: 0; - left: 0; -} - -.bottom-center { - bottom: 0; - left: 50%; - transform: translate(-50%, 0); -} - -.top-center { - top: 0; - left: 50%; - transform: translate(-50%, 0); -} - -.center-center { - top: 50%; - left: 50%; - transform: translate(-50%, 0); -} - -.center-right { - top: 50%; - right: 0; -} - -.center-left { - top: 50%; - left: 0; -} diff --git a/src/app/pages/portal/map-overlay/map-overlay.component.ts b/src/app/pages/portal/map-overlay/map-overlay.component.ts deleted file mode 100644 index a4d5634d..00000000 --- a/src/app/pages/portal/map-overlay/map-overlay.component.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { NgClass, NgFor, NgIf, NgStyle } from '@angular/common'; -import { AfterViewInit, Component, OnDestroy } from '@angular/core'; - -import { Context, ContextService } from '@igo2/context'; -import { ConfigService } from '@igo2/core/config'; -import { MediaService } from '@igo2/core/media'; - -import { Subscription } from 'rxjs'; - -import { MapOverlay } from './map-overlay.interface'; - -@Component({ - selector: 'app-map-overlay', - templateUrl: './map-overlay.component.html', - styleUrls: ['./map-overlay.component.scss'], - standalone: true, - imports: [NgFor, NgClass, NgIf, NgStyle] -}) -export class MapOverlayComponent implements AfterViewInit, OnDestroy { - public mapOverlay: MapOverlay[] = []; - private context$$: Subscription; - private media$$: Subscription; - private context: Context; - - constructor( - private contextService: ContextService, - private mediaService: MediaService, - private configService: ConfigService - ) {} - - ngAfterViewInit() { - this.context$$ = this.contextService.context$.subscribe((context) => { - this.handleContextChange(context); - this.context = context; - }); - this.media$$ = this.mediaService.media$.subscribe((media) => - this.handleContextChange(this.context) - ); - } - - ngOnDestroy() { - this.context$$.unsubscribe(); - this.media$$.unsubscribe(); - } - - private handleContextChange(context: Context) { - let mapOverlay: MapOverlay[] = []; - if (context !== undefined) { - this.mapOverlay = []; - - if (context['mapOverlay']) { - mapOverlay = context['mapOverlay']; - } else { - mapOverlay = this.configService.getConfig('mapOverlay', []); - } - for (const overlay of mapOverlay) { - // If no media define use default to desktop, display only if current media is on context definition - if ( - (!overlay.media && this.mediaService.getMedia() === 'desktop') || - (overlay.media && - overlay.media.includes(this.mediaService.getMedia())) - ) { - this.mapOverlay.push(overlay); - } - } - } - } -} diff --git a/src/app/pages/portal/map-overlay/map-overlay.enum.ts b/src/app/pages/portal/map-overlay/map-overlay.enum.ts deleted file mode 100644 index db110e92..00000000 --- a/src/app/pages/portal/map-overlay/map-overlay.enum.ts +++ /dev/null @@ -1,11 +0,0 @@ -export enum MapOverlayCssClass { - TopLeft = 'top-left', - CenterLeft = 'center-left', - BottomLeft = 'bottom-left', - TopCenter = 'top-center', - CenterCenter = 'center-center', - BottomCenter = 'bottom-center', - TopRight = 'top-right', - CenterRight = 'center-right', - BottoMRight = 'bottom-right' -} diff --git a/src/app/pages/portal/map-overlay/map-overlay.interface.ts b/src/app/pages/portal/map-overlay/map-overlay.interface.ts deleted file mode 100644 index 10f800a5..00000000 --- a/src/app/pages/portal/map-overlay/map-overlay.interface.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Media } from '@igo2/core/media'; - -import { MapOverlayCssClass } from './map-overlay.enum'; - -export interface MapOverlay { - /** - * Media device to display the mapOverlay - * Desktop is the default value. - */ - media: Array; - /** - * Css class to define position of the element - */ - cssClass: MapOverlayCssClass; - fixed?: boolean; // Is element is fixed, won't be affect by animation, default to false - link?: string; // Link to open when element is clicked - imgSrc?: string; // source of the image to show - imgSize?: string; // Size of the image - text?: string; // text to show before image - fontSize?: string; // Font size to display text - alt?: string; // alternate text for an image if the image cannot be displayed - marginLeft?: string; // Margin to add to the left of the element - marginRight?: string; // Margin to add to the right of the element - marginTop?: string; // Margin to add to the top of the element - marginBottom?: string; // Margin to add to the bottom of the element -} diff --git a/src/app/pages/portal/panels/feature/feature-custom-details/feature-custom-details.component.html b/src/app/pages/portal/panels/feature/feature-custom-details/feature-custom-details.component.html deleted file mode 100644 index 551488fe..00000000 --- a/src/app/pages/portal/panels/feature/feature-custom-details/feature-custom-details.component.html +++ /dev/null @@ -1,132 +0,0 @@ -@if (ready && feature && feature.properties) { -
- Custom feature details template - - - - @for ( - property of filterFeatureProperties(feature) | keyvalue; - track property - ) { -
-
- @if ( - feature.properties.target === '_blank' && property.key === 'url' - ) { -
- -
- } - @if ( - feature.properties.target === '_blank' && property.key === 'url' - ) { - - } - @if (feature.properties.target === undefined) { -
- {{ property.key }} -
- } - @if ( - feature.properties.target === undefined && - !isObject(property.value) && - !isUrl(property.value) && - !isEmbeddedLink(property.value) - ) { -
- } - @if ( - feature.properties.target === undefined && - isEmbeddedLink(property.value) - ) { -
- {{ getEmbeddedLinkText(property.value) }} -
- } - @if ( - feature.properties.target === undefined && - !isObject(property.value) && - (isDoc(property.value) || isUrl(property.value)) && - !isImg(property.value) - ) { -
- {{ 'igo.geo.targetHtmlUrl' | translate }} - -
- } - @if ( - feature.properties.target === undefined && - !isObject(property.value) && - isUrl(property.value) && - isImg(property.value) - ) { -
- - - -
- } - @if ( - feature.properties.target === undefined && isObject(property.value) - ) { -
- } -
-
- } -
-} diff --git a/src/app/pages/portal/panels/feature/feature-custom-details/feature-custom-details.component.scss b/src/app/pages/portal/panels/feature/feature-custom-details/feature-custom-details.component.scss deleted file mode 100644 index 4d31feb3..00000000 --- a/src/app/pages/portal/panels/feature/feature-custom-details/feature-custom-details.component.scss +++ /dev/null @@ -1,92 +0,0 @@ -@import '@igo2/core/partial/core.variables'; - -div { - box-sizing: border-box; -} - -.table-container { - display: block; - margin: 2em auto; - width: 100%; -} - -.table-row { - display: flex; - flex-flow: row nowrap; - border-bottom: 1px solid #dae6f0; -} - -.table-row:hover { - cursor: pointer; - background-color: #dae6f0; -} - -.table-row .key { - width: 38%; - font: - bold 16px/24px 'Open Sans', - sans-serif; - color: #223654; - margin-top: 4px; - margin-bottom: 4px; - text-align: left; -} - -.table-row .value { - width: 62%; - font: - normal 16px/24px 'Open Sans', - sans-serif; - color: #223654; - text-align: left; - margin-top: 4px; - margin-bottom: 8px; -} - -.flex-row { - text-align: center; - padding: 0.5em; -} - -.info { - vertical-align: bottom; - transform: scale(0.9); -} - -.link:hover { - color: #3374cc; -} - -::ng-deep .tooltip-right, -::ng-deep .tooltip-above { - position: relative !important; - top: 30%; - z-index: 5000 !important; - background-color: white !important; - color: #223654 !important; - margin: 0 8px !important; - padding: 8px 12px !important; - font-size: 14px !important; - line-height: 24px !important; - border: 1px solid #c5cad2; - border-radius: 0 !important; - overflow: visible !important; - box-shadow: 0px 1px 7px #22365450 !important; - white-space: pre-line; -} - -::ng-deep .tooltip-right::after { - content: '' !important; - position: absolute !important; - top: 18% !important; - right: 100% !important; - margin-top: -5px !important; - border-width: 10px !important; - border-style: solid !important; - border-color: transparent transparent transparent white !important; - transform: rotate(180deg); -} - -::ng-deep .tooltip-above::after { - display: none; -} diff --git a/src/app/pages/portal/panels/feature/feature-custom-details/feature-custom-details.component.ts b/src/app/pages/portal/panels/feature/feature-custom-details/feature-custom-details.component.ts deleted file mode 100644 index da5c2201..00000000 --- a/src/app/pages/portal/panels/feature/feature-custom-details/feature-custom-details.component.ts +++ /dev/null @@ -1,278 +0,0 @@ -import { AsyncPipe, JsonPipe, KeyValuePipe, NgStyle } from '@angular/common'; -import { HttpClient } from '@angular/common/http'; -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - EventEmitter, - Input, - OnDestroy, - OnInit, - Output -} from '@angular/core'; -import { MatIcon } from '@angular/material/icon'; -import { MatTooltip, TooltipPosition } from '@angular/material/tooltip'; - -import { - ImageErrorDirective, - SecureImagePipe, - getEntityTitle -} from '@igo2/common'; -import { ConfigService } from '@igo2/core/config'; -import { LanguageService } from '@igo2/core/language'; -import { MessageService } from '@igo2/core/message'; -import { ConnectionState, NetworkService } from '@igo2/core/network'; -import { Feature, IgoMap, SearchSource } from '@igo2/geo'; - -import { TranslateModule } from '@ngx-translate/core'; -import { Subject } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; - -@Component({ - selector: 'app-feature-custom-details', - templateUrl: './feature-custom-details.component.html', - styleUrls: ['./feature-custom-details.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - standalone: true, - imports: [ - MatIcon, - MatTooltip, - NgStyle, - ImageErrorDirective, - AsyncPipe, - JsonPipe, - KeyValuePipe, - TranslateModule, - SecureImagePipe - ] -}) -export class FeatureCustomDetailsComponent implements OnDestroy, OnInit { - private state: ConnectionState; - private unsubscribe$ = new Subject(); - - @Input() - get source(): SearchSource { - return this._source; - } - set source(value: SearchSource) { - this._source = value; - this.cdRef.detectChanges(); - } - - @Input() map: IgoMap; - - @Input() - get feature(): Feature { - return this._feature; - } - set feature(value: Feature) { - this._feature = value; - this.cdRef.detectChanges(); - this.selectFeature.emit(); - } - - @Input() - get mobile(): boolean { - return this._mobile; - } - set mobile(value: boolean) { - this._mobile = value; - } - private _mobile: boolean; - - @Input() - get mapQueryClick(): boolean { - return this._mapQueryClick; - } - set mapQueryClick(value: boolean) { - this._mapQueryClick = value; - } - private _mapQueryClick: boolean; - - private _feature: Feature; - private _source: SearchSource; - public featureTitle: string; - - @Output() selectFeature = new EventEmitter(); - - @Input() - matTooltipPosition: TooltipPosition; - - public ready: boolean; - - constructor( - private cdRef: ChangeDetectorRef, - private networkService: NetworkService, - private languageService: LanguageService, - private configService: ConfigService, - private http: HttpClient, - private messageService: MessageService - ) { - this.networkService - .currentState() - .pipe(takeUntil(this.unsubscribe$)) - .subscribe((state: ConnectionState) => { - this.state = state; - }); - } - - ngOnInit() { - this.ready = true; - } - - ngOnDestroy() { - this.mapQueryClick = false; - this.unsubscribe$.next(); - this.unsubscribe$.complete(); - } - - formatReading(reading: number): string { - return reading.toString().replace('.', ','); - } - - tooltipPosition() { - if (this.mobile) { - this.matTooltipPosition = 'above'; - } else { - this.matTooltipPosition = 'right'; - } - } - - /** - * @internal - */ - get title(): string { - return getEntityTitle(this.feature); - } - - isObject(value) { - return typeof value === 'object'; - } - - isDoc(value) { - if (typeof value === 'string') { - if (this.isUrl(value)) { - const regex = /(pdf|docx?|xlsx?)$/; - return regex.test(value.toLowerCase()); - } else { - return false; - } - } - } - - isUrl(value) { - if (typeof value === 'string') { - const regex = /^https?:\/\//; - return regex.test(value); - } - } - - isImg(value) { - if (typeof value === 'string') { - if (this.isUrl(value)) { - const regex = /(jpe?g|png|gif)$/; - return regex.test(value.toLowerCase()); - } else { - return false; - } - } - } - - isEmbeddedLink(value) { - if (typeof value === 'string') { - const matchRegex = / - -
- - - - - - - - -
-
-
- -
- -} -@if (mobileMode$ | async) { - - - - - -
- - - - - - - - -
-
-} - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/app/pages/portal/panels/panels-handler/panels-handler.component.scss b/src/app/pages/portal/panels/panels-handler/panels-handler.component.scss deleted file mode 100644 index 1f9cecb7..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels-handler.component.scss +++ /dev/null @@ -1,60 +0,0 @@ -@use 'variables'; -@import '../../portal.variables'; - -:host { - background-color: rgb(255, 255, 255); - - mat-sidenav { - ::ng-deep .mat-drawer-inner-container { - top: $search-bar-height; - position: relative; - height: calc(100% - $search-bar-height); - } - - @extend %box-shadowed-bottom-right; - - height: $app-sidenav-height; - width: $app-sidenav-width; - - overflow: visible; - - .app-sidenav-content { - padding: 0 16px 0 16px !important; - } - } - - .sidenav-button-container { - position: absolute; - top: 50%; - left: calc($app-sidenav-width + 1px); - z-index: 1; - padding: 0; - transition: left 300ms; - - button { - border-radius: 0; - &:hover { - background-color: #156bb2; - } - } - } - - .sidenav-closed { - left: 0 !important; - position: absolute; - } - - mat-expansion-panel { - position: fixed; - display: block; - bottom: 0; - z-index: 9999; - width: 100%; - - ::ng-deep .mat-expansion-panel-content { - overflow-y: scroll !important; - overflow-x: clip; - height: 264px; - } - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels-handler.component.ts b/src/app/pages/portal/panels/panels-handler/panels-handler.component.ts deleted file mode 100644 index ceaa1ed6..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels-handler.component.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout'; -import { - AsyncPipe, - NgClass, - NgSwitch, - NgSwitchCase, - NgTemplateOutlet -} from '@angular/common'; -import { - ChangeDetectionStrategy, - Component, - Input, - OnInit, - TemplateRef -} from '@angular/core'; -import { MatIconButton, MatMiniFabButton } from '@angular/material/button'; -import { - MatExpansionPanel, - MatExpansionPanelHeader -} from '@angular/material/expansion'; -import { MatIcon } from '@angular/material/icon'; -import { MatSidenav } from '@angular/material/sidenav'; -import { MatTooltip } from '@angular/material/tooltip'; - -import { SearchBarComponent } from '@igo2/geo'; - -import { TranslateModule } from '@ngx-translate/core'; -import { Observable, concatMap, distinctUntilChanged, of } from 'rxjs'; - -import { ShownComponent } from './panels-handler.enum'; -import { PanelsHandlerState } from './panels-handler.state'; -import { FilterPanelComponent } from './panels/filter/filter-panel.component'; -import { LegendPanelComponent } from './panels/legend/legend-panel.component'; -import { MapQueryResultsPanelComponent } from './panels/map-query-results/map-query-results-panel.component'; -import { SearchResultPanelComponent } from './panels/search-results/search-results-panel.component'; - -@Component({ - selector: 'app-panels-handler', - templateUrl: './panels-handler.component.html', - styleUrls: ['./panels-handler.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - standalone: true, - imports: [ - MatSidenav, - MatExpansionPanel, - MatExpansionPanelHeader, - MatTooltip, - MatIconButton, - MatIcon, - AsyncPipe, - TranslateModule, - NgClass, - MatMiniFabButton, - NgTemplateOutlet, - SearchBarComponent, - NgSwitch, - NgSwitchCase, - LegendPanelComponent, - SearchResultPanelComponent, - MapQueryResultsPanelComponent, - FilterPanelComponent - ] -}) -export class PanelsHandlerComponent implements OnInit { - public mobileMode$: Observable; - public openedPanel: boolean = false; - - @Input() searchBar: TemplateRef; - - constructor( - private breakpointObserver: BreakpointObserver, - public panelsHandlerState: PanelsHandlerState - ) { - this.mobileMode$ = this.breakpointObserver - .observe('(min-width: 768px)') - .pipe( - distinctUntilChanged(), - concatMap((breakpointState: BreakpointState) => { - return of(!breakpointState.matches); - }) - ); - } - - ngOnInit() { - this.panelsHandlerState.opened$.subscribe((opened) => - this.handlePanels(opened) - ); - this.panelsHandlerState.searchState.store.empty$.subscribe((e) => { - if (!e) { - this.panelsHandlerState.setShownComponent(ShownComponent.Search); - this.panelsHandlerState.setOpenedState(true); - } - }); - this.panelsHandlerState.queryState.store.empty$.subscribe((e) => { - if (!e) { - this.panelsHandlerState.setShownComponent(ShownComponent.Query); - this.panelsHandlerState.setOpenedState(true); - } - }); - } - - handlePanels(value: boolean) { - this.openedPanel = value; - } - - openWithinPanel() { - this.handlePanels(true); - } - - closeWithinPanel() { - this.handlePanels(false); - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels-handler.enum.ts b/src/app/pages/portal/panels/panels-handler/panels-handler.enum.ts deleted file mode 100644 index bb64c644..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels-handler.enum.ts +++ /dev/null @@ -1,12 +0,0 @@ -export enum ShownComponent { - Query = 'query', - Search = 'search', - Legend = 'legend', - Filter = 'filter' -} - -export enum SearchResultAction { - Focus = 'focus', - Select = 'select', - Unfocus = 'unfocus' -} diff --git a/src/app/pages/portal/panels/panels-handler/panels-handler.state.ts b/src/app/pages/portal/panels/panels-handler/panels-handler.state.ts deleted file mode 100644 index 1857277f..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels-handler.state.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Injectable } from '@angular/core'; - -import { IgoMap } from '@igo2/geo'; -import { QueryState, SearchState } from '@igo2/integration'; - -import { BehaviorSubject } from 'rxjs'; - -import { ShownComponent } from './panels-handler.enum'; - -@Injectable({ - providedIn: 'root' -}) -export class PanelsHandlerState { - readonly opened$: BehaviorSubject = new BehaviorSubject(false); - readonly shownComponent$: BehaviorSubject = - new BehaviorSubject(undefined); - map: IgoMap; - queryState: QueryState; - searchState: SearchState; - private devaultShownComponent: ShownComponent; - private showComponentHistory: ShownComponent[] = []; - - constructor() { - this.devaultShownComponent = ShownComponent.Search; - this.shownComponent$.next(this.devaultShownComponent); - this.shownComponent$.subscribe((sc) => { - this.showComponentHistory = this.showComponentHistory.filter( - (sch) => sch !== sc - ); - this.showComponentHistory.push(sc); - }); - } - - setOpenedState(value: boolean) { - this.opened$.next(value); - } - - togglePanels() { - const current = this.opened$.getValue(); - this.setOpenedState(!current); - } - - setShownComponent(value: ShownComponent) { - this.shownComponent$.next(value); - } - componentToClose(component: ShownComponent) { - this.showComponentHistory = this.showComponentHistory.filter( - (sch) => sch !== component - ); - const previousComponent = this.showComponentHistory.at(-1); - this.shownComponent$.next(previousComponent ?? this.devaultShownComponent); - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/filter/filter-panel.component.html b/src/app/pages/portal/panels/panels-handler/panels/filter/filter-panel.component.html deleted file mode 100644 index 78db85cc..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/filter/filter-panel.component.html +++ /dev/null @@ -1,24 +0,0 @@ -
-

- {{ 'filter.title' | translate }} -

- -
-@for ( - layer of panelsHandlerState.map.layers$ | async | filterableDataSource: 'ogc'; - track layer -) { - - -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/filter/filter-panel.component.scss b/src/app/pages/portal/panels/panels-handler/panels/filter/filter-panel.component.scss deleted file mode 100644 index 6b1a218a..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/filter/filter-panel.component.scss +++ /dev/null @@ -1,7 +0,0 @@ -:host { - .close-button { - display: flex; - justify-content: space-between; - align-items: center !important; - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/filter/filter-panel.component.ts b/src/app/pages/portal/panels/panels-handler/panels/filter/filter-panel.component.ts deleted file mode 100644 index bf09ecdf..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/filter/filter-panel.component.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { AsyncPipe } from '@angular/common'; -import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { MatIconButton } from '@angular/material/button'; -import { MatIcon } from '@angular/material/icon'; -import { MatTooltip } from '@angular/material/tooltip'; - -import { - FilterableDataSourcePipe, - OgcFilterableItemComponent -} from '@igo2/geo'; - -import { TranslateModule } from '@ngx-translate/core'; - -import { ShownComponent } from '../../panels-handler.enum'; -import { PanelsHandlerState } from '../../panels-handler.state'; - -@Component({ - selector: 'app-filter-panel', - templateUrl: './filter-panel.component.html', - styleUrls: ['./filter-panel.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - standalone: true, - imports: [ - MatTooltip, - MatIconButton, - MatIcon, - TranslateModule, - AsyncPipe, - FilterableDataSourcePipe, - OgcFilterableItemComponent - ] -}) -export class FilterPanelComponent { - constructor(public panelsHandlerState: PanelsHandlerState) {} - - clear() { - this.panelsHandlerState.componentToClose(ShownComponent.Filter); - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/legend/legend-panel.component.html b/src/app/pages/portal/panels/panels-handler/panels/legend/legend-panel.component.html deleted file mode 100644 index 0705ac0b..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/legend/legend-panel.component.html +++ /dev/null @@ -1,21 +0,0 @@ -
-

- {{ 'legend.title' | translate }} -

- -
- - diff --git a/src/app/pages/portal/panels/panels-handler/panels/legend/legend-panel.component.scss b/src/app/pages/portal/panels/panels-handler/panels/legend/legend-panel.component.scss deleted file mode 100644 index 6b1a218a..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/legend/legend-panel.component.scss +++ /dev/null @@ -1,7 +0,0 @@ -:host { - .close-button { - display: flex; - justify-content: space-between; - align-items: center !important; - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/legend/legend-panel.component.ts b/src/app/pages/portal/panels/panels-handler/panels/legend/legend-panel.component.ts deleted file mode 100644 index b244a56b..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/legend/legend-panel.component.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { - ChangeDetectionStrategy, - Component, - OnDestroy, - OnInit -} from '@angular/core'; -import { MatIconButton } from '@angular/material/button'; -import { MatIcon } from '@angular/material/icon'; -import { MatTooltip } from '@angular/material/tooltip'; - -import { Layer, LayerLegendListComponent } from '@igo2/geo'; - -import { TranslateModule } from '@ngx-translate/core'; -import { Subscription } from 'rxjs'; - -import { ShownComponent } from '../../panels-handler.enum'; -import { PanelsHandlerState } from '../../panels-handler.state'; - -@Component({ - selector: 'app-legend-panel', - templateUrl: './legend-panel.component.html', - styleUrls: ['./legend-panel.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - standalone: true, - imports: [ - MatTooltip, - MatIconButton, - MatIcon, - TranslateModule, - LayerLegendListComponent - ] -}) -export class LegendPanelComponent implements OnInit, OnDestroy { - public mapLayersShownInLegend: Layer[]; - private layers$$: Subscription; - - constructor(public panelsHandlerState: PanelsHandlerState) {} - - ngOnInit() { - this.layers$$ = this.panelsHandlerState.map.layers$.subscribe((layers) => { - this.mapLayersShownInLegend = layers.filter( - (layer) => layer.showInLayerList !== false - ); - }); - } - - ngOnDestroy() { - this.layers$$.unsubscribe(); - } - - clear() { - this.panelsHandlerState.componentToClose(ShownComponent.Legend); - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.component.html b/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.component.html deleted file mode 100644 index 133eadc3..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.component.html +++ /dev/null @@ -1,23 +0,0 @@ -@if (selectedFeature$ | async) { -
-

- {{ title$ | async | translate }} -

- -
- @if (selectedFeature$ | async; as selectedFeature) { - @if (!customFeatureDetails) { - - } @else { - - - } - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.component.scss b/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.component.scss deleted file mode 100644 index 98b3df6b..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.component.scss +++ /dev/null @@ -1,45 +0,0 @@ -@use 'variables'; -@import '../../../../portal.variables'; - -:host { - .close-button { - display: flex; - justify-content: space-between; - align-items: center !important; - } - igo-feature-details { - ::ng-deep table { - margin: 2em auto; - border-spacing: 0px; - border-collapse: collapse; - tbody { - tr:nth-child(odd) { - background-color: #fff !important; - } - tr { - border-bottom: 1px solid #dae6f0; - td { - font: - normal 16px/24px 'Open Sans', - sans-serif; - color: #223654; - margin-top: 4px; - margin-bottom: 4px; - text-align: left; - width: 62% !important; - padding: 0.5em !important; - } - td:first-child { - font-weight: bold; - margin-bottom: 8px; - width: 38% !important; - } - } - tr:hover { - cursor: pointer; - background-color: #dae6f0 !important; - } - } - } - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.component.ts b/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.component.ts deleted file mode 100644 index ef46f855..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.component.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { AsyncPipe } from '@angular/common'; -import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { MatIconButton } from '@angular/material/button'; -import { MatIcon } from '@angular/material/icon'; -import { MatTooltip } from '@angular/material/tooltip'; - -import { ConfigService } from '@igo2/core/config'; -import { LanguageService } from '@igo2/core/language'; -import { Feature, FeatureDetailsComponent, SearchResult } from '@igo2/geo'; - -import { TranslateModule } from '@ngx-translate/core'; -import { BehaviorSubject, Observable, of, switchMap } from 'rxjs'; - -import { FeatureCustomDetailsComponent } from '../../../feature/feature-custom-details/feature-custom-details.component'; -import { ShownComponent } from '../../panels-handler.enum'; -import { PanelsHandlerState } from '../../panels-handler.state'; -import { onResultSelect } from './map-query-results-panel.utils'; - -@Component({ - selector: 'app-query-results-panel', - templateUrl: './map-query-results-panel.component.html', - styleUrls: ['./map-query-results-panel.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - standalone: true, - imports: [ - MatTooltip, - MatIconButton, - MatIcon, - TranslateModule, - FeatureDetailsComponent, - FeatureCustomDetailsComponent, - AsyncPipe - ] -}) -export class MapQueryResultsPanelComponent implements OnInit { - public title$: BehaviorSubject = new BehaviorSubject(undefined); - public customFeatureTitle: boolean; - public customFeatureDetails: boolean; - public selectedFeature$ = new Observable(undefined); - - constructor( - private configService: ConfigService, - public languageService: LanguageService, - public panelsHandlerState: PanelsHandlerState - ) { - this.customFeatureTitle = this.configService.getConfig( - 'customFeatureTitle', - false - ); - this.customFeatureDetails = this.configService.getConfig( - 'customFeatureDetails', - false - ); - } - - ngOnInit() { - this.selectedFeature$ = - this.panelsHandlerState.queryState.store.entities$.pipe( - switchMap((e: SearchResult[]) => { - this.panelsHandlerState.map.queryResultsOverlay.clear(); - if (!e || !e.length) { - return of(); - } else { - const firstResult = e[0]; - this.panelsHandlerState.queryState.store.state.update( - firstResult, - { - focused: true, - selected: true - }, - true - ); - const feature = firstResult.data; - onResultSelect( - firstResult, - this.panelsHandlerState.map, - this.panelsHandlerState.queryState - ); - this.title$.next( - this.customFeatureTitle ? 'feature.title' : feature.meta.title - ); - return of(feature); - } - }) - ); - } - - clear() { - this.panelsHandlerState.componentToClose(ShownComponent.Query); - this.panelsHandlerState.map.queryResultsOverlay.clear(); - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.utils.ts b/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.utils.ts deleted file mode 100644 index 7cabe20c..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/map-query-results/map-query-results-panel.utils.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { - FEATURE, - Feature, - FeatureMotion, - IgoMap, - SearchResult, - getCommonVectorSelectedStyle -} from '@igo2/geo'; -import { QueryState } from '@igo2/integration'; - -import olFeature from 'ol/Feature'; -import type { default as OlGeometry } from 'ol/geom/Geometry'; - -export function onResultSelect( - result: SearchResult, - map: IgoMap, - queryState: QueryState -) { - if (result.meta.dataType === FEATURE && result.data.geometry) { - result.data.meta.style = getCommonVectorSelectedStyle( - Object.assign( - {}, - { feature: result.data as Feature | olFeature }, - queryState.queryOverlayStyleSelection, - result.style?.selection ? result.style.selection : {} - ) - ); - - const feature = map.searchResultsOverlay.dataSource.ol.getFeatureById( - result.meta.id - ); - if (feature) { - feature.setStyle(result.data.meta.style); - return; - } - map.queryResultsOverlay.addFeature( - result.data as Feature, - FeatureMotion.None - ); - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.component.html b/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.component.html deleted file mode 100644 index 2270019a..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.component.html +++ /dev/null @@ -1,33 +0,0 @@ -@if (panelsHandlerState.searchState.store.empty$ | async) { -
-
-
- {{ 'igo.integration.searchResultsTool.noResults' | translate }} -
-
- {{ 'igo.integration.searchResultsTool.doSearch' | translate }} -
-

-
-
-} - -@if ((panelsHandlerState.searchState.store.empty$ | async) === false) { - - -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.component.scss b/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.component.scss deleted file mode 100644 index fb2df80c..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.component.scss +++ /dev/null @@ -1,5 +0,0 @@ -:host { - .no-results { - margin: 20px; - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.component.ts b/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.component.ts deleted file mode 100644 index e67d82b2..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.component.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { AsyncPipe } from '@angular/common'; -import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { MatIconButton } from '@angular/material/button'; -import { MatIcon } from '@angular/material/icon'; -import { MatTooltip } from '@angular/material/tooltip'; - -import { - FeatureMotion, - Research, - SearchResult, - SearchResultsComponent -} from '@igo2/geo'; - -import { TranslateModule } from '@ngx-translate/core'; - -import { SearchResultAction } from '../../panels-handler.enum'; -import { PanelsHandlerState } from '../../panels-handler.state'; -import { - onResultFocus, - onResultSelect, - onResultUnfocus -} from './search-results-panel.utils'; - -@Component({ - selector: 'app-search-results-panel', - templateUrl: './search-results-panel.component.html', - styleUrls: ['./search-results-panel.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - standalone: true, - imports: [ - MatTooltip, - MatIconButton, - MatIcon, - TranslateModule, - SearchResultsComponent, - AsyncPipe - ] -}) -export class SearchResultPanelComponent { - public searchResultActions = SearchResultAction; - - constructor(public panelsHandlerState: PanelsHandlerState) {} - - onSearchTermChange(term: string) { - this.panelsHandlerState.searchState.setSearchTerm(term); - } - - onResult(searchResultAction: SearchResultAction, searchResult: SearchResult) { - switch (searchResultAction) { - case SearchResultAction.Focus: - onResultFocus( - searchResult, - this.panelsHandlerState.map, - this.panelsHandlerState.searchState, - { - featureMotion: FeatureMotion.None - } - ); - break; - case SearchResultAction.Select: - this, this.panelsHandlerState.map.searchResultsOverlay.clear(); - onResultSelect( - searchResult, - this.panelsHandlerState.map, - this.panelsHandlerState.searchState - ); - this.close(); - break; - case SearchResultAction.Unfocus: - onResultUnfocus(searchResult, this.panelsHandlerState.map); - break; - } - } - onMoreResults(event: { research: Research; results: SearchResult[] }) { - const results = event.results; - this.panelsHandlerState.searchState.store.state.updateAll({ - focused: false, - selected: false - }); - const newResults = this.panelsHandlerState.searchState.store.entities$.value - .filter((result: SearchResult) => result.source !== event.research.source) - .concat(results); - this.panelsHandlerState.searchState.store.updateMany(newResults); - // todo scroll into view - } - - close() { - this.panelsHandlerState.setOpenedState(false); - } -} diff --git a/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.utils.ts b/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.utils.ts deleted file mode 100644 index f8c9629d..00000000 --- a/src/app/pages/portal/panels/panels-handler/panels/search-results/search-results-panel.utils.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { - CommonVectorStyleOptions, - FEATURE, - Feature, - FeatureMotion, - IgoMap, - SearchResult, - getCommonVectorSelectedStyle -} from '@igo2/geo'; -import { SearchState } from '@igo2/integration'; - -export function onResultFocus( - result: SearchResult, - map: IgoMap, - searchState: SearchState, - options?: { featureMotion?: FeatureMotion } -) { - onResultSelectOrFocus(result, map, searchState, 'focus', options); -} - -export function onResultSelect( - result: SearchResult, - map: IgoMap, - searchState: SearchState, - options?: { featureMotion?: FeatureMotion } -) { - onResultSelectOrFocus(result, map, searchState, 'select', options); -} - -function onResultSelectOrFocus( - result: SearchResult, - map: IgoMap, - searchState: SearchState, - type: 'select' | 'focus', - options?: { featureMotion?: FeatureMotion } -) { - if (result.meta.dataType !== FEATURE) { - return undefined; - } - const feature = (result as SearchResult).data; - - // Somethimes features have no geometry. It happens with some GetFeatureInfo - if (!feature.geometry) { - return; - } - - let searchOverlayStyle: CommonVectorStyleOptions = - searchState.searchOverlayStyle; - let resultStyle: CommonVectorStyleOptions = result.style?.base - ? result.style.base - : {}; - switch (type) { - case 'focus': - searchOverlayStyle = searchState.searchOverlayStyleFocus; - resultStyle = result.style?.focus ? result.style.focus : {}; - break; - case 'select': - searchOverlayStyle = searchState.searchOverlayStyleSelection; - resultStyle = result.style?.selection ? result.style.selection : {}; - break; - } - - feature.meta.style = getCommonVectorSelectedStyle( - Object.assign({}, { feature }, searchOverlayStyle, resultStyle) - ); - - map.searchResultsOverlay.addFeature(feature, options?.featureMotion); -} - -export function onResultUnfocus(result: SearchResult, map: IgoMap) { - const feature = map.searchResultsOverlay.dataSource.ol.getFeatureById( - result.meta.id - ); - if (feature) { - map.searchResultsOverlay.removeFeature(result.data as Feature); - } -} diff --git a/src/app/pages/portal/panels/panels.theming.scss b/src/app/pages/portal/panels/panels.theming.scss deleted file mode 100644 index 6b0fd9fb..00000000 --- a/src/app/pages/portal/panels/panels.theming.scss +++ /dev/null @@ -1,7 +0,0 @@ -@use '@angular/material' as mat; - -@use './feature/feature.theming.scss' as feature; - -@mixin themes($theme) { - @include feature.themes($theme); -} diff --git a/src/app/pages/portal/portal.animation.ts b/src/app/pages/portal/portal.animation.ts deleted file mode 100644 index 4ab5bc53..00000000 --- a/src/app/pages/portal/portal.animation.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { - AnimationTriggerMetadata, - animate, - state, - style, - transition, - trigger -} from '@angular/animations'; - -import './portal.variables.scss'; - -export function controlSlideX(): AnimationTriggerMetadata { - return trigger('controlStateX', [ - state( - 'left', - style({ - left: '60px' - }) - ), - state( - 'right', - style({ - left: '465px' - }) - ), - transition('* => *', animate('200ms')) - ]); -} - -export function controlsAnimations(): AnimationTriggerMetadata[] { - return [ - trigger('controlsOffsetY', [ - state('close', style({})), - state( - 'firstRowFromBottom', - style({ - bottom: '5px' - }) - ), - state( - 'secondRowFromBottom', - style({ - bottom: '35px' - }) - ), - transition('* => *', animate('200ms')) - ]) - ]; -} diff --git a/src/app/pages/portal/portal.component.html b/src/app/pages/portal/portal.component.html deleted file mode 100644 index d3884fda..00000000 --- a/src/app/pages/portal/portal.component.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - @if (!mobile) { -
- @if (showSearchBar) { - - } - @if (mobile) { -
- } -
- } - - - @if (mobile) { -
- } -
- - -
- -
- @if (hasGeolocateButton) { - - } - - - @if ( - (panelsHandlerState.map.layers$ | async | filterableDataSource: 'ogc') - .length > 0 - ) { - - } - @if (appConfig.hasLegendButton) { - - } -
-
- - @if (hasFooter && !mobile) { - - } - - - -
-
- - - - - diff --git a/src/app/pages/portal/portal.component.scss b/src/app/pages/portal/portal.component.scss deleted file mode 100644 index 64e94e16..00000000 --- a/src/app/pages/portal/portal.component.scss +++ /dev/null @@ -1,224 +0,0 @@ -@use '@angular/material' as mat; -@use '../../../style/breakpoints'; - -@import './portal.variables'; - -/*** Main ***/ -:host { - width: 100%; - height: 100%; - display: block; - - mat-icon.disabled { - color: rgba(0, 0, 0, 0.38); - } - /*** Sidenav ***/ - mat-sidenav-container { - height: 100%; - width: 100%; - background-color: #efefef; - z-index: 5; - display: unset; - } - - mat-sidenav-content { - @include mobile { - z-index: auto; - } - } - /*** Search bar ***/ - igo-search-bar { - background-color: $app-background-color; - font-size: 16px; - position: absolute; - top: calc(4 * $igo-margin); - z-index: 4; - height: $igo-icon-size; - margin: 0 $igo-margin; - - width: $search-bar-width; - - @include mobile { - width: $search-bar-width-mobile; - top: 15%; - } - } - - igo-search-bar, - igo-search-results igo-list { - left: $portal-left !important; - } - - igo-baselayers-switcher { - position: absolute; - bottom: 8px; - left: $portal-left !important; - } - - ::ng-deep .igo-search-bar-container .mat-icon { - fill: #ffffff; - } - - // Mobile pushed elements - - igo-search-bar svg { - color: white; - height: 40px; - width: 40px; - } - - /*** Map browser ***/ - igo-map-browser { - width: 100%; - height: 100%; - position: relative; - display: block; - } - - igo-map-browser ::ng-deep .ol-attribution { - display: none; - left: 50px; - bottom: $igo-margin; - text-align: left; - padding: 0; - margin-right: 90px; - background-color: rgba(255, 255, 255, 0); - width: calc(100% - 500px); - - &.ol-logo-only { - height: inherit; - } - &.ol-collapsed { - background: none; - button { - transform: none; - } - } - button { - transform: rotate(180deg); - background-color: white; - cursor: pointer; - } - &.ol-uncollapsible { - height: auto; - } - ul { - background-color: rgba(255, 255, 255, 0.6); - padding: 2px 0.5em; - } - } - - .map-actions { - position: absolute; - display: flex; - transition: - bottom 250ms, - left 250ms; - - .spinner-spacer { - height: 40px; - } - - &.--vertical { - flex-direction: column; - - > :not(:first-child) { - margin-top: 8px; - } - } - - &.--horizontal { - > :not(:first-child) { - margin-right: 8px; - } - } - - &.--bottom { - bottom: 4px; - } - - &.--right { - right: 4px; - align-items: flex-end; // todo ajouter a igo - } - - &.--top { - top: 4px; - } - - &.--horizontal.--bottom.--right { - right: calc(40px + 4px * 2); - } - - &.--left { - left: 4px; - align-items: flex-start; // todo ajouter a igo - } - } - - igo-map-browser ::ng-deep .ol-overlaycontainer-stopevent { - position: absolute; - width: 100%; - left: 0; - bottom: 0; - } - - igo-map-browser.toast-offset-attribution - ::ng-deep - .ol-overlaycontainer-stopevent - ::ng-deep - .ol-attribution { - @include mobile { - display: none; - bottom: 50px; - } - } - - igo-zoom-button { - ::ng-deep button { - @include mat.elevation(2); - } - - @include breakpoints.media-breakpoint-down('mobile') { - display: none; - } - } - - // info-bulle arrows from panels - ::ng-deep .sidepanel .tooltip-chart::after { - content: '' !important; - position: absolute !important; - top: 18% !important; - right: 100% !important; - margin-top: -5px !important; - border-width: 10px !important; - border-style: solid !important; - border-color: transparent transparent transparent white !important; - transform: rotate(180deg); - } - - ::ng-deep .sidepanel { - position: absolute !important; - height: 100%; - } - - //** ADJUSTMENTS TO FOOTER AND HEADER **// - - ::ng-deep .map-hasfooter { - height: calc(100% - $footer-height) !important; - } - - ::ng-deep #legend-dialog-container, - app-legend-dialog { - top: calc($header-height-mobile + 4px); - max-height: calc(100% - $header-height-mobile - $footer-height - 100px); - } - - @media (min-width: 768px) { - ::ng-deep #legend-dialog-container, - app-legend-dialog { - top: calc($header-height + 4px); - max-height: calc(100% - $header-height - $footer-height - 180px); - } - } -} diff --git a/src/app/pages/portal/portal.component.ts b/src/app/pages/portal/portal.component.ts deleted file mode 100644 index 213d9991..00000000 --- a/src/app/pages/portal/portal.component.ts +++ /dev/null @@ -1,745 +0,0 @@ -import { - BreakpointObserver, - BreakpointState, - Breakpoints -} from '@angular/cdk/layout'; -import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common'; -import { HttpClient, HttpParams } from '@angular/common/http'; -import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { - MatSidenavContainer, - MatSidenavContent -} from '@angular/material/sidenav'; -import { MatTooltip } from '@angular/material/tooltip'; -import { ActivatedRoute, Params } from '@angular/router'; - -import { EntityRecord } from '@igo2/common'; -import { - DetailedContext, - LayerContextDirective, - MapContextDirective -} from '@igo2/context'; -import { AnalyticsService } from '@igo2/core/analytics'; -import { ConfigService } from '@igo2/core/config'; -import { LanguageService } from '@igo2/core/language'; -import { MediaService } from '@igo2/core/media'; -import { MessageService } from '@igo2/core/message'; -import { - BaseLayersSwitcherComponent, - CapabilitiesService, - DataSourceService, - DropGeoFileDirective, - FEATURE, - Feature, - FilterableDataSourcePipe, - GeolocateButtonComponent, - HoverFeatureDirective, - IgoMap, - ImportService, - LayerService, - MapBrowserComponent, - MapOfflineDirective, - QueryDirective, - QuerySearchSource, - QueryService, - Research, - RotationButtonComponent, - SearchBarComponent, - SearchResult, - SearchSource, - SearchSourceService, - ZoomButtonComponent, - computeOlFeaturesExtent, - featureToSearchResult, - generateIdFromSourceOptions, - handleFileImportError, - handleFileImportSuccess, - sourceCanReverseSearch, - sourceCanSearch -} from '@igo2/geo'; -import { - ContextState, - MapState, - QueryState, - SearchState -} from '@igo2/integration'; -import { ObjectUtils } from '@igo2/utils'; - -import olFormatGeoJSON from 'ol/format/GeoJSON'; -import * as olProj from 'ol/proj'; - -import { TranslateModule } from '@ngx-translate/core'; -import { MapBrowserEvent } from 'ol'; -import { Observable, Subscription, of, skip } from 'rxjs'; -import { - debounceTime, - distinctUntilChanged, - skipWhile, - take -} from 'rxjs/operators'; -import { EnvironmentOptions } from 'src/environments/environnement.interface'; - -import { FooterComponent } from '../footer/footer.component'; -import { FilterButtonComponent } from './filter-button/filter-button.component'; -import { LegendButtonComponent } from './legend-button/legend-button.component'; -import { MapOverlayComponent } from './map-overlay/map-overlay.component'; -import { PanelsHandlerComponent } from './panels/panels-handler/panels-handler.component'; -import { ShownComponent } from './panels/panels-handler/panels-handler.enum'; -import { PanelsHandlerState } from './panels/panels-handler/panels-handler.state'; -import { controlSlideX, controlsAnimations } from './portal.animation'; - -@Component({ - selector: 'app-portal', - templateUrl: './portal.component.html', - styleUrls: ['./portal.component.scss'], - animations: [controlsAnimations(), controlSlideX()], - standalone: true, - imports: [ - MatSidenavContainer, - MatSidenavContent, - SearchBarComponent, - MatTooltip, - MapBrowserComponent, - MapOfflineDirective, - MapContextDirective, - LayerContextDirective, - DropGeoFileDirective, - HoverFeatureDirective, - QueryDirective, - NgClass, - BaseLayersSwitcherComponent, - GeolocateButtonComponent, - ZoomButtonComponent, - RotationButtonComponent, - LegendButtonComponent, - FilterButtonComponent, - FooterComponent, - MapOverlayComponent, - AsyncPipe, - TranslateModule, - PanelsHandlerComponent, - NgTemplateOutlet, - FilterableDataSourcePipe - ] -}) -export class PortalComponent implements OnInit, OnDestroy { - readonly breakpoint$: Observable; - public Breakpoints = Breakpoints; - - public shownComponents = ShownComponent; - public appConfig: EnvironmentOptions; - public hasFooter: boolean; - - public hasGeolocateButton: boolean; - public showSearchBar: boolean; - - public legendDialogOpened = false; - - public termDefinedInUrl = false; - public termDefinedInUrlTriggered = false; - private addedLayers$$: Subscription[] = []; - private layers$$: Subscription; - - private contextLoaded = false; - private context$$: Subscription; - private searchTerm$$: Subscription; - - private routeParams: Params; - // renommer mobileMode plutot que mobile? - public mobile: boolean; - @ViewChild('searchbar') searchBar: SearchBarComponent; - - public dialogOpened: MatDialogRef; - - public mobileBreakPoint: string = '(min-width: 768px)'; - - public currentBreakpoint: string = ''; - public legendButtonTooltip: unknown; - - get map(): IgoMap { - return this.mapState.map; - } - - constructor( - private route: ActivatedRoute, - public mediaService: MediaService, - public layerService: LayerService, - public dataSourceService: DataSourceService, - public capabilitiesService: CapabilitiesService, - private contextState: ContextState, - private mapState: MapState, - public searchState: SearchState, - public queryState: QueryState, - private searchSourceService: SearchSourceService, - private configService: ConfigService, - private importService: ImportService, - private http: HttpClient, - private languageService: LanguageService, - private messageService: MessageService, - public dialogWindow: MatDialog, - public dialog: MatDialog, - public queryService: QueryService, - private breakpointObserver: BreakpointObserver, - private analyticsService: AnalyticsService, - public panelsHandlerState: PanelsHandlerState - ) { - this.handleAppConfigs(); - this.dialogOpened = this.dialog.getDialogById( - 'legend-button-dialog-container' - ); - this.legendButtonTooltip = - this.languageService.translate.instant('legend.open'); - this.breakpoint$ = this.breakpointObserver - .observe(this.mobileBreakPoint) - .pipe(distinctUntilChanged()); - } - - ngOnInit() { - this.initPanelsHandlerState(); - this.queryService.defaultFeatureCount = 1; - window['IGO'] = this; - this.map.ol.once('rendercomplete', () => { - this.readQueryParams(); - if (this.appConfig.geolocate?.activateDefault !== undefined) { - this.map.geolocationController.tracking = - this.appConfig.geolocate?.activateDefault; - } - }); - - this.route.queryParams.subscribe((params) => { - this.readLanguageParam(params); - }); - - this.context$$ = this.contextState.context$.subscribe( - (context: DetailedContext) => this.onChangeContext(context) - ); - - this.searchTerm$$ = this.searchState.searchTerm$ - .pipe(skip(1)) - .subscribe((searchTerm: string) => { - if (searchTerm !== undefined && searchTerm !== null) { - this.analyticsService.trackSearch( - searchTerm, - this.searchState.store.count - ); - } - }); - - this.queryService.defaultFeatureCount = 1; - - this.breakpoint$.subscribe(() => this.breakpointChanged()); - } - - private handleAppConfigs() { - this.appConfig = this.configService.getConfigs(); - this.hasGeolocateButton = this.configService.getConfig( - 'geolocate.button.visible', - true - ); - this.showSearchBar = this.configService.getConfig( - 'searchBar.showSearchBar', - true - ); - this.hasFooter = this.configService.getConfig('hasFooter', true); - this.mobileBreakPoint = this.configService.getConfig( - 'mobileBreakPoint', - '(min-width: 768px)' - ); - } - - private initPanelsHandlerState() { - this.panelsHandlerState.map = this.map; - this.panelsHandlerState.queryState = this.queryState; - this.panelsHandlerState.searchState = this.searchState; - } - - togglePanelComponent(component: ShownComponent) { - const currentComponent = this.panelsHandlerState.shownComponent$.getValue(); - const opened = this.panelsHandlerState.opened$.getValue(); - - if (component !== currentComponent && opened) { - this.panelsHandlerState.setShownComponent(component); - } else { - this.panelsHandlerState.setShownComponent(component); - this.panelsHandlerState.togglePanels(); - } - } - - public breakpointChanged() { - // todo service distinct? renommer mobileMode plutot que mobile? - if (this.breakpointObserver.isMatched('(min-width: 768px)')) { - this.currentBreakpoint = this.mobileBreakPoint; - this.mobile = false; - } else { - this.mobile = true; - } - } - - ngOnDestroy() { - this.context$$.unsubscribe(); - this.layers$$?.unsubscribe(); - this.searchTerm$$.unsubscribe(); - } - - public onClearSearch() { - this.map.searchResultsOverlay.clear(); - this.searchState.store.clear(); - this.searchState.setSelectedResult(undefined); - this.searchState.deactivateCustomFilterTermStrategy(); - } - - private getQuerySearchSource(): SearchSource { - return this.searchSourceService - .getSources() - .find( - (searchSource: SearchSource) => - searchSource instanceof QuerySearchSource - ); - } - - onMapQuery(event: { features: Feature[]; event: MapBrowserEvent }) { - const baseQuerySearchSource = this.getQuerySearchSource(); - const querySearchSourceArray: QuerySearchSource[] = []; - const results = event.features.map((feature: Feature) => { - let querySearchSource = querySearchSourceArray.find( - (s) => s.title === feature.meta.sourceTitle - ); - if (!querySearchSource) { - querySearchSource = new QuerySearchSource({ - title: feature.meta.sourceTitle - }); - querySearchSourceArray.push(querySearchSource); - } - return featureToSearchResult(feature, querySearchSource); - }); - const filteredResults = results.filter((x) => x !== undefined); - const research = { - request: of(filteredResults), - reverse: false, - source: baseQuerySearchSource - }; - research.request.subscribe((queryResults: SearchResult[]) => { - this.queryState.store.load(queryResults); - }); - } - - /** - * Cancel ongoing add layer, if any - */ - private cancelOngoingAddLayer() { - this.addedLayers$$.forEach((sub: Subscription) => sub.unsubscribe()); - this.addedLayers$$ = []; - } - - onSearchTermChange(term?: string) { - if (this.routeParams?.search && term !== this.routeParams.search) { - this.searchState.deactivateCustomFilterTermStrategy(); - } - this.searchState.searchTerm$.next(term); - this.searchState.setSearchTerm(term); - const termWithoutHashtag = term.replace(/(#[^\s]*)/g, '').trim(); - if (termWithoutHashtag.length < 2) { - this.onClearSearch(); - return; - } - } - - onSearch(event: { research: Research; results: SearchResult[] }) { - const results = event.results; - - const isReverseSearch = !sourceCanSearch(event.research.source); - - let enabledSources; - if (isReverseSearch) { - enabledSources = this.searchSourceService - .getEnabledSources() - .filter(sourceCanReverseSearch); - } else { - enabledSources = this.searchSourceService - .getEnabledSources() - .filter(sourceCanSearch); - } - - const newResults = this.searchState.store.entities$.value - .filter( - (result: SearchResult) => - result.source !== event.research.source && - enabledSources.includes(result.source) - ) - .concat(results); - this.searchState.store.updateMany(newResults); - } - - private onChangeContext(context: DetailedContext) { - this.cancelOngoingAddLayer(); - if (context === undefined) { - return; - } - if (!this.queryState.store.empty) { - this.queryState.store.softClear(); - } - - this.route.queryParams.pipe(debounceTime(250)).subscribe((qParams) => { - if (!qParams['context'] || qParams['context'] === context.uri) { - this.readLayersQueryParams(qParams); - } - }); - - this.contextLoaded = true; - } - - clearSearch() { - this.map.searchResultsOverlay.clear(); - this.searchState.store.clear(); - this.searchState.setSelectedResult(undefined); - this.searchState.deactivateCustomFilterTermStrategy(); - this.searchState.setSearchTerm(''); - } - - getControlsOffsetY() { - return this.mobile ? 'secondRowFromBottom' : 'firstRowFromBottom'; - } - - private readQueryParams() { - this.route.queryParams.subscribe((params) => { - this.routeParams = params; - this.readSearchParams(); - this.readFocusFirst(); - this.computeZoomToExtent(); - }); - } - - private readLanguageParam(params) { - if (params['lang']) { - this.languageService.setLanguage(params['lang']); - } - } - - private computeZoomToExtent() { - if (this.routeParams['zoomExtent']) { - const extentParams = this.routeParams['zoomExtent'].split(','); - const olExtent = olProj.transformExtent( - extentParams.map((str) => Number(str.trim())), - 'EPSG:4326', - this.map.projectionCode - ); - this.map.viewController.zoomToExtent( - olExtent as [number, number, number, number] - ); - } - } - - private computeFocusFirst() { - setTimeout(() => { - const resultItem: any = document - .getElementsByTagName('igo-search-results-item') - .item(0); - if (resultItem) { - resultItem.click(); - } - }, 1); - } - - private readFocusFirst() { - if (this.routeParams['sf'] === '1' && this.termDefinedInUrl) { - const entities$$ = this.searchState.store.stateView - .all$() - .pipe( - skipWhile((entities) => entities.length === 0), - debounceTime(1000), - take(1) - ) - .subscribe((entities) => { - entities$$.unsubscribe(); - if (entities.length && !this.termDefinedInUrlTriggered) { - this.computeFocusFirst(); - this.termDefinedInUrlTriggered = true; - } - }); - } - } - - private readSearchParams() { - if (this.routeParams['search']) { - this.termDefinedInUrl = true; - if (this.routeParams['exactMatch'] === '1') { - this.searchState.activateCustomFilterTermStrategy(); - } - if ( - this.routeParams['search'] && - !this.routeParams['zoom'] && - this.routeParams['sf'] !== '1' - ) { - const entities$$ = this.searchState.store.stateView - .all$() - .pipe( - skipWhile((entities) => entities.length === 0), - debounceTime(500), - take(1) - ) - .subscribe((entities) => { - entities$$.unsubscribe(); - const searchResultsOlFeatures = entities - .filter((e) => e.entity.meta.dataType === FEATURE) - .map((entity: EntityRecord) => - new olFormatGeoJSON().readFeature(entity.entity.data, { - dataProjection: entity.entity.data.projection, - featureProjection: this.map.projection - }) - ); - const totalExtent = computeOlFeaturesExtent( - searchResultsOlFeatures, - this.map.viewProjection - ); - this.map.viewController.zoomToExtent(totalExtent); - }); - } - this.searchState.searchTerm$.next(this.routeParams['search']); - } - if (this.routeParams['searchGeom'] === '1') { - this.searchState.searchResultsGeometryEnabled$.next(true); - } - } - - private readLayersQueryParams(params: Params) { - this.readLayersQueryParamsByType(params, 'wms'); - this.readLayersQueryParamsByType(params, 'wmts'); - this.readLayersQueryParamsByType(params, 'arcgisrest'); - this.readLayersQueryParamsByType(params, 'imagearcgisrest'); - this.readLayersQueryParamsByType(params, 'tilearcgisrest'); - this.readVectorQueryParams(params); - } - - getQueryParam(name, url) { - let paramValue; - if (url.includes('?')) { - const httpParams = new HttpParams({ fromString: url.split('?')[1] }); - paramValue = httpParams.get(name); - } - return paramValue; - } - - private readLayersQueryParamsByType(params: Params, type) { - let nameParamLayersKey; - let urlsKey; - switch (type) { - case 'wms': - if ((params['layers'] || params['wmsLayers']) && params['wmsUrl']) { - urlsKey = 'wmsUrl'; - nameParamLayersKey = params['wmsLayers'] ? 'wmsLayers' : 'layers'; // for maintain compatibility - } - break; - case 'wmts': - if (params['wmtsLayers'] && params['wmtsUrl']) { - urlsKey = 'wmtsUrl'; - nameParamLayersKey = 'wmtsLayers'; - } - break; - case 'arcgisrest': - if (params['arcgisLayers'] && params['arcgisUrl']) { - urlsKey = 'arcgisUrl'; - nameParamLayersKey = 'arcgisLayers'; - } - break; - case 'imagearcgisrest': - if (params['iarcgisLayers'] && params['iarcgisUrl']) { - urlsKey = 'iarcgisUrl'; - nameParamLayersKey = 'iarcgisLayers'; - } - break; - case 'tilearcgisrest': - if (params['tarcgisLayers'] && params['tarcgisUrl']) { - urlsKey = 'tarcgisUrl'; - nameParamLayersKey = 'tarcgisLayers'; - } - break; - } - if (!nameParamLayersKey || !urlsKey) { - return; - } - const layersByService = params[nameParamLayersKey].split('),('); - const urls = params[urlsKey].split(','); - - let cnt = 0; - urls.forEach((urlSrc) => { - let url = urlSrc; - const version = - this.getQueryParam('VERSION', url) || - this.getQueryParam('version', url) || - undefined; - if (version) { - url = url - .replace('VERSION=' + version, '') - .replace('version=' + version, ''); - } - if (url.endsWith('?')) { - url = url.substring(0, url.length - 1); - } - - const currentLayersByService = this.extractLayersByService( - layersByService[cnt] - ); - currentLayersByService.forEach((layer) => { - const layerFromUrl = layer.split(':igoz'); - const layerOptions = ObjectUtils.removeUndefined({ - type, - url: url, - layer: layerFromUrl[0], - params: type === 'wms' ? { LAYERS: layerFromUrl[0] } : undefined - }); - const id = generateIdFromSourceOptions(layerOptions); - const visibility = this.computeLayerVisibilityFromUrl(params, id); - this.addLayerFromURL( - url, - layerFromUrl[0], - type, - version, - visibility, - layerFromUrl[1] ? parseInt(layerFromUrl[1], 10) : undefined - ); - }); - cnt += 1; - }); - } - - private readVectorQueryParams(params: Params) { - if (params['vector']) { - const url = params['vector'] as string; - const lastIndex = url.lastIndexOf('/'); - const fileName = url.slice(lastIndex + 1, url.length); - - this.http.get(`${url}`, { responseType: 'blob' }).subscribe((data) => { - const file = new File([data], fileName, { - type: data.type, - lastModified: Date.now() - }); - this.importService.import(file).subscribe( - (features: Feature[]) => this.onFileImportSuccess(file, features), - (error: Error) => this.onFileImportError(file, error) - ); - }); - } - } - - private onFileImportSuccess(file: File, features: Feature[]) { - handleFileImportSuccess( - file, - features, - this.map, - this.contextState.context$.value.uri, - this.messageService, - this.layerService - ); - } - - private onFileImportError(file: File, error: Error) { - handleFileImportError(file, error, this.messageService); - } - - private extractLayersByService(layersByService: string): any[] { - let outLayersByService = layersByService; - outLayersByService = outLayersByService.startsWith('(') - ? outLayersByService.substr(1) - : outLayersByService; - outLayersByService = outLayersByService.endsWith(')') - ? outLayersByService.slice(0, -1) - : outLayersByService; - return outLayersByService.split(','); - } - private addLayerFromURL( - url: string, - name: string, - type: 'wms' | 'wmts' | 'arcgisrest' | 'imagearcgisrest' | 'tilearcgisrest', - version: string, - visibility: boolean = true, - zIndex: number - ) { - if (!this.contextLoaded) { - return; - } - const commonSourceOptions = { - optionsFromCapabilities: true, - optionsFromApi: true, - crossOrigin: true, - type, - url - }; - const arcgisClause = - type === 'arcgisrest' || - type === 'imagearcgisrest' || - type === 'tilearcgisrest'; - let sourceOptions = { - version: type === 'wmts' ? '1.0.0' : undefined, - queryable: arcgisClause ? true : false, - queryFormat: arcgisClause ? 'esrijson' : undefined, - layer: name - }; - if (type === 'wms') { - sourceOptions = { params: { LAYERS: name, VERSION: version } } as any; - } - - sourceOptions = ObjectUtils.removeUndefined( - Object.assign({}, sourceOptions, commonSourceOptions) - ); - - this.addedLayers$$.push( - this.layerService - .createAsyncLayer({ - zIndex: zIndex, - visible: visibility, - sourceOptions - }) - .subscribe((l) => { - this.map.addLayer(l); - }) - ); - } - - private computeLayerVisibilityFromUrl( - params: Params, - currentLayerid: string - ): boolean { - const queryParams = params; - let visible = true; - if (!queryParams || !currentLayerid) { - return visible; - } - let visibleOnLayersParams = ''; - let visibleOffLayersParams = ''; - let visiblelayers: string[] = []; - let invisiblelayers: string[] = []; - if (queryParams['visiblelayers']) { - visibleOnLayersParams = queryParams['visiblelayers']; - } - if (queryParams['invisiblelayers']) { - visibleOffLayersParams = queryParams['invisiblelayers']; - } - - /* This order is important because to control whichever - the order of * param. First whe open and close everything.*/ - if (visibleOnLayersParams === '*') { - visible = true; - } - if (visibleOffLayersParams === '*') { - visible = false; - } - - // After, managing named layer by id (context.json OR id from datasource) - visiblelayers = visibleOnLayersParams.split(','); - invisiblelayers = visibleOffLayersParams.split(','); - if ( - visiblelayers.indexOf(currentLayerid) > -1 || - visiblelayers.indexOf(currentLayerid.toString()) > -1 - ) { - visible = true; - } - if ( - invisiblelayers.indexOf(currentLayerid) > -1 || - invisiblelayers.indexOf(currentLayerid.toString()) > -1 - ) { - visible = false; - } - return visible; - } -} diff --git a/src/app/pages/portal/portal.module.ts b/src/app/pages/portal/portal.module.ts deleted file mode 100644 index 11316d6c..00000000 --- a/src/app/pages/portal/portal.module.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDialogModule } from '@angular/material/dialog'; -import { MatIconModule } from '@angular/material/icon'; -import { MatSidenavModule } from '@angular/material/sidenav'; -import { MatTooltipModule } from '@angular/material/tooltip'; - -import { - IgoActionModule, - IgoBackdropModule, - IgoContextMenuModule, - IgoEntityModule, - IgoEntityTableModule, - IgoEntityTablePaginatorModule, - IgoFlexibleModule, - IgoPanelModule, - IgoToolModule, - IgoWorkspaceModule -} from '@igo2/common'; -import { - IgoContextManagerModule, - IgoContextMapButtonModule -} from '@igo2/context'; -import { IgoCoreModule } from '@igo2/core'; -import { - IgoFeatureModule, - IgoGeoWorkspaceModule, - IgoImportExportModule, - IgoLayerModule, - IgoMapModule, - IgoQueryModule, - IgoSearchModule -} from '@igo2/geo'; -import { IgoAppSearchBarModule, IgoIntegrationModule } from '@igo2/integration'; - -import { PortalComponent } from './portal.component'; - -@NgModule({ - imports: [ - IgoLayerModule, - IgoAppSearchBarModule, - CommonModule, - MatTooltipModule, - MatButtonModule, - MatIconModule, - MatSidenavModule, - MatDialogModule, - IgoCoreModule, - IgoFeatureModule, - IgoImportExportModule, - IgoMapModule, - IgoQueryModule.forRoot(), - IgoSearchModule.forRoot(), - IgoActionModule, - IgoWorkspaceModule, - IgoEntityModule, - IgoGeoWorkspaceModule, - IgoPanelModule, - IgoToolModule, - IgoContextMenuModule, - IgoBackdropModule, - IgoFlexibleModule, - IgoIntegrationModule, - IgoContextManagerModule, - IgoContextMapButtonModule, - IgoEntityTableModule, - IgoEntityTablePaginatorModule, - PortalComponent - ], - exports: [PortalComponent] -}) -export class PortalModule {} diff --git a/src/app/pages/portal/portal.theming.scss b/src/app/pages/portal/portal.theming.scss deleted file mode 100644 index 18e5df5a..00000000 --- a/src/app/pages/portal/portal.theming.scss +++ /dev/null @@ -1,5 +0,0 @@ -@use './panels/panels.theming' as panels; - -@mixin themes($theme) { - @include panels.themes($theme); -} diff --git a/src/app/pages/portal/portal.variables.scss b/src/app/pages/portal/portal.variables.scss deleted file mode 100644 index 42917b55..00000000 --- a/src/app/pages/portal/portal.variables.scss +++ /dev/null @@ -1,66 +0,0 @@ -@import '@igo2/core/partial/media'; -@import 'variables'; - -$app-mobile-min-space-right: 40px; -$app-background-color: rgb(255, 255, 255); - -$menu-height: 72px; -$menu-height-mobile: 40px; -$header-height: 72px; -$header-height-mobile: 72px; -$footer-height: 29px; -$search-bar-height: 60px; - -$portal-height-hasHeader-mobile: calc(100% - #{$header-height-mobile}); -$portal-height-hasFooter-hasHeader-mobile: calc( - 100% - #{$footer-height} - #{$header-height-mobile} -); -$portal-height-hasMenu-hasHeader-mobile: calc( - 100% - #{$header-height-mobile} - #{$menu-height-mobile} -); -$portal-height-hasMenu-hasHeader-hasFooter-mobile: 300px; //calc( 100% - #{$footer-height} - #{$header-height-mobile} - #{$menu-height-mobile} ); -$portal-height-hasMenu-mobile: calc(100% - #{$menu-height-mobile}); -$portal-height-hasFooter: calc(100% - #{$footer-height}); -$portal-height-hasHeader: calc(100% - #{$header-height}); -$portal-height-hasMenu: calc(100% - #{$menu-height}); -$portal-height-hasMenu-hasHeader: calc( - 100% - #{$header-height} - #{$menu-height} -); -$portal-height-hasFooter-hasHeader: calc( - 100% - #{$footer-height} - #{$header-height} -); -$portal-height-hasFooter-hasHeader-hasMenu: calc( - 100% - #{$footer-height} - #{$header-height} - #{$menu-height} -); - -$app-sidenav-width-mobile: calc( - 100% - #{$app-mobile-min-space-right} - #{$igo-margin} -); -$search-bar-left: $igo-icon-size; -$portal-left: 16px; -$app-sidenav-width: calc(400px); -$search-bar-width: calc(#{$app-sidenav-width} - #{$search-bar-left}); -$search-bar-width-mobile: calc( - 100% - #{$app-mobile-min-space-right} - #{$search-bar-left} - - (3 * #{$igo-margin}) -); -$app-sidenav-margin-top: 50px; -$app-sidenav-height: calc(100% - #{$app-sidenav-margin-top}); - -$app-footer-height: 48px; -$app-mobile-min-space-right: 40px; - -$app-sidenav-margin-top: 60px; -$app-sidenav-height: calc(100% - #{$footer-height}); -$app-sidenav-content-height: calc( - 100% - #{$app-sidenav-margin-top} - #{$footer-height} -); -$app-sidenav-width: 400px; -$app-sidenav-width-mobile: calc( - 100% - #{$app-mobile-min-space-right} - #{$igo-margin} -); - -//$search-bar-left: $igo-icon-size + $igo-margin; -$search-bar-left: 20px; - -$app-footer-height: 49px; diff --git a/src/app/services/pwa.service.ts b/src/app/services/pwa.service.ts deleted file mode 100644 index 3a381414..00000000 --- a/src/app/services/pwa.service.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { Injectable } from '@angular/core'; -import { SwUpdate } from '@angular/service-worker'; - -import { ConfirmDialogService } from '@igo2/common'; -import { LanguageService } from '@igo2/core/language'; - -import { interval } from 'rxjs'; -import { skip, tap } from 'rxjs/operators'; - -@Injectable({ - providedIn: 'root' -}) -export class PwaService { - private confirmOpened: boolean = false; - constructor( - private updates: SwUpdate, - private languageService: LanguageService, - private confirmDialogService: ConfirmDialogService - ) { - if (updates.isEnabled) { - this.handleVersionUpdates(); - } - } - - checkForUpdates() { - if (this.updates.isEnabled) { - interval(60 * 1000 * 2) - .pipe(skip(1)) - .subscribe(async () => { - try { - const updateFound = await this.updates.checkForUpdate(); - console.log( - updateFound - ? 'A new version is available.' - : 'Already on the latest version.' - ); - } catch (err) { - console.error('Failed to check for updates:', err); - } - }); - } - } - - private modalUpdatePWA() { - if (this.confirmOpened) { - return; - } - const title = this.languageService.translate.instant( - 'pwa.new-version-title' - ); - const body = this.languageService.translate.instant('pwa.new-version'); - const message = `${title} ${body}`; - this.confirmDialogService - .open(message) - .pipe(tap(() => (this.confirmOpened = true))) - .subscribe((confirm) => { - if (confirm) { - this.confirmOpened = false; - if (window.navigator.onLine) { - document.location.reload(); - } else { - alert( - `Hors-ligne / Offline. Vous devez être en ligne pour mettre à jour l\'application. You must be online to update the application.` - ); - setTimeout(() => { - this.modalUpdatePWA(); - }, 900000); - } - } - }); - } - - private handleVersionUpdates(): void { - this.updates.versionUpdates.subscribe((evt) => { - switch (evt.type) { - case 'VERSION_DETECTED': - console.log(`Downloading new app version: ${evt.version.hash}`); - break; - case 'VERSION_READY': - console.log(`Current app version: ${evt.currentVersion.hash}`); - console.log( - `New app version ready for use: ${evt.latestVersion.hash}` - ); - this.modalUpdatePWA(); - break; - case 'VERSION_INSTALLATION_FAILED': - console.error( - `Failed to install app version '${evt.version.hash}': ${evt.error}` - ); - break; - } - }); - } -} diff --git a/src/favicon.ico b/src/assets/favicon.ico similarity index 100% rename from src/favicon.ico rename to src/assets/favicon.ico diff --git a/src/config/config.json b/src/config/config.json index 6e5d9449..2120a726 100644 --- a/src/config/config.json +++ b/src/config/config.json @@ -1,28 +1,16 @@ { - "title": "IGO", + "title": "Angular - Système d'assemblage gouvernemental", "header": { - "hasHeader": true, - "logo": "assets/images/signature-PIV.svg", - "logoPrint": "assets/images/signature-PIV.svg" + "logo": { + "primary": "assets/images/signature-PIV.svg", + "print": "assets/images/signature-PIV.svg" + } }, "hasMenu": false, "hasFooter": true, "hasLegendButton": true, "legendInPanel": true, "showRotationButtonIfNoRotation": true, - "geolocate": { - "button": { - "visible": true - }, - "basic": true, - "followPosition": false, - "activateDefault": false - }, - "hasFeatureEmphasisOnSelection": true, - "addFeaturetoLayer": false, - "useStaticIcon": false, - "customFeatureTitle": false, - "customFeatureDetails": false, "searchBar": { "showSearchBar": true, "showSearchButton": true @@ -30,10 +18,7 @@ "importExport": { "url": "/apis/ogre" }, - "mobileBreakPoint": "(min-width: 768px)", "language": { - "prefix": [ - "./locale/" - ] + "prefix": ["./locale/"] } -} \ No newline at end of file +} diff --git a/src/contexts/_default.json b/src/contexts/_default.json index f2282c3a..66f95d8d 100644 --- a/src/contexts/_default.json +++ b/src/contexts/_default.json @@ -55,9 +55,7 @@ { "title": "Group 1 Title", "name": "1", - "ids": [ - "id1" - ] + "ids": ["id1"] } ], "bundles": [ @@ -106,4 +104,4 @@ } } ] -} \ No newline at end of file +} diff --git a/src/environments/environment.github.ts b/src/environments/environment.github.ts index 84b92c54..7a9045bb 100644 --- a/src/environments/environment.github.ts +++ b/src/environments/environment.github.ts @@ -9,9 +9,6 @@ export const environment: AppEnvironmentOptions = { enabled: true, promote: true, manifestPath: './config/github.webmanifest' - }, - pwa: { - enabled: false } }, language: { diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index 87be79df..dd6397cc 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,16 +1,47 @@ -import { AppEnvironmentOptions } from './environnement.interface'; +import { EnvironmentOptions } from './environnement.interface'; -export const environment: AppEnvironmentOptions = { +export const environment: EnvironmentOptions = { production: true, + title: "Angular - Système d'assemblage gouvernemental", + header: { + logo: { + primary: 'assets/images/signature-PIV.svg', + print: 'assets/images/signature-PIV.svg' + }, + options: { + contactUs: { + label: 'header.contactUs', + redirectionRoute: 'contact-us' + }, + language: { + choices: [ + { + label: 'English', + key: 'en' + }, + { + label: 'Francais', + key: 'fr' + } + ], + default: 'fr' + } + } + }, + navigation: { + options: { + title: { + suffix: 'IGO', + separator: '·' + } + } + }, igo: { app: { forceCoordsNA: true, install: { enabled: false, promote: false - }, - pwa: { - enabled: false } }, language: { diff --git a/src/environments/environment.pwa.ts b/src/environments/environment.pwa.ts deleted file mode 100644 index 60f707da..00000000 --- a/src/environments/environment.pwa.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { environment as prodEnv } from './environment.github'; - -if (!prodEnv.igo.app.pwa) { - prodEnv.igo.app.pwa = {}; -} -prodEnv.igo.app.pwa.enabled = true; -prodEnv.igo.app.install.enabled = true; -prodEnv.igo.app.install.promote = true; -prodEnv.igo.app.install.manifestPath = undefined; - -export const environment = prodEnv; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index b0aaa0ec..271e9b44 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -2,20 +2,52 @@ // The build system defaults to the dev environment which uses `environment.ts`, but if you do // `ng build --env=prod` then `environment.prod.ts` will be used instead. // The list of which env maps to which file can be found in `.angular-cli.json`. -import { AppEnvironmentOptions } from './environnement.interface'; +import { EnvironmentOptions } from './environnement.interface'; -export const environment: AppEnvironmentOptions = { +export const environment: EnvironmentOptions = { production: false, - igo: { - app: { - forceCoordsNA: true, - install: { - enabled: false, - promote: false + title: "Angular - Système d'assemblage gouvernemental", + header: { + logo: { + primary: 'assets/images/signature-PIV.svg', + print: 'assets/images/signature-PIV.svg' + }, + options: { + contactUs: { + label: 'header.contactUs', + redirectionRoute: 'contact-us' }, - pwa: { - enabled: false + language: { + choices: [ + { + label: 'English', + key: 'en' + }, + { + label: 'Francais', + key: 'fr' + } + ], + default: 'fr' } + } + }, + navigation: { + options: { + title: { + suffix: 'IGO', + separator: '·' + } + } + }, + igo: { + geolocate: { + button: { + visible: true + }, + basic: true, + followPosition: false, + activateDefault: false }, language: { prefix: ['./locale/'] @@ -53,10 +85,8 @@ export const environment: AppEnvironmentOptions = { order: 2, params: { limit: '5' - }, - settings: [] + } }, - coordinatesreverse: {}, icherchereverse: { searchUrl: '/apis/terrapi', order: 3, diff --git a/src/environments/environnement.interface.ts b/src/environments/environnement.interface.ts index 53e7acc7..9fe9c9df 100644 --- a/src/environments/environnement.interface.ts +++ b/src/environments/environnement.interface.ts @@ -1,32 +1,26 @@ import { AllEnvironmentOptions } from '@igo2/integration'; -import { EnvironmentOptions as IntegrationEnvironmentOptions } from '@igo2/integration'; - -import { MapOverlay } from 'src/app/pages/portal/map-overlay/map-overlay.interface'; - -export interface AppEnvironmentOptions extends IntegrationEnvironmentOptions { - igo: EnvironmentOptions; -} +import { IHeaderConfig, INavigationConfig } from '@igo2/sdg'; +import { MapOverlay } from '@igo2/sdg/geo'; export interface EnvironmentOptions extends AllEnvironmentOptions { - header?: { - hasHeader?: boolean; - logo?: string; - logoPrint?: string; - }; + production: boolean; + title: string; + description?: string; + header: IHeaderConfig; + navigation?: INavigationConfig; hasFooter?: boolean; + /** Que signifie hasMenu, définir son objectif et son comportement */ hasMenu?: boolean; - title?: string; - theme?: string; // enum? - description?: string; + // Exemple de config potentielle: + // map: { + // rotation: { + // alwaysShow: true; + // } + // } mapOverlay?: MapOverlay[]; showRotationButtonIfNoRotation?: boolean; - hasFeatureEmphasisOnSelection?: boolean; - addFeaturetoLayer?: boolean; - customFeatureDetails?: string; - customFeatureTitle?: string; - queryOnlyOne?: boolean; useStaticIcon?: boolean; legendInPanel?: boolean; - mobileBreakPoint?: string; hasLegendButton?: boolean; + igo: AllEnvironmentOptions; } diff --git a/src/index.html b/src/index.html index 3e4197a0..ad038c4e 100644 --- a/src/index.html +++ b/src/index.html @@ -9,28 +9,22 @@ name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1.0, user-scalable=0" /> - + + - - - - - diff --git a/src/karma.conf.js b/src/karma.conf.js deleted file mode 100644 index 2e5b211e..00000000 --- a/src/karma.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client: { - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - coverageReporter: { - dir: require('path').join(__dirname, '../coverage'), - reporters: ['html', 'lcovonly'], - fixWebpackSourcePaths: true - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false - }); -}; diff --git a/src/locale/en.json b/src/locale/en.json index bf65a917..3af689cd 100644 --- a/src/locale/en.json +++ b/src/locale/en.json @@ -24,7 +24,7 @@ "name": "Search result" }, "searchBar": "Search", - "sidePanel": { + "sidenav": { "close": "Hide panel", "open": "Open panel" }, @@ -45,12 +45,6 @@ "close": "Close filter panel", "open": "Open filter panel" }, - "pwa": { - "new-version-title": "New version available. ", - "new-version": "Do you want to reload the app?", - "data-download-start": "Downloading data for offline use. Please don't leave the current app.", - "data-download-completed": "Offline data download completed" - }, "igo": { "integration": { "searchResultsTool": { @@ -68,4 +62,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/locale/fr.json b/src/locale/fr.json index 989e31d9..3ea456fd 100644 --- a/src/locale/fr.json +++ b/src/locale/fr.json @@ -41,16 +41,10 @@ "tooltip": "Personnalisez ce template, même par couche avec une condition sous feature.meta.id ou autres metadatas" }, "searchBar": "Faire une recherche", - "sidePanel": { + "sidenav": { "close": "Masquer le panneau", "open": "Ouvrir le panneau" }, - "pwa": { - "new-version-title": "Une nouvelle version de l'application est disponible. ", - "new-version": "Voulez-vous recharger l'application?", - "data-download-start": "Téléchargement des données pour utilisation hors-ligne. Veuillez ne pas quitter.", - "data-download-completed": "Téléchargement des données hors-ligne terminé" - }, "igo": { "integration": { "searchResultsTool": { @@ -68,4 +62,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/main.ts b/src/main.ts index b834c9a9..7b32d292 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,73 +1,14 @@ -import { enableProdMode, importProvidersFrom } from '@angular/core'; -import { MatTooltipDefaultOptions } from '@angular/material/tooltip'; -import { BrowserModule, bootstrapApplication } from '@angular/platform-browser'; -import { provideAnimations } from '@angular/platform-browser/animations'; -import { provideRouter } from '@angular/router'; -import { ServiceWorkerModule } from '@angular/service-worker'; - -import { IgoSpinnerModule, IgoStopPropagationModule } from '@igo2/common'; -import { provideConfigOptions } from '@igo2/core/config'; -import { provideRootTranslation } from '@igo2/core/language'; -import { RouteService } from '@igo2/core/route'; -import { - provideCadastreSearchSource, - provideCoordinatesReverseSearchSource, - provideIChercheReverseSearchSource, - provideIChercheSearchSource, - provideNominatimSearchSource, - provideOptionsApi, - provideStoredQueriesSearchSource, - provideStyleListOptions -} from '@igo2/geo'; +import { enableProdMode } from '@angular/core'; +import { bootstrapApplication } from '@angular/platform-browser'; import { AppComponent } from './app/app.component'; -import { PortalModule } from './app/pages'; -import { HeaderModule } from './app/pages/header/header.module'; -import { MenuModule } from './app/pages/menu/menu.module'; +import { appConfig } from './app/app.config'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } -export const defaultTooltipOptions: MatTooltipDefaultOptions = { - showDelay: 500, - hideDelay: 0, - touchendHideDelay: 0, - disableTooltipInteractivity: true -}; - -bootstrapApplication(AppComponent, { - providers: [ - importProvidersFrom( - BrowserModule, - IgoSpinnerModule, - IgoStopPropagationModule, - PortalModule, - HeaderModule, - MenuModule, - ServiceWorkerModule.register('ngsw-worker.js', { - enabled: environment.igo.app.pwa.enabled, - registrationStrategy: 'registerWithDelay:5000' - }) - ), - provideConfigOptions({ - default: environment.igo, - path: './config/config.json' - }), - RouteService, - provideNominatimSearchSource(), - provideIChercheSearchSource(), - provideIChercheReverseSearchSource(), - provideCoordinatesReverseSearchSource(), - provideStoredQueriesSearchSource(), - provideOptionsApi(), - provideCadastreSearchSource(), - provideRootTranslation(), - provideStyleListOptions({ - path: './assets/list-style.json' - }), - provideAnimations(), - provideRouter([]) - ] -}).catch((err) => console.log(err)); +bootstrapApplication(AppComponent, appConfig).catch((err) => + console.error(err) +); diff --git a/src/manifest.webmanifest b/src/manifest.webmanifest deleted file mode 100644 index 32d0a6dd..00000000 --- a/src/manifest.webmanifest +++ /dev/null @@ -1,62 +0,0 @@ -{ - "id": "igo2QuebecDemoPWA", - "name": "IGO2-Québec - APP", - "short_name": "IGO2-Québec", - "description": "IGO2-Québec installable app", - "theme_color": "#1976d2", - "background_color": "#fafafa", - "display": "standalone", - "scope": "./", - "start_url": "./", - "orientation": "any", - "icons": [ - { - "src": "assets/icons/icon-72x72.png", - "sizes": "72x72", - "type": "image/png", - "purpose": "maskable any" - }, - { - "src": "assets/icons/icon-96x96.png", - "sizes": "96x96", - "type": "image/png", - "purpose": "maskable any" - }, - { - "src": "assets/icons/icon-128x128.png", - "sizes": "128x128", - "type": "image/png", - "purpose": "maskable any" - }, - { - "src": "assets/icons/icon-144x144.png", - "sizes": "144x144", - "type": "image/png", - "purpose": "maskable any" - }, - { - "src": "assets/icons/icon-152x152.png", - "sizes": "152x152", - "type": "image/png", - "purpose": "maskable any" - }, - { - "src": "assets/icons/icon-192x192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "maskable any" - }, - { - "src": "assets/icons/icon-384x384.png", - "sizes": "384x384", - "type": "image/png", - "purpose": "maskable any" - }, - { - "src": "assets/icons/icon-512x512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "maskable any" - } - ] -} \ No newline at end of file diff --git a/src/polyfills.ts b/src/polyfills.ts index 955c454a..84991457 100644 --- a/src/polyfills.ts +++ b/src/polyfills.ts @@ -2,16 +2,11 @@ * BROWSER POLYFILLS * -/** Evergreen browsers require these. **/ -import 'core-js/es/reflect'; - /*************************************************************************************************** * Zone JS is required by Angular itself. */ import 'zone.js'; -// Included with Angular CLI. - /*************************************************************************************************** * APPLICATION IMPORTS */ diff --git a/src/style/breakpoints.scss b/src/style/breakpoints.scss deleted file mode 100644 index d99ff452..00000000 --- a/src/style/breakpoints.scss +++ /dev/null @@ -1,57 +0,0 @@ -@use 'sass:map'; - -// There is no standard for breakpoints for the Quebec.ca theme -// This is the Material breakpoint design by devices -$device-breakpoints: ( - mobile: ( - max: 599px - ), - tablet: ( - min: 600px, - max: 1239px - ), - laptop: ( - min: 1240px, - max: 1439px - ), - desktop: ( - min: 1440px - ) -); - -// Source: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_breakpoints.scss -@function breakpoint-min($name, $breakpoints: $device-breakpoints) { - $min: map.get($breakpoints, $name, min); - @return if($min != 0, $min, null); -} - -@function breakpoint-max($name, $breakpoints: $device-breakpoints) { - $max: map.get($breakpoints, $name, max); - @return if($max and $max > 0, $max, null); -} - -// Media of at least the minimum breakpoint width. No query for the smallest breakpoint. -// Makes the @content apply to the given breakpoint and wider. -@mixin media-breakpoint-up($name, $breakpoints: $device-breakpoints) { - $min: breakpoint-min($name, $breakpoints); - @if $min { - @media (min-width: $min) { - @content; - } - } @else { - @content; - } -} - -// Media of at most the maximum breakpoint width. No query for the largest breakpoint. -// Makes the @content apply to the given breakpoint and narrower. -@mixin media-breakpoint-down($name, $breakpoints: $device-breakpoints) { - $max: breakpoint-max($name, $breakpoints); - @if $max { - @media (max-width: $max) { - @content; - } - } @else { - @content; - } -} diff --git a/src/style/layout.scss b/src/style/layout.scss deleted file mode 100644 index ca7a1e9c..00000000 --- a/src/style/layout.scss +++ /dev/null @@ -1,39 +0,0 @@ -// Include parts of Bootstrap -// https://getbootstrap.com/docs/5.2/customize/sass/ - -// 1. Include functions first (so you can manipulate colors, SVGs, calc, etc) -@import '../../node_modules/bootstrap/scss/functions'; - -// 2. Include any default variable overrides here -$enable-dark-mode: false; -$grid-gutter-width: 2rem; -$container-max-widths: ( - sm: 576px, - md: 768px, - lg: 992px, - xl: 1200px, - xxl: 1320px -); -$navbar-nav-link-padding-x: 16px; -$navbar-nav-link-padding-y: 16px; - -// 3. Include remainder of required Bootstrap stylesheets -@import '../../node_modules/bootstrap/scss/variables'; - -// 4. Include any default map overrides here - -// 5. Include remainder of required parts -@import '../../node_modules/bootstrap/scss/maps'; -@import '../../node_modules/bootstrap/scss/mixins'; -@import '../../node_modules/bootstrap/scss/root'; - -// 6. Optionally include any other parts as needed -@import '../../node_modules/bootstrap/scss/utilities'; -@import '../../node_modules/bootstrap/scss/containers'; -@import '../../node_modules/bootstrap/scss/grid'; -@import '../../node_modules/bootstrap/scss/navbar'; - -// 7. Optionally include utilities API last to generate classes based on the Sass map in `_utilities.scss` -@import '../../node_modules/bootstrap/scss/utilities/api'; - -// 8. Add additional custom code here diff --git a/src/style/partial/variables.scss b/src/style/partial/variables.scss deleted file mode 100644 index 4464f1e6..00000000 --- a/src/style/partial/variables.scss +++ /dev/null @@ -1,45 +0,0 @@ -@import '@igo2/core/partial/core.variables'; - -/*** Generic ***/ -$app-background-color: rgb(255, 255, 255); -$app-icon-button-width: 40px; -$igo-margin: 4px; -$app-border-width: 1px; -$app-border-style: solid; -$app-border-color: rgba(0, 0, 0, 0.2); - -%border-box { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; -} - -%bordered-top { - border-top: $app-border-width $app-border-style $app-border-color; -} - -%bordered-bottom { - border-bottom: $app-border-width $app-border-style $app-border-color; -} - -%bordered-left { - border-left: $app-border-width $app-border-style $app-border-color; -} - -%bordered-right { - border-right: $app-border-width $app-border-style $app-border-color; -} - -%box-shadowed { - -moz-box-shadow: 0px 0px 2px 0px #dddddd; - -webkit-box-shadow: 0px 0px 2px 0px #dddddd; - -o-box-shadow: 0px 0px 2px 0px #dddddd; - box-shadow: 0px 0px 2px 0px #dddddd; -} - -%box-shadowed-bottom-right { - -moz-box-shadow: 2px 2px 2px 0px #dddddd; - -webkit-box-shadow: 2px 2px 2px 0px #dddddd; - -o-box-shadow: 2px 2px 2px 0px #dddddd; - box-shadow: 2px 2px 2px 0px #dddddd; -} diff --git a/src/styles.scss b/src/styles.scss index da69588c..d1a655c3 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,9 +1,13 @@ @use '@igo2/core/all-style'; -@use '@igo2/core/layout' as igo-layout; -@use 'style/layout'; +@use '@igo2/sdg/layout'; @use 'theme/theme.scss'; +body, +html { + height: 100%; +} + body { margin: 0; overflow: hidden; @@ -34,3 +38,7 @@ mat-icon.lnr { font-size: 18px; line-height: 24px; } + +pre { + white-space: pre-wrap; +} diff --git a/src/theme/qcca/_index.scss b/src/theme/qcca/_index.scss deleted file mode 100644 index d4a447a0..00000000 --- a/src/theme/qcca/_index.scss +++ /dev/null @@ -1,2 +0,0 @@ -@forward './base'; -@forward './components'; diff --git a/src/theme/qcca/base/_index.scss b/src/theme/qcca/base/_index.scss deleted file mode 100644 index 43ff513c..00000000 --- a/src/theme/qcca/base/_index.scss +++ /dev/null @@ -1,4 +0,0 @@ -@forward './breakpoints'; -@forward './colors' as colors-*; -@forward './palette'; -@forward './typography'; diff --git a/src/theme/qcca/base/breakpoints.scss b/src/theme/qcca/base/breakpoints.scss deleted file mode 100644 index d99ff452..00000000 --- a/src/theme/qcca/base/breakpoints.scss +++ /dev/null @@ -1,57 +0,0 @@ -@use 'sass:map'; - -// There is no standard for breakpoints for the Quebec.ca theme -// This is the Material breakpoint design by devices -$device-breakpoints: ( - mobile: ( - max: 599px - ), - tablet: ( - min: 600px, - max: 1239px - ), - laptop: ( - min: 1240px, - max: 1439px - ), - desktop: ( - min: 1440px - ) -); - -// Source: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_breakpoints.scss -@function breakpoint-min($name, $breakpoints: $device-breakpoints) { - $min: map.get($breakpoints, $name, min); - @return if($min != 0, $min, null); -} - -@function breakpoint-max($name, $breakpoints: $device-breakpoints) { - $max: map.get($breakpoints, $name, max); - @return if($max and $max > 0, $max, null); -} - -// Media of at least the minimum breakpoint width. No query for the smallest breakpoint. -// Makes the @content apply to the given breakpoint and wider. -@mixin media-breakpoint-up($name, $breakpoints: $device-breakpoints) { - $min: breakpoint-min($name, $breakpoints); - @if $min { - @media (min-width: $min) { - @content; - } - } @else { - @content; - } -} - -// Media of at most the maximum breakpoint width. No query for the largest breakpoint. -// Makes the @content apply to the given breakpoint and narrower. -@mixin media-breakpoint-down($name, $breakpoints: $device-breakpoints) { - $max: breakpoint-max($name, $breakpoints); - @if $max { - @media (max-width: $max) { - @content; - } - } @else { - @content; - } -} diff --git a/src/theme/qcca/base/colors.scss b/src/theme/qcca/base/colors.scss deleted file mode 100644 index 1598b2e6..00000000 --- a/src/theme/qcca/base/colors.scss +++ /dev/null @@ -1,40 +0,0 @@ -@use 'sass:map'; - -// https://design.quebec.ca/bases/couleurs#c118192 -$colors: ( - blue: ( - light: #dae6f0, - light-2: #4a98d9, - normal: #1472bf, - normal-piv: #095797, - medium: #19406c, - dark: #223654 - ), - grey: ( - light: #f1f1f2, - light-2: #c5cad2, - normal: #8893a2, - medium: #6b778a, - dark: #4e5662 - ), - red: ( - pink-light: #ffdbd6, - pink: #e58271, - normal: #cb381f, - dark: #692519 - ), - green: ( - light: #d7f0bb, - normal: #4f813d, - dark: #2c4024 - ), - yellow: ( - light: #f8e69a, - normal: #e0ad03, - dark: #ad781c - ) -); - -@function get($color, $name) { - @return map.get($colors, $color, $name); -} diff --git a/src/theme/qcca/base/palette.scss b/src/theme/qcca/base/palette.scss deleted file mode 100644 index f8376293..00000000 --- a/src/theme/qcca/base/palette.scss +++ /dev/null @@ -1,50 +0,0 @@ -@use 'sass:map'; -@use 'sass:color'; -@use './colors'; - -$blue-light: colors.get(blue, light); -$blue-light-2: colors.get(blue, light-2); -$blue-normal: colors.get(blue, normal); -$blue-normal-piv: colors.get(blue, normal-piv); -$blue-medium: colors.get(blue, medium); -$blue-dark: colors.get(blue, dark); - -// Design Quebec colors -$primary: $blue-normal-piv; -$accent: colors.get(red, pink); - -$dark-primary-text: $blue-dark; -$light-primary-text: white; - -$palette: ( - 50: $blue-light, - 100: color.adjust($blue-light-2, $lightness: 20%), - 200: color.adjust($blue-light-2, $lightness: 10%), - 300: $blue-light-2, - 400: $blue-normal, - 500: $primary, - 600: color.adjust($primary, $lightness: -10%), - 700: $blue-medium, - 800: color.adjust($blue-medium, $lightness: -10%), - 900: $blue-dark, - A100: $blue-normal, - A200: color.adjust($blue-normal, $lightness: 10%), - A400: colors.get(grey, light-2), - A700: colors.get(grey, light), - contrast: ( - 50: $dark-primary-text, - 100: $dark-primary-text, - 200: $dark-primary-text, - 300: $dark-primary-text, - 400: $dark-primary-text, - 500: $light-primary-text, - 600: $light-primary-text, - 700: $light-primary-text, - 800: $light-primary-text, - 900: $light-primary-text, - A100: $dark-primary-text, - A200: $light-primary-text, - A400: $light-primary-text, - A700: $light-primary-text - ) -); diff --git a/src/theme/qcca/base/typography/_index.scss b/src/theme/qcca/base/typography/_index.scss deleted file mode 100644 index 51c81c87..00000000 --- a/src/theme/qcca/base/typography/_index.scss +++ /dev/null @@ -1,2 +0,0 @@ -@forward './typography' as typo-*; -@forward './typography.utils'; diff --git a/src/theme/qcca/base/typography/typography.scss b/src/theme/qcca/base/typography/typography.scss deleted file mode 100644 index 3239e694..00000000 --- a/src/theme/qcca/base/typography/typography.scss +++ /dev/null @@ -1,138 +0,0 @@ -@use 'sass:map'; -@use '@angular/material' as mat; -@use '../palette'; -@use '../breakpoints'; -@use './typography.utils' as typo-utils; - -// https://design.quebec.ca/bases/polices-caracteres -// https://design.quebec.ca/bases/niveaux-titres -// https://material.angular.io/guide/typography -$typography: mat.define-typography-config( - $font-family: '"Open Sans", sans-serif', - $headline-1: mat.define-typography-level(110px, 110px, 500), - $headline-2: mat.define-typography-level(54px, 54px, 500), - $headline-3: mat.define-typography-level(43px, 46px, 500), - $headline-4: mat.define-typography-level(32px, 38px, 500), - // h1 - $headline-5: mat.define-typography-level(48px, 56px, bold), - // h2 - $headline-6: mat.define-typography-level(36px, 40px, bold), - // h3 - $subtitle-1: mat.define-typography-level(28px, 32px, bold), - // h4 - $subtitle-2: mat.define-typography-level(21px, 24px, bold), - $body-1: mat.define-typography-level(16px, 24px, 400), - $body-2: mat.define-typography-level(12px, 18px, 400), - $caption: mat.define-typography-level(12px, 18px, 400), - $button: mat.define-typography-level(13px, 13px, 500) -); - -$typography-mobile: mat.define-typography-config( - // h1 - $headline-5: mat.define-typography-level(36px, 40px, bold), - // h2 - $headline-6: mat.define-typography-level(28px, 32px, bold), - // h3 - $subtitle-1: mat.define-typography-level(25px, 32px, bold) -); - -$font-color: map.get(palette.$palette, 900); - -@mixin set-base-styles { - body { - color: $font-color; - } - - a { - word-break: break-word; - overflow-wrap: break-word; - cursor: pointer; - color: palette.$primary; - text-decoration: underline; - background-color: transparent; - } - - p, - ul, - li, - u, - .text { - color: $font-color; - font-size: 16px; - line-height: 24px; - } - - p { - margin-bottom: 24px; - } - - strong { - font-weight: 600; - } - - h1, - h2, - h3, - h4, - h5, - h6, - .h1, - .h2, - .h3, - .h4, - .h5, - .h6 { - font-family: Roboto, sans-serif !important; - color: $font-color; - } - - h1 { - margin-top: 72px !important; - margin-bottom: 32px !important; - - @include typo-utils.title-border; - - @include breakpoints.media-breakpoint-down(tablet) { - margin-top: 48px !important; - margin-bottom: 16px !important; - } - } - - h2 { - margin-top: 48px !important; - margin-bottom: 16px !important; - } - - h3 { - margin-top: 24px !important; - margin-bottom: 16px !important; - } - - // WORKAROUND, mat-typography area of intersection h4 is using mat-body-1 - // https://github.com/angular/components/issues/26351 - h4 { - @include typo-utils.title-level-4; - } - - h4 { - margin-top: 24px !important; - margin-bottom: 8px !important; - } - - h5 { - font-size: 19px !important; - line-height: 24px !important; - } - - h6 { - font-size: 16px !important; - line-height: 20px !important; - } - - h5, - h6 { - font-weight: bold !important; - margin-top: 16px !important; - margin-bottom: 0px !important; - } -} diff --git a/src/theme/qcca/base/typography/typography.utils.scss b/src/theme/qcca/base/typography/typography.utils.scss deleted file mode 100644 index c08d4ff0..00000000 --- a/src/theme/qcca/base/typography/typography.utils.scss +++ /dev/null @@ -1,18 +0,0 @@ -@use '../palette'; - -@mixin title-border { - &:after { - content: ''; - display: block; - margin: 0; - width: 48px; - padding-top: 4px; - border-bottom: 4px solid palette.$accent; - } -} - -@mixin title-level-4 { - font-size: 21px !important; - line-height: 24px !important; - font-weight: bold !important; -} diff --git a/src/theme/qcca/components/_index.scss b/src/theme/qcca/components/_index.scss deleted file mode 100644 index cd50619e..00000000 --- a/src/theme/qcca/components/_index.scss +++ /dev/null @@ -1,10 +0,0 @@ -@use './button'; -@use './dialog'; -@use './form-field'; -@use './input'; -@use './list'; -@use './panel'; -@use './search-bar'; -@use './scrollbar'; - -@forward './_index.theme' as all-component-*; diff --git a/src/theme/qcca/components/_index.theme.scss b/src/theme/qcca/components/_index.theme.scss deleted file mode 100644 index 808aace8..00000000 --- a/src/theme/qcca/components/_index.theme.scss +++ /dev/null @@ -1,5 +0,0 @@ -@use './search-bar.theme' as search-bar; - -@mixin themes($theme) { - @include search-bar.theme($theme); -} diff --git a/src/theme/qcca/components/button.scss b/src/theme/qcca/components/button.scss deleted file mode 100644 index 29c63b56..00000000 --- a/src/theme/qcca/components/button.scss +++ /dev/null @@ -1,24 +0,0 @@ -@use 'sass:map'; -@use '@angular/material' as mat; -@use '../base'; - -$color-500: map.get(base.$palette, 500); - -.mdc-button { - font-size: mat.font-size(base.$typo-typography, body-1) !important; - line-height: mat.line-height(base.$typo-typography, body-1) !important; - font-weight: bold !important; -} - -.mat-mdc-outlined-button { - border: 2px solid currentColor; -} - -.mat-mdc-button-base { - border-radius: 0 !important; -} - -.mat-mdc-raised-button { - color: $color-500 !important; - border-color: $color-500 !important; -} diff --git a/src/theme/qcca/components/dialog.scss b/src/theme/qcca/components/dialog.scss deleted file mode 100644 index 53f07e86..00000000 --- a/src/theme/qcca/components/dialog.scss +++ /dev/null @@ -1,36 +0,0 @@ -@use '../base'; - -.mdc-dialog { - max-width: 600px; - - &__surface { - border-radius: 0 !important; - } - - &__title { - padding-top: 8px !important; // Workaround, this should be 32px but Material apply a default height for the title. - padding-bottom: 24px !important; - - @include base.title-level-4; - @include base.title-border; - } - - &__tile, - &__content, - &__actions { - padding-left: 32px !important; - padding-right: 32px !important; - } - - &__actions { - padding-top: 24px !important; - padding-bottom: 32px !important; - } - - .close-button { - $iconButtonPadding: 8px; - position: absolute; - top: 16px - $iconButtonPadding; - right: 16px - $iconButtonPadding; - } -} diff --git a/src/theme/qcca/components/form-field.scss b/src/theme/qcca/components/form-field.scss deleted file mode 100644 index ae9a0959..00000000 --- a/src/theme/qcca/components/form-field.scss +++ /dev/null @@ -1,5 +0,0 @@ -.mat-mdc-text-field-wrapper, -.mdc-notched-outline__leading, -.mdc-notched-outline__trailing { - border-radius: 0 !important; -} diff --git a/src/theme/qcca/components/input.scss b/src/theme/qcca/components/input.scss deleted file mode 100644 index 505453a2..00000000 --- a/src/theme/qcca/components/input.scss +++ /dev/null @@ -1,6 +0,0 @@ -@use 'sass:map'; -@use '../base'; - -.mat-mdc-input-element { - color: base.colors-get(grey, medium) !important; -} diff --git a/src/theme/qcca/components/list.scss b/src/theme/qcca/components/list.scss deleted file mode 100644 index 612584b6..00000000 --- a/src/theme/qcca/components/list.scss +++ /dev/null @@ -1,24 +0,0 @@ -@use 'sass:map'; -@use '@angular/material' as mat; -@use '../base'; - -// TODO rework this style to be more generic - -igo-search-results-item { - .mdc-list-item__primary-text { - white-space: normal; - overflow: hidden; - text-overflow: ellipsis; - max-height: unset !important; - line-height: 18px !important; - } -} - -igo-list [igolistitem][color='accent'].igo-list-item-selected > mat-list-item { - background-color: map.get(base.$palette, 400); - - h4, - small { - color: map.get(base.$palette, contrast, 500) !important; - } -} diff --git a/src/theme/qcca/components/panel.scss b/src/theme/qcca/components/panel.scss deleted file mode 100644 index 3560fb6c..00000000 --- a/src/theme/qcca/components/panel.scss +++ /dev/null @@ -1,8 +0,0 @@ -@use 'sass:map'; -@use '../base'; - -.igo-panel-header, -.igo-panel-header button, -.igo-panel-title { - color: map.get(base.$palette, contrast, 500) !important; -} diff --git a/src/theme/qcca/components/scrollbar.scss b/src/theme/qcca/components/scrollbar.scss deleted file mode 100644 index 60151fb7..00000000 --- a/src/theme/qcca/components/scrollbar.scss +++ /dev/null @@ -1,15 +0,0 @@ -@use '../base'; - -*::-webkit-scrollbar { - width: 6px; -} - -*::-webkit-scrollbar-track { - box-shadow: inset 0 0 5px base.$blue-light; - border-radius: 10px; -} - -*::-webkit-scrollbar-thumb { - background: base.$blue-normal-piv; - border-radius: 10px; -} diff --git a/src/theme/qcca/components/search-bar.scss b/src/theme/qcca/components/search-bar.scss deleted file mode 100644 index 9828ad01..00000000 --- a/src/theme/qcca/components/search-bar.scss +++ /dev/null @@ -1,41 +0,0 @@ -@use 'sass:map'; -@use '@angular/material' as mat; -@use '../base'; - -igo-search-bar { - // Workaroung, OPEN SANS font add a mysterious 1px for the height - .mat-mdc-form-field-infix { - max-height: 40px; - } - - button[mat-icon-button] { - background-color: map.get(base.$palette, 500); - - &:hover { - background-color: map.get(base.$palette, 400); - } - } - - mat-icon { - color: map.get(base.$palette, contrast, 500); - } -} - -igo-search-results { - igo-collapsible { - .mdc-list-item__primary-text { - color: base.$blue-dark; - font-weight: bold; - } - } - - igo-search-results-item { - .mdc-list-item__primary-text { - font-weight: normal; - } - } - - .mdc-list-item--with-leading-icon .mdc-list-item__start { - color: base.$blue-dark; - } -} diff --git a/src/theme/qcca/components/search-bar.theme.scss b/src/theme/qcca/components/search-bar.theme.scss deleted file mode 100644 index 55de6c27..00000000 --- a/src/theme/qcca/components/search-bar.theme.scss +++ /dev/null @@ -1,29 +0,0 @@ -@use 'sass:map'; -@use '@angular/material' as mat; - -@mixin theme($theme) { - @include density($theme); -} - -@mixin density($theme) { - $density: mat.get-density-config($theme); - - $theme4: map.merge( - $theme, - ( - density: $density - 4 - ) - ); - - $theme2: map.merge( - $theme, - ( - density: $density - 2 - ) - ); - - igo-search-bar { - @include mat.form-field-density($theme4); - @include mat.icon-button-density($theme2); - } -} diff --git a/src/theme/theme.scss b/src/theme/theme.scss index e81bfe05..1d6bf315 100644 --- a/src/theme/theme.scss +++ b/src/theme/theme.scss @@ -1,63 +1,23 @@ @use 'sass:map'; @use '@angular/material' as mat; -@use '@igo2/core' as core; -@use '@igo2/core/theming/all-theme' as igo-all-theme; +@use '@igo2/core/theming/all-theme' as igo2-lib; +@use '@igo2/sdg'; -@use '../app/app.theming' as app; +@use '../app/components/components-theme' as app-components; -@use './qcca'; - -// https://design.quebec.ca/a-propos-systeme-design -$primary: mat.define-palette(qcca.$palette, 500, 400, 700); -$accent: mat.define-palette(qcca.$palette, 400, 100, 700); -$warn: mat.define-palette(qcca.$palette, 800); -$success: mat.define-palette(qcca.$palette, 900); -$background: mat.define-palette(qcca.$palette, 100, 100, 100); -$foreground: mat.define-palette(qcca.$palette, 700, 700, 700); - -$theme: mat.define-light-theme( - ( - color: ( - primary: $primary, - accent: $accent, - warn: $warn, - success: $success, - background: $background - ), - typography: qcca.$typo-typography, - density: 0 - ) -); -$theme: map.merge( - $theme, - ( - foreground: - core.theme-foreground(mat.define-palette(qcca.$palette, 500, 100, 700)) - ) -); +$theme: sdg.$theme; @include mat.core(); -@include mat.typography-hierarchy(qcca.$typo-typography); +@include mat.typography-hierarchy(sdg.$typo-typography); @include mat.all-component-themes($theme); -@include igo-all-theme.all-component-themes($theme); - -@include qcca.all-component-themes($theme); +@include igo2-lib.all-component-themes($theme); +@include sdg.all-component-themes($theme); +@include app-components.themes($theme); -@media (max-width: 1200px) { - @include mat.typography-hierarchy(qcca.$typo-typography-mobile); +@include sdg.breakpoint-down(tablet) { + @include mat.typography-hierarchy(sdg.$typo-typography-mobile); } -@include qcca.typo-set-base-styles(); - -@include app.themes($theme); - -igo-rotation-button, -igo-zoom-button button, -igo-offline-button, -igo-home-extent-button, -igo-baselayers-switcher, -igo-geolocate-button { - @include mat.elevation(2); -} +@include sdg.typo-set-base-styles(); diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json index 72a86dec..420a93e2 100644 --- a/src/tsconfig.app.json +++ b/src/tsconfig.app.json @@ -1,3 +1,4 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ { "extends": "../tsconfig.json", "compilerOptions": { @@ -5,5 +6,5 @@ "types": [] }, "files": ["main.ts", "polyfills.ts"], - "include": ["src/**/*.d.ts"] + "include": ["**/*.d.ts"] } diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json index 70add2d5..607c4c0e 100644 --- a/src/tsconfig.spec.json +++ b/src/tsconfig.spec.json @@ -1,3 +1,4 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ { "extends": "../tsconfig.json", "compilerOptions": { diff --git a/tsconfig.json b/tsconfig.json index c0d1bae5..c78e75bf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,14 +4,29 @@ "baseUrl": "./", "outDir": "./dist/out-tsc", "moduleResolution": "node", - "module": "ES2022", - "target": "ES2022", - "lib": ["ES2022", "dom"], + "module": "ESNext", + "target": "ESNext", + "lib": ["ESNext", "dom"], "declaration": false, "downlevelIteration": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "skipLibCheck": true, - "sourceMap": true + "sourceMap": true, + "paths": { + "@igo2/sdg": [ + "node_modules/@igo2/sdg", + "../../packages/sdg/src/public-api", + ], + "@igo2/sdg/*": [ + "node_modules/@igo2/sdg/*", + "../../packages/sdg/*/src/public-api", + ] + } + }, + "angularCompilerOptions": { + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true } }