From e94bef4351a3e6a6831c7d83f73b4613844e956a Mon Sep 17 00:00:00 2001 From: Shoul Manevitz Date: Tue, 29 Oct 2024 16:18:44 +0200 Subject: [PATCH 01/61] update dependencies to Angular 18 --- angular.json | 231 +++++++++--------- package.json | 54 ++-- .../custom1-module/custom1-module.module.ts | 45 +--- src/app/styles/_customized-theme.scss | 10 +- src/styles.scss | 12 +- webpack.config.js | 31 ++- 6 files changed, 181 insertions(+), 202 deletions(-) diff --git a/angular.json b/angular.json index db56f775..9c8ef9ea 100644 --- a/angular.json +++ b/angular.json @@ -1,120 +1,123 @@ { - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, - "newProjectRoot": "projects", - "projects": { - "custom-module": { - "projectType": "application", - "schematics": { - "@schematics/angular:component": { - "style": "scss" - } - }, - "root": "", - "sourceRoot": "src", - "prefix": "custom", - "architect": { - "build": { - "builder": "ngx-build-plus:browser", - "options": { - "outputPath": "dist/custom-module", - "index": "src/index.html", - "main": "src/main.ts", - "polyfills": [ - "zone.js" - ], - "tsConfig": "tsconfig.app.json", - "inlineStyleLanguage": "scss", - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "src/styles.scss", - { - "input":"src/app/styles/_customized-theme.scss", - "bundleName": "custom", - "inject": false - } - - ], - "scripts": [], - "extraWebpackConfig": "webpack.config.js", - "commonChunk": false - }, - "configurations": { - "production": { - "budgets": [ - { - "type": "initial", - "maximumWarning": "500kb", - "maximumError": "1mb" - }, - { - "type": "anyComponentStyle", - "maximumWarning": "2kb", - "maximumError": "4kb" - } - ], - "outputHashing": "all", - "extraWebpackConfig": "webpack.prod.config.js" - }, - "development": { - "buildOptimizer": false, - "optimization": false, - "vendorChunk": true, - "extractLicenses": false, - "sourceMap": true, - "namedChunks": true - } - }, - "defaultConfiguration": "production" - }, - "serve": { - "builder": "ngx-build-plus:dev-server", - "configurations": { - "production": { - "browserTarget": "custom-module:build:production", - "extraWebpackConfig": "webpack.prod.config.js" - }, - "development": { - "browserTarget": "custom-module:build:development" - } - }, - "defaultConfiguration": "development", - "options": { - "port": 4201, - "publicHost": "http://localhost:4201", - "extraWebpackConfig": "webpack.config.js" - } - }, - "extract-i18n": { - "builder": "ngx-build-plus:extract-i18n", - "options": { - "browserTarget": "custom-module:build", - "extraWebpackConfig": "webpack.config.js" - } + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "custom-module": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "custom", + "architect": { + "build": { + "builder": "ngx-build-plus:browser", + "options": { + "outputPath": "dist/custom-module", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.scss", + { + "input":"src/app/styles/_customized-theme.scss", + "bundleName": "custom", + "inject": false + } + + ], + "scripts": [], + "extraWebpackConfig": "webpack.config.js", + "commonChunk": false + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "1mb" }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "polyfills": [ - "zone.js", - "zone.js/testing" - ], - "tsConfig": "tsconfig.spec.json", - "inlineStyleLanguage": "scss", - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "src/styles.scss" - ], - "scripts": [] - } + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" } + ], + "outputHashing": "all", + "extraWebpackConfig": "webpack.prod.config.js" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "ngx-build-plus:dev-server", + "configurations": { + "production": { + "buildTarget": "custom-module:build:production", + "extraWebpackConfig": "webpack.prod.config.js" + }, + "development": { + "buildTarget": "custom-module:build:development" } + }, + "defaultConfiguration": "development", + "options": { + "port": 4201, + "publicHost": "http://localhost:4201", + "extraWebpackConfig": "webpack.config.js" + } + }, + "extract-i18n": { + "builder": "ngx-build-plus:extract-i18n", + "options": { + "buildTarget": "custom-module:build", + "extraWebpackConfig": "webpack.config.js" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } } + } } -} \ No newline at end of file + }, + "cli": { + "analytics": false + } +} diff --git a/package.json b/package.json index 787afebd..d531988d 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "custom-module", - "version": "1.0.1", + "version": "2.0.0", "scripts": { "ng": "ng", "start": "ng serve", - "start:proxy": "ng serve --proxy-config ./proxy/proxy.conf.mjs", + "start:no-prebundle": "ng serve --prebundle=false", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", @@ -13,44 +13,42 @@ }, "private": true, "dependencies": { - "@angular-architects/module-federation": "^16.0.4", - "@angular/animations": "^16.2.0", - "@angular/cdk": "16.1.3", - "@angular/common": "^16.2.0", - "@angular/compiler": "^16.2.0", - "@angular/core": "^16.2.0", - "@angular/forms": "^16.2.0", - "@angular/material": "16.1.3", - "@angular/material-moment-adapter": "16.1.3", - "@angular/platform-browser": "^16.2.0", - "@angular/platform-browser-dynamic": "^16.2.0", - "@angular/router": "^16.2.0", - "@ngrx/entity": "^16.1.0", - "@ngrx/store": "^16.1.0", - "@ngrx/store-devtools": "^16.1.0", - "@ngx-translate/core": "^14.0.0", - "@ngx-translate/http-loader": "^7.0.0", + "@angular-architects/module-federation": "^18.0.6", + "@angular/animations": "^18.2.8", + "@angular/cdk": "18.2.9", + "@angular/common": "^18.2.8", + "@angular/compiler": "^18.2.8", + "@angular/core": "^18.2.8", + "@angular/forms": "^18.2.8", + "@angular/material": "18.2.9", + "@angular/platform-browser": "^18.2.8", + "@angular/platform-browser-dynamic": "^18.2.8", + "@angular/router": "^18.2.8", + "@ngrx/entity": "^18.1.0", + "@ngrx/store": "^18.1.0", + "@ngrx/store-devtools": "^18.1.0", + "@ngx-translate/core": "^15.0.0", + "@ngx-translate/http-loader": "^8.0.0", "@webcomponents/custom-elements": "^1.6.0", - "archiver": "^7.0.1", "dotenv": "^16.4.5", - "moment": "2.30.1", "rxjs": "~7.8.0", - "tslib": "^2.3.0", - "zone.js": "~0.13.0" + "tslib": "^2.4.1", + "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^16.2.6", - "@angular/cli": "^16.2.6", - "@angular/compiler-cli": "^16.2.0", + "@angular-devkit/build-angular": "^18.2.9", + "@angular/cli": "^18.2.9", + "@angular/compiler-cli": "^18.2.8", "@types/jasmine": "~4.3.0", + "archiver": "^7.0.1", "jasmine-core": "~4.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ngx-build-plus": "^16.0.0", - "typescript": "~5.1.3", + "ngx-build-plus": "^18.0.0", + "typescript": "^5.5.4", "webpack": "^5.88.2", "webpack-cli": "^5.1.4", "webpack-dev-server": "^4.15.1" diff --git a/src/app/custom1-module/custom1-module.module.ts b/src/app/custom1-module/custom1-module.module.ts index 1512460b..b263db11 100644 --- a/src/app/custom1-module/custom1-module.module.ts +++ b/src/app/custom1-module/custom1-module.module.ts @@ -1,10 +1,14 @@ -import {NgModule, CUSTOM_ELEMENTS_SCHEMA, isDevMode, Injector, ApplicationRef, createComponent} from '@angular/core'; +import { + NgModule, + CUSTOM_ELEMENTS_SCHEMA, + isDevMode +} from '@angular/core'; import { CommonModule } from '@angular/common'; import * as utils from './utils'; -import { ViewContainerRef } from '@angular/core'; import {StoreDevtoolsModule} from '@ngrx/store-devtools'; -import {Store, StoreModule} from '@ngrx/store'; +import {StoreModule} from '@ngrx/store'; import * as StateConstants from '../state/state.const'; +import {TranslateModule} from "@ngx-translate/core"; // Define the map @@ -17,30 +21,26 @@ export const selectorComponentMap = new Map([ @NgModule({ declarations: [ - - ], exports: [ ], imports: [ CommonModule, + TranslateModule.forRoot({}), StoreModule.forRoot({}), StoreDevtoolsModule.instrument({ maxAge: StateConstants.MAX_STATE_ACTIONS_IN_HISTORY, logOnly: !isDevMode(), trace: true, traceLimit: StateConstants.MAX_STACK_FRAMES_IN_HISTORY - }) + , connectInZone: true}) ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class Custom1ModuleModule { static utils = utils; // Expose the utilities for consumption - public componentRef :any; - - public beforeSearchButton: any; - constructor(private appRef: ApplicationRef, private viewContainerRef:ViewContainerRef, private injector: Injector, private store : Store ) { + constructor() { console.log('Start constructor of Custom1ModuleModule:' ); } @@ -49,30 +49,9 @@ export class Custom1ModuleModule { * Use componentMapping, selectorComponentMap * @param componentName */ - public getComponentRef(componentName:string ){ - let componentType = selectorComponentMap.get(componentName); - if(componentType) { - - try { - //return componentFactory.create(this.viewContainerRef.parentInjector); - const injector = Injector.create({ - providers: [ - {provide: Store, useValue: this.store}, - {provide: ViewContainerRef, useValue: this.viewContainerRef}, - ], - parent: this.viewContainerRef.injector - }); - return createComponent(componentType, {environmentInjector: this.appRef.injector, elementInjector: injector}) - } catch (e) { - console.error('Cannot get angular component:' + componentType, e); - try { - return new componentType; - }catch (e1){ - console.error('Cannot create angular component:' + componentType, e); - } - } - } + public getComponentRef(componentName:string ){ + return selectorComponentMap.get(componentName); } diff --git a/src/app/styles/_customized-theme.scss b/src/app/styles/_customized-theme.scss index c8184956..319466ae 100644 --- a/src/app/styles/_customized-theme.scss +++ b/src/app/styles/_customized-theme.scss @@ -105,17 +105,17 @@ // warn: $mat-dark-theme-warn, // ) //)); -$primary-palette: mat.define-palette(mat.$cyan-palette, 500); -$accent-palette: mat.define-palette(mat.$amber-palette, A200, A100, A400); -$warn-palette: mat.define-palette(mat.$red-palette, 500); +$primary-palette: mat.m2-define-palette(mat.$m2-pink-palette, 500); +$accent-palette: mat.m2-define-palette(mat.$m2-amber-palette, A200, A100, A400); +$warn-palette: mat.m2-define-palette(mat.$m2-red-palette, 500); -$mat-custom-theme: mat.define-light-theme(( +$mat-custom-theme: mat.m2-define-light-theme(( color: ( primary: $primary-palette, accent: $accent-palette, warn: $warn-palette ), - typography: mat.define-typography-config(), + typography: mat.m2-define-typography-config(), density: 0 )); diff --git a/src/styles.scss b/src/styles.scss index 87b718cd..078853eb 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,14 +1,14 @@ /* You can add global styles to this file, and also import other style files */ -@import '@angular/material/theming'; -@include mat-core(); +@use '@angular/material' as mat; +@include mat.core(); -$primary: mat-palette($mat-indigo); -$accent: mat-palette($mat-pink, A200, A100, A400); -$theme: mat-light-theme(( +$primary: mat.m2-define-palette(mat.$m2-indigo-palette); +$accent: mat.m2-define-palette(mat.$m2-pink-palette, A200, A100, A400); +$theme: mat.m2-define-light-theme(( color: ( primary: $primary, accent: $accent ) )); -@include angular-material-theme($theme); +@include mat.all-component-themes($theme); diff --git a/webpack.config.js b/webpack.config.js index 66aead3d..2e711c5e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -39,10 +39,10 @@ module.exports = { plugins: [ new CopyWebpackPlugin({ patterns: [ - { from: 'src/assets', to: 'assets', - noErrorOnMissing: true, - globOptions: { - ignore: [ + { from: 'src/assets', to: 'assets', + noErrorOnMissing: true, + globOptions: { + ignore: [ "**/.gitkeep", // Make sure this matches exactly the files you want to exclude "**/.*" // This pattern excludes all hidden files ] } } // Adjust the paths as needed @@ -64,19 +64,18 @@ module.exports = { // }, - shared: share({ - "@angular/core": { singleton: true, strictVersion: true, requiredVersion: '^16.1.3' }, - "@angular/common": { singleton: true, strictVersion: true, requiredVersion: '^16.1.3' }, - "@angular/common/http": { singleton: true, strictVersion: true, requiredVersion: '^16.1.3' }, - "@angular/router": { singleton: true, strictVersion: true, requiredVersion: '^16.1.3' }, - '@ngrx/store': { singleton: true, eager: false, requiredVersion: 'auto' }, - '@ngx-translate/core': { singleton: true, eager: false, requiredVersion: 'auto' }, - '@angular/material': { singleton: true, eager: false, requiredVersion: 'auto' }, - "@angular/material-moment-adapter": { singleton: true, strictVersion: true }, - ...sharedMappings.getDescriptors() - }) + shared: share({ + "@angular/core": { singleton: true, strictVersion: false }, + "@angular/common": { singleton: true, strictVersion: false }, + "@angular/common/http": { singleton: true, strictVersion: false }, + "@angular/router": { singleton: true, strictVersion: false }, + '@ngrx/store': { singleton: true, eager: false }, + '@ngx-translate/core': { singleton: true, eager: false}, + '@angular/material': { singleton: true, eager: false }, + ...sharedMappings.getDescriptors() + }) }), sharedMappings.getPlugin() ], -}; +}; \ No newline at end of file From 6d9e432fe9fac4e68edcf470d389029fffef9ed0 Mon Sep 17 00:00:00 2001 From: Shoul Manevitz Date: Tue, 29 Oct 2024 16:28:26 +0200 Subject: [PATCH 02/61] update dependencies to Angular 18 --- package-lock.json | 10006 ++++++++++++++++++++++++-------------------- 1 file changed, 5361 insertions(+), 4645 deletions(-) diff --git a/package-lock.json b/package-lock.json index a8508ee5..37cf3855 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,206 +1,201 @@ { "name": "custom-module", - "version": "1.0.1", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "custom-module", - "version": "1.0.1", + "version": "2.0.0", "dependencies": { - "@angular-architects/module-federation": "^16.0.4", - "@angular/animations": "^16.2.0", - "@angular/cdk": "16.1.3", - "@angular/common": "^16.2.0", - "@angular/compiler": "^16.2.0", - "@angular/core": "^16.2.0", - "@angular/forms": "^16.2.0", - "@angular/material": "16.1.3", - "@angular/material-moment-adapter": "16.1.3", - "@angular/platform-browser": "^16.2.0", - "@angular/platform-browser-dynamic": "^16.2.0", - "@angular/router": "^16.2.0", - "@ngrx/entity": "^16.1.0", - "@ngrx/store": "^16.1.0", - "@ngrx/store-devtools": "^16.1.0", - "@ngx-translate/core": "^14.0.0", - "@ngx-translate/http-loader": "^7.0.0", + "@angular-architects/module-federation": "^18.0.6", + "@angular/animations": "^18.2.8", + "@angular/cdk": "18.2.9", + "@angular/common": "^18.2.8", + "@angular/compiler": "^18.2.8", + "@angular/core": "^18.2.8", + "@angular/forms": "^18.2.8", + "@angular/material": "18.2.9", + "@angular/platform-browser": "^18.2.8", + "@angular/platform-browser-dynamic": "^18.2.8", + "@angular/router": "^18.2.8", + "@ngrx/entity": "^18.1.0", + "@ngrx/store": "^18.1.0", + "@ngrx/store-devtools": "^18.1.0", + "@ngx-translate/core": "^15.0.0", + "@ngx-translate/http-loader": "^8.0.0", "@webcomponents/custom-elements": "^1.6.0", - "archiver": "^7.0.1", "dotenv": "^16.4.5", - "moment": "2.30.1", "rxjs": "~7.8.0", - "tslib": "^2.3.0", - "zone.js": "~0.13.0" + "tslib": "^2.4.1", + "zone.js": "~0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^16.2.6", - "@angular/cli": "^16.2.6", - "@angular/compiler-cli": "^16.2.0", + "@angular-devkit/build-angular": "^18.2.9", + "@angular/cli": "^18.2.9", + "@angular/compiler-cli": "^18.2.8", "@types/jasmine": "~4.3.0", + "archiver": "^7.0.1", "jasmine-core": "~4.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "ngx-build-plus": "^16.0.0", - "typescript": "~5.1.3", + "ngx-build-plus": "^18.0.0", + "typescript": "^5.5.4", "webpack": "^5.88.2", "webpack-cli": "^5.1.4", "webpack-dev-server": "^4.15.1" } }, "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" } }, "node_modules/@angular-architects/module-federation": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@angular-architects/module-federation/-/module-federation-16.0.4.tgz", - "integrity": "sha512-RQmHe7JqkPE4OAmNOxSKgFlGBoxi7Cy9THsbo5Leas8XQ3M2W3q2lBQF0woRNjMj575NaSQ84S7Tq8WvH+KGhw==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular-architects/module-federation/-/module-federation-18.0.6.tgz", + "integrity": "sha512-uI7Yqs8OM4leakD7sdnk2Pt+bIt9nLGbo6xcYGpLoTWpS0OnCQRQJinNCynAL+F+4NEzNToeNSXXKgffDuQtCQ==", + "license": "MIT", "dependencies": { - "@angular-architects/module-federation-runtime": "16.0.4", + "@angular-architects/module-federation-runtime": "18.0.6", "callsite": "^1.0.0", "node-fetch": "^2.6.7", "semver": "^7.3.5", "word-wrap": "^1.2.3" - }, - "peerDependencies": { - "@angular/common": ">=16.0.0", - "@angular/core": ">=16.0.0", - "@angular/platform-browser-dynamic": ">=16.0.0", - "rxjs": ">=6.6.3" } }, "node_modules/@angular-architects/module-federation-runtime": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@angular-architects/module-federation-runtime/-/module-federation-runtime-16.0.4.tgz", - "integrity": "sha512-1qbS109+6Rq41wt0jp8w/to/zn3xY4IhvWlqhaMphZSD6bOZ0s/+MXdVo7p0iljA/lpNFAMVbYvarEpl6bSsjQ==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular-architects/module-federation-runtime/-/module-federation-runtime-18.0.6.tgz", + "integrity": "sha512-rOpuNxg48Lk9ZrNRMcCvMu1D3MhnKPqLw7xhtX8Qva5BOuaQ3gMtBZI4NM5eI8WqPlZNbzVxMNrVzSKaxDApZQ==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { - "@angular/common": ">=16.0.0", - "@angular/core": ">=16.0.0", - "@angular/platform-browser-dynamic": ">=16.0.0" + "@angular/common": ">=18.0.0", + "@angular/core": ">=18.0.0" } }, "node_modules/@angular-devkit/architect": { - "version": "0.1602.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.11.tgz", - "integrity": "sha512-qC1tPL/82gxqCS1z9pTpLn5NQH6uqbV6UNjbkFEQpTwEyWEK6VLChAJsybHHfbpssPS2HWf31VoUzX7RqDjoQQ==", + "version": "0.1802.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", + "integrity": "sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.2.11", + "@angular-devkit/core": "18.2.9", "rxjs": "7.8.1" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/build-angular": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.2.11.tgz", - "integrity": "sha512-yNzUiAeg1WHMsFG9IBg4S/7dsMcEAMYQ1I360ib80c0T/IwRb8pHhOokrl5Mu8zfNqZ/dxH4ItKY1uIMDmuMGQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1602.11", - "@angular-devkit/build-webpack": "0.1602.11", - "@angular-devkit/core": "16.2.11", - "@babel/core": "7.22.9", - "@babel/generator": "7.22.9", - "@babel/helper-annotate-as-pure": "7.22.5", - "@babel/helper-split-export-declaration": "7.22.6", - "@babel/plugin-proposal-async-generator-functions": "7.20.7", - "@babel/plugin-transform-async-to-generator": "7.22.5", - "@babel/plugin-transform-runtime": "7.22.9", - "@babel/preset-env": "7.22.9", - "@babel/runtime": "7.22.6", - "@babel/template": "7.22.5", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.2.11", - "@vitejs/plugin-basic-ssl": "1.0.1", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.9.tgz", + "integrity": "sha512-d4W6t9vBozFUmOP2VvihMcSg/zgr3AvJY6/b7OPuATlK+W3P6tmsqxGIQ6eKc1TxXeu3lWhi14mV2pPykfrwfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1802.9", + "@angular-devkit/build-webpack": "0.1802.9", + "@angular-devkit/core": "18.2.9", + "@angular/build": "18.2.9", + "@babel/core": "7.25.2", + "@babel/generator": "7.25.0", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-transform-async-generator-functions": "7.25.0", + "@babel/plugin-transform-async-to-generator": "7.24.7", + "@babel/plugin-transform-runtime": "7.24.7", + "@babel/preset-env": "7.25.3", + "@babel/runtime": "7.25.0", + "@discoveryjs/json-ext": "0.6.1", + "@ngtools/webpack": "18.2.9", + "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.14", + "autoprefixer": "10.4.20", "babel-loader": "9.1.3", - "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.21.5", - "chokidar": "3.5.3", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.20", - "css-loader": "6.8.1", - "esbuild-wasm": "0.18.17", - "fast-glob": "3.3.1", - "guess-parser": "0.4.22", - "https-proxy-agent": "5.0.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", + "copy-webpack-plugin": "12.0.2", + "critters": "0.0.24", + "css-loader": "7.1.2", + "esbuild-wasm": "0.23.0", + "fast-glob": "3.3.2", + "http-proxy-middleware": "3.0.0", + "https-proxy-agent": "7.0.5", + "istanbul-lib-instrument": "6.0.3", + "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", - "less": "4.1.3", - "less-loader": "11.1.0", + "less": "4.2.0", + "less-loader": "12.2.0", "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.30.1", - "mini-css-extract-plugin": "2.7.6", - "mrmime": "1.0.1", - "open": "8.4.2", + "loader-utils": "3.3.1", + "magic-string": "0.30.11", + "mini-css-extract-plugin": "2.9.0", + "mrmime": "2.0.0", + "open": "10.1.0", "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "2.3.1", - "piscina": "4.0.0", - "postcss": "8.4.31", - "postcss-loader": "7.3.3", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "postcss": "8.4.41", + "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.64.1", - "sass-loader": "13.3.2", - "semver": "7.5.4", - "source-map-loader": "4.0.1", + "sass": "1.77.6", + "sass-loader": "16.0.0", + "semver": "7.6.3", + "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.19.2", - "text-table": "0.2.0", + "terser": "5.31.6", "tree-kill": "1.2.2", - "tslib": "2.6.1", - "vite": "4.5.1", - "webpack": "5.88.2", - "webpack-dev-middleware": "6.1.1", - "webpack-dev-server": "4.15.1", - "webpack-merge": "5.9.0", + "tslib": "2.6.3", + "vite": "5.4.6", + "watchpack": "2.4.1", + "webpack": "5.94.0", + "webpack-dev-middleware": "7.4.2", + "webpack-dev-server": "5.0.4", + "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.18.17" + "esbuild": "0.23.0" }, "peerDependencies": { - "@angular/compiler-cli": "^16.0.0", - "@angular/localize": "^16.0.0", - "@angular/platform-server": "^16.0.0", - "@angular/service-worker": "^16.0.0", + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", + "@web/test-runner": "^0.18.0", + "browser-sync": "^3.0.2", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "karma": "^6.3.0", - "ng-packagr": "^16.0.0", + "ng-packagr": "^18.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.9.3 <5.2" + "typescript": ">=5.4 <5.6" }, "peerDependenciesMeta": { "@angular/localize": { @@ -212,6 +207,12 @@ "@angular/service-worker": { "optional": true }, + "@web/test-runner": { + "optional": true + }, + "browser-sync": { + "optional": true + }, "jest": { "optional": true }, @@ -232,142 +233,303 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/build-webpack": { + "version": "0.1802.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.9.tgz", + "integrity": "sha512-p7xNGo5ZTV/Z0Rk+q2/E68QQLw9VT33kauDh6s010jIeBLrOwMo74JpzXMSFttQo5O4bLKP8IORzIM+0q7Uzjg==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@angular-devkit/architect": "0.1802.9", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^5.0.2" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@discoveryjs/json-ext": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.1.tgz", + "integrity": "sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular-devkit/build-angular/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@angular-devkit/build-angular/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/@angular-devkit/build-angular/node_modules/http-proxy-middleware": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.0.tgz", + "integrity": "sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==", "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.10", + "debug": "^4.3.4", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.5" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/@angular-devkit/build-angular/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/@angular-devkit/build-angular/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/@angular-devkit/build-angular/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": ">= 10.13.0" + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/p-retry": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", + "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/@angular-devkit/build-angular/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", - "dev": true + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "dev": true, + "license": "0BSD" }, - "node_modules/@angular-devkit/build-angular/node_modules/webpack": { - "version": "5.88.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", - "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", + "node_modules/@angular-devkit/build-angular/node_modules/webpack-dev-server": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", + "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.4.0", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "rimraf": "^5.0.5", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.1.0", + "ws": "^8.16.0" }, "bin": { - "webpack": "bin/webpack.js" + "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">=10.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, + "peerDependencies": { + "webpack": "^5.0.0" + }, "peerDependenciesMeta": { + "webpack": { + "optional": true + }, "webpack-cli": { "optional": true } } }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1602.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1602.11.tgz", - "integrity": "sha512-2Au6xRMxNugFkXP0LS1TwNE5gAfGW4g6yxC9P5j5p3kdGDnAVaZRTOKB9dg73i3uXtJHUMciYOThV0b78XRxwA==", + "node_modules/@angular-devkit/build-angular/node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1602.11", - "rxjs": "7.8.1" + "@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": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=12.0.0" }, "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@angular-devkit/core": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.11.tgz", - "integrity": "sha512-u3cEQHqhSMWyAFIaPdRukCJwEUJt7Fy3C02gTlTeCB4F/OnftVFIm2e5vmCqMo9rgbfdvjWj9V+7wWiCpMrzAQ==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.9.tgz", + "integrity": "sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "2.3.1", + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", "rxjs": "7.8.1", "source-map": "0.7.4" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -380,56 +542,452 @@ } } }, + "node_modules/@angular-devkit/core/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@angular-devkit/schematics": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.11.tgz", - "integrity": "sha512-QJ1+ZqVmxhFnIsHnKIA01Ks2ZmzTbctlZT0Wr7cMMFpIhLHlwsMYR+AURRcHJA+s1OBU1jJQfGzTM0s22leVhw==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.9.tgz", + "integrity": "sha512-aIY5/IomDOINGCtFYi77uo0acDpdQNNCighfBBUGEBNMQ1eE3oGNGpLAH/qWeuxJndgmxrdKsvws9DdT46kLig==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.2.11", - "jsonc-parser": "3.2.0", - "magic-string": "0.30.1", + "@angular-devkit/core": "18.2.9", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", "ora": "5.4.1", "rxjs": "7.8.1" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/animations": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.2.12.tgz", - "integrity": "sha512-MD0ElviEfAJY8qMOd6/jjSSvtqER2RDAi0lxe6EtUacC1DHCYkaPrKW4vLqY+tmZBg1yf+6n+uS77pXcHHcA3w==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.8.tgz", + "integrity": "sha512-dMSn2hg70siv3lhP+vqhMbgc923xw6XBUvnpCPEzhZqFHvPXfh/LubmsD5RtqHmjWebXtgVcgS+zg3Gq3jB2lg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "16.2.12" + "@angular/core": "18.2.8" } }, - "node_modules/@angular/cdk": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.1.3.tgz", - "integrity": "sha512-PsBcJSIX6D1w1OhHfcfi21Dug/eBWexlQ1XuU3CkLxC4BLvmpOEtugRKwIhSpaio3RauSaQydvlDHkiQsQbiKw==", + "node_modules/@angular/build": { + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.9.tgz", + "integrity": "sha512-o1hOEM2e6ARy+ck2Pohl0d/RFgbbXTw6/hTLAj3CBKjtqAGStRaVF2UlJjhi+xOxlfsOPuJJc9IpzLBteku+Ag==", + "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.3.0" + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1802.9", + "@babel/core": "7.25.2", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-syntax-import-attributes": "7.24.7", + "@inquirer/confirm": "3.1.22", + "@vitejs/plugin-basic-ssl": "1.1.0", + "browserslist": "^4.23.0", + "critters": "0.0.24", + "esbuild": "0.23.0", + "fast-glob": "3.3.2", + "https-proxy-agent": "7.0.5", + "listr2": "8.2.4", + "lmdb": "3.0.13", + "magic-string": "0.30.11", + "mrmime": "2.0.0", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "rollup": "4.22.4", + "sass": "1.77.6", + "semver": "7.6.3", + "vite": "5.4.6", + "watchpack": "2.4.1" }, - "optionalDependencies": { - "parse5": "^7.1.2" + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/common": "^16.0.0 || ^17.0.0", - "@angular/core": "^16.0.0 || ^17.0.0", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/cdk/node_modules/parse5": { - "version": "7.1.2", + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", + "less": "^4.2.0", + "postcss": "^8.4.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.4 <5.6" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-android-arm64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-darwin-x64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@angular/build/node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@angular/build/node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/build/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular/build/node_modules/rollup": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/@angular/build/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cdk": { + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.9.tgz", + "integrity": "sha512-hV2dXpvy2TLwCsRtI/ZXkb2EoaJiellRr+kbcnKwO15LFoz3mTAOhKtsvu7yOyURkaPiI605qiIZrPP4zLL1qw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^18.0.0 || ^19.0.0", + "@angular/core": "^18.0.0 || ^19.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cdk/node_modules/parse5": { + "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "optional": true, @@ -441,27 +999,27 @@ } }, "node_modules/@angular/cli": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.2.11.tgz", - "integrity": "sha512-NRl95r5uudH2E3pBBS6Z0gCZiShPqXXvjh60Gcku+jJ5W4/QsFi3+emL+qC/k7t78tbGUdlKiX7+tDnOUMBMHw==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.9.tgz", + "integrity": "sha512-ejTIqwvPABwK7MtVmI2qWbEaMhhbHNsq0NPzl1hwLtkrLbjdDrEVv0Wy+gN0xqrT9NyCPl4AmNLz/xuYTzgU5g==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1602.11", - "@angular-devkit/core": "16.2.11", - "@angular-devkit/schematics": "16.2.11", - "@schematics/angular": "16.2.11", + "@angular-devkit/architect": "0.1802.9", + "@angular-devkit/core": "18.2.9", + "@angular-devkit/schematics": "18.2.9", + "@inquirer/prompts": "5.3.8", + "@listr2/prompt-adapter-inquirer": "2.0.15", + "@schematics/angular": "18.2.9", "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "ini": "4.1.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", - "npm-package-arg": "10.1.0", - "npm-pick-manifest": "8.0.1", - "open": "8.4.2", - "ora": "5.4.1", - "pacote": "15.2.0", - "resolve": "1.22.2", - "semver": "7.5.4", + "ini": "4.1.3", + "jsonc-parser": "3.3.1", + "listr2": "8.2.4", + "npm-package-arg": "11.0.3", + "npm-pick-manifest": "9.1.0", + "pacote": "18.0.6", + "resolve": "1.22.8", + "semver": "7.6.3", "symbol-observable": "4.0.0", "yargs": "17.7.2" }, @@ -469,38 +1027,53 @@ "ng": "bin/ng.js" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@angular/common": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.2.12.tgz", - "integrity": "sha512-B+WY/cT2VgEaz9HfJitBmgdk4I333XG/ybC98CMC4Wz8E49T8yzivmmxXB3OD6qvjcOB6ftuicl6WBqLbZNg2w==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.8.tgz", + "integrity": "sha512-TYsKtE5nVaIScWSLGSO34Skc+s3hB/BujSddnfQHoNFvPT/WR0dfmdlpVCTeLj+f50htFoMhW11tW99PbK+whQ==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "16.2.12", + "@angular/core": "18.2.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.2.12.tgz", - "integrity": "sha512-6SMXUgSVekGM7R6l1Z9rCtUGtlg58GFmgbpMCsGf+VXxP468Njw8rjT2YZkf5aEPxEuRpSHhDYjqz7n14cwCXQ==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.8.tgz", + "integrity": "sha512-JRedHNfK1CCPVyeGQB5w3WBYqMA6X8Q240CkvjlGfn0pVXihf9DWk3nkSQJVgYxpvpHfxdgjaYZ5IpMzlkmkhw==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "16.2.12" + "@angular/core": "18.2.8" }, "peerDependenciesMeta": { "@angular/core": { @@ -509,16 +1082,17 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.2.12.tgz", - "integrity": "sha512-pWSrr152562ujh6lsFZR8NfNc5Ljj+zSTQO44DsuB0tZjwEpnRcjJEgzuhGXr+CoiBf+jTSPZKemtSktDk5aaA==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.8.tgz", + "integrity": "sha512-OksDE4LWQUCcIvMjtZF7eiDCdIMrcMMpC1+Q0PIYi7KmnqXFGs4/Y0NdJvtn/LrQznzz5WaKM3ZDVNZTRX4wmw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/core": "7.23.2", + "@babel/core": "7.25.2", "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", + "chokidar": "^4.0.0", "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.1.2", + "reflect-metadata": "^0.2.0", "semver": "^7.0.0", "tslib": "^2.3.0", "yargs": "^17.2.1" @@ -529,210 +1103,110 @@ "ngcc": "bundles/ngcc/index.js" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "16.2.12", - "typescript": ">=4.9.3 <5.2" + "@angular/compiler": "18.2.8", + "typescript": ">=5.4 <5.6" } }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "node_modules/@angular/compiler-cli/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", "dev": true, + "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "readdirp": "^4.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">= 14.16.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" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@angular/compiler-cli/node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "node_modules/@angular/compiler-cli/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", "dev": true, - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, + "license": "MIT", "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "node": ">= 14.16.0" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/@angular/core": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.2.12.tgz", - "integrity": "sha512-GLLlDeke/NjroaLYOks0uyzFVo6HyLl7VOm0K1QpLXnYvW63W9Ql/T3yguRZa7tRkOAeFZ3jw+1wnBD4O8MoUA==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.8.tgz", + "integrity": "sha512-NwIuX/Iby1jT6Iv1/s6S3wOFf8xfuQR3MPGvKhGgNtjXLbHG+TXceK9+QPZC0s9/Z8JR/hz+li34B79GrIKgUg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.13.0" + "zone.js": "~0.14.10" } }, "node_modules/@angular/forms": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.2.12.tgz", - "integrity": "sha512-1Eao89hlBgLR3v8tU91vccn21BBKL06WWxl7zLpQmG6Hun+2jrThgOE4Pf3os4fkkbH4Apj0tWL2fNIWe/blbw==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.8.tgz", + "integrity": "sha512-JCLki7KC6D5vF6dE6yGlBmW33khIgpHs8N9SzuiJtkQqNDTIQA8cPsGV6qpLpxflxASynQOX5lDkWYdQyfm77Q==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "16.2.12", - "@angular/core": "16.2.12", - "@angular/platform-browser": "16.2.12", + "@angular/common": "18.2.8", + "@angular/core": "18.2.8", + "@angular/platform-browser": "18.2.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-16.1.3.tgz", - "integrity": "sha512-1WZnypyqCAchEgPeiWK5QeXfvoZBZAb9WZKtxNnhyTw2DzIu9lxizo0HITnBPTV2VRcZ7kZrBO57vAy+v0s8wQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/auto-init": "15.0.0-canary.b994146f6.0", - "@material/banner": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/button": "15.0.0-canary.b994146f6.0", - "@material/card": "15.0.0-canary.b994146f6.0", - "@material/checkbox": "15.0.0-canary.b994146f6.0", - "@material/chips": "15.0.0-canary.b994146f6.0", - "@material/circular-progress": "15.0.0-canary.b994146f6.0", - "@material/data-table": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dialog": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/drawer": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/fab": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/floating-label": "15.0.0-canary.b994146f6.0", - "@material/form-field": "15.0.0-canary.b994146f6.0", - "@material/icon-button": "15.0.0-canary.b994146f6.0", - "@material/image-list": "15.0.0-canary.b994146f6.0", - "@material/layout-grid": "15.0.0-canary.b994146f6.0", - "@material/line-ripple": "15.0.0-canary.b994146f6.0", - "@material/linear-progress": "15.0.0-canary.b994146f6.0", - "@material/list": "15.0.0-canary.b994146f6.0", - "@material/menu": "15.0.0-canary.b994146f6.0", - "@material/menu-surface": "15.0.0-canary.b994146f6.0", - "@material/notched-outline": "15.0.0-canary.b994146f6.0", - "@material/radio": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/segmented-button": "15.0.0-canary.b994146f6.0", - "@material/select": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/slider": "15.0.0-canary.b994146f6.0", - "@material/snackbar": "15.0.0-canary.b994146f6.0", - "@material/switch": "15.0.0-canary.b994146f6.0", - "@material/tab": "15.0.0-canary.b994146f6.0", - "@material/tab-bar": "15.0.0-canary.b994146f6.0", - "@material/tab-indicator": "15.0.0-canary.b994146f6.0", - "@material/tab-scroller": "15.0.0-canary.b994146f6.0", - "@material/textfield": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tooltip": "15.0.0-canary.b994146f6.0", - "@material/top-app-bar": "15.0.0-canary.b994146f6.0", - "@material/touch-target": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/animations": "^16.0.0 || ^17.0.0", - "@angular/cdk": "16.1.3", - "@angular/common": "^16.0.0 || ^17.0.0", - "@angular/core": "^16.0.0 || ^17.0.0", - "@angular/forms": "^16.0.0 || ^17.0.0", - "@angular/platform-browser": "^16.0.0 || ^17.0.0", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/material-moment-adapter": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-16.1.3.tgz", - "integrity": "sha512-nvhcfu8BpknvJeSW7C2Rp6w9Gs44Aw4hfKS9aO/fM6AdbKyw6AGglIF+tuPVGd3HEnyhn6QQk9FzwLyDzOXLUA==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.9.tgz", + "integrity": "sha512-M2oCgPPIMMd6BLgEJCD+FvdC7gRDeCjj9yktNn3ctHmkKUWRvpJ3xRBH/WjVXb+9fPCCW1iNwZI7+bN1fHE7cA==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/core": "^16.0.0 || ^17.0.0", - "@angular/material": "16.1.3", - "moment": "^2.18.1" + "@angular/animations": "^18.0.0 || ^19.0.0", + "@angular/cdk": "18.2.9", + "@angular/common": "^18.0.0 || ^19.0.0", + "@angular/core": "^18.0.0 || ^19.0.0", + "@angular/forms": "^18.0.0 || ^19.0.0", + "@angular/platform-browser": "^18.0.0 || ^19.0.0", + "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/platform-browser": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.2.12.tgz", - "integrity": "sha512-NnH7ju1iirmVEsUq432DTm0nZBGQsBrU40M3ZeVHMQ2subnGiyUs3QyzDz8+VWLL/T5xTxWLt9BkDn65vgzlIQ==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.8.tgz", + "integrity": "sha512-EPai4ZPqSq3ilLJUC85kPi9wo5j5suQovwtgRyjM/75D9Qy4TV19g8hkVM5Co/zrltO8a2G6vDscCNI5BeGw2A==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "16.2.12", - "@angular/common": "16.2.12", - "@angular/core": "16.2.12" + "@angular/animations": "18.2.8", + "@angular/common": "18.2.8", + "@angular/core": "18.2.8" }, "peerDependenciesMeta": { "@angular/animations": { @@ -741,87 +1215,84 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.12.tgz", - "integrity": "sha512-ya54jerNgreCVAR278wZavwjrUWImMr2F8yM5n9HBvsMBbFaAQ83anwbOEiHEF2BlR+gJiEBLfpuPRMw20pHqw==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.8.tgz", + "integrity": "sha512-poZoapDqyN/rxGKQ3C6esdPiPLMkSpP2v12hoEa12KHgfPk7T1e+a+NMyJjV8HeOY3WyvL7tGRhW0NPTajTkhw==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "16.2.12", - "@angular/compiler": "16.2.12", - "@angular/core": "16.2.12", - "@angular/platform-browser": "16.2.12" + "@angular/common": "18.2.8", + "@angular/compiler": "18.2.8", + "@angular/core": "18.2.8", + "@angular/platform-browser": "18.2.8" } }, "node_modules/@angular/router": { - "version": "16.2.12", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.2.12.tgz", - "integrity": "sha512-aU6QnYSza005V9P3W6PpkieL56O0IHps96DjqI1RS8yOJUl3THmokqYN4Fm5+HXy4f390FN9i6ftadYQDKeWmA==", + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.8.tgz", + "integrity": "sha512-L+olYgxIiBq+tbfayVI0cv1yOuymsw33msnGC2l/vpc9sSVfqGzESFnB4yMVU3vHtE9v6v2Y6O+iV44/b79W/g==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "16.2.12", - "@angular/core": "16.2.12", - "@angular/platform-browser": "16.2.12", + "@angular/common": "18.2.8", + "@angular/core": "18.2.8", + "@angular/platform-browser": "18.2.8", "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@assemblyscript/loader": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", - "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", - "dev": true - }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", "dev": true, "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.25.7", + "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz", + "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", - "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.8", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", + "json5": "^2.2.3", "semver": "^6.3.1" }, "engines": { @@ -832,6 +1303,12 @@ "url": "https://opencollective.com/babel" } }, + "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/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -842,14 +1319,15 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", - "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -857,38 +1335,41 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz", + "integrity": "sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -906,19 +1387,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", - "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", - "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-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz", + "integrity": "sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-member-expression-to-functions": "^7.25.7", + "@babel/helper-optimise-call-expression": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/traverse": "^7.25.7", "semver": "^6.3.1" }, "engines": { @@ -928,23 +1408,38 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", + "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.7" + }, + "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", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz", + "integrity": "sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.25.7", + "regexpu-core": "^6.1.1", "semver": "^6.3.1" }, "engines": { @@ -954,20 +1449,35 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", + "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin/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, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", - "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "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, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -979,89 +1489,43 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name/node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz", + "integrity": "sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", "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.25.7", + "@babel/helper-simple-access": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1071,35 +1535,38 @@ } }, "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", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz", + "integrity": "sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz", + "integrity": "sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-wrap-function": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1108,15 +1575,29 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", + "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz", + "integrity": "sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.25.7", + "@babel/helper-optimise-call-expression": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1126,157 +1607,171 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz", + "integrity": "sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz", + "integrity": "sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "node_modules/@babel/helpers": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helpers": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", - "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", + "node_modules/@babel/highlight": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.6", - "@babel/types": "^7.23.6" + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helpers/node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "node_modules/@babel/parser": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/types": "^7.25.8" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.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==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.7.tgz", + "integrity": "sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.7.tgz", + "integrity": "sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "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.25.7", + "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.25.7.tgz", + "integrity": "sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1286,14 +1781,15 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz", + "integrity": "sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/plugin-transform-optional-chaining": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1302,23 +1798,21 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.7.tgz", + "integrity": "sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { @@ -1326,6 +1820,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -1333,28 +1828,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1367,6 +1846,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -1379,6 +1859,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1394,6 +1875,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1406,6 +1888,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -1414,12 +1897,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz", + "integrity": "sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1429,12 +1913,13 @@ } }, "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.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1448,6 +1933,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1460,6 +1946,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1472,6 +1959,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1484,6 +1972,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1496,6 +1985,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1508,6 +1998,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1520,6 +2011,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1532,6 +2024,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1544,6 +2037,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1559,6 +2053,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1574,6 +2069,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1586,12 +2082,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz", + "integrity": "sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1601,15 +2098,16 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", - "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1619,14 +2117,15 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1636,12 +2135,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz", + "integrity": "sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1651,12 +2151,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz", + "integrity": "sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1666,13 +2167,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz", + "integrity": "sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1682,14 +2184,14 @@ } }, "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.8.tgz", + "integrity": "sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1699,19 +2201,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", - "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz", + "integrity": "sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7", + "@babel/traverse": "^7.25.7", "globals": "^11.1.0" }, "engines": { @@ -1721,43 +2221,44 @@ "@babel/core": "^7.0.0-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==", + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", + "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties/node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz", + "integrity": "sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/template": "^7.25.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz", + "integrity": "sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1767,13 +2268,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz", + "integrity": "sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1783,12 +2285,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz", + "integrity": "sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1797,14 +2300,31 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.7.tgz", + "integrity": "sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.8.tgz", + "integrity": "sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1814,13 +2334,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz", + "integrity": "sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1830,13 +2351,13 @@ } }, "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.8.tgz", + "integrity": "sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1846,13 +2367,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz", + "integrity": "sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1862,14 +2384,15 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz", + "integrity": "sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1879,13 +2402,13 @@ } }, "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.8.tgz", + "integrity": "sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1895,12 +2418,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz", + "integrity": "sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1910,13 +2434,13 @@ } }, "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz", + "integrity": "sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1926,12 +2450,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz", + "integrity": "sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1941,13 +2466,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz", + "integrity": "sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1957,14 +2483,15 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz", + "integrity": "sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1974,15 +2501,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz", + "integrity": "sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1992,13 +2520,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz", + "integrity": "sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2008,13 +2537,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz", + "integrity": "sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2024,12 +2554,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz", + "integrity": "sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2039,13 +2570,13 @@ } }, "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz", + "integrity": "sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2055,13 +2586,13 @@ } }, "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz", + "integrity": "sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2071,16 +2602,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz", + "integrity": "sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/plugin-transform-parameters": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2090,13 +2620,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz", + "integrity": "sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2106,13 +2637,13 @@ } }, "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz", + "integrity": "sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2122,14 +2653,14 @@ } }, "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz", + "integrity": "sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2139,12 +2670,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz", + "integrity": "sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2154,13 +2686,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz", + "integrity": "sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2170,15 +2703,15 @@ } }, "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.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz", + "integrity": "sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow==", "dev": true, + "license": "MIT", "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/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2187,13 +2720,27 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", + "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz", + "integrity": "sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2203,12 +2750,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz", + "integrity": "sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.25.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -2219,12 +2767,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz", + "integrity": "sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2234,16 +2783,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz", - "integrity": "sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.4", - "babel-plugin-polyfill-corejs3": "^0.8.2", - "babel-plugin-polyfill-regenerator": "^0.5.1", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, "engines": { @@ -2258,17 +2808,19 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz", + "integrity": "sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2278,13 +2830,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz", + "integrity": "sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2294,12 +2847,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz", + "integrity": "sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2309,12 +2863,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz", + "integrity": "sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2324,12 +2879,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz", + "integrity": "sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2339,12 +2895,13 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz", + "integrity": "sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2354,13 +2911,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.7.tgz", + "integrity": "sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2370,13 +2928,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz", + "integrity": "sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2386,13 +2945,14 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.7.tgz", + "integrity": "sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2402,25 +2962,29 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", - "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -2432,60 +2996,60 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.7", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.5", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.6", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.5", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.6", - "@babel/plugin-transform-parameters": "^7.22.5", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.5", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.5", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.4", - "babel-plugin-polyfill-corejs3": "^0.8.2", - "babel-plugin-polyfill-regenerator": "^0.5.1", - "core-js-compat": "^3.31.0", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -2500,19 +3064,19 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/preset-modules": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", - "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, @@ -2520,52 +3084,44 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, "node_modules/@babel/runtime": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", - "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dev": true, + "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", - "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@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.23.6", - "@babel/types": "^7.23.6", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2574,28 +3130,40 @@ } }, "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.25.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", "dev": true, "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/types": "^7.25.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2620,1370 +3188,1208 @@ "node": ">=10.0.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", - "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", - "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", - "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", - "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", - "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", - "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", - "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", - "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", - "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", - "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", - "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", - "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", - "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", - "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", - "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", - "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", - "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", - "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", - "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", - "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", - "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", - "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@inquirer/checkbox": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.5.0.tgz", + "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", + "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" + "node_modules/@inquirer/confirm": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", + "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" + "node_modules/@inquirer/core": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz", + "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.5.5", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@inquirer/core/node_modules/@inquirer/type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", + "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", + "dev": true, + "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "mute-stream": "^1.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@inquirer/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@inquirer/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=12" + "node": ">=7.0.0" + } + }, + "node_modules/@inquirer/core/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, + "license": "MIT" + }, + "node_modules/@inquirer/core/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, + "license": "ISC", + "engines": { + "node": ">=14" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@inquirer/editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.2.0.tgz", + "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "external-editor": "^3.1.0" + }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "node_modules/@inquirer/expand": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.3.0.tgz", + "integrity": "sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "node_modules/@inquirer/figures": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.7.tgz", + "integrity": "sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "node_modules/@inquirer/input": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.3.0.tgz", + "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "node_modules/@inquirer/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.1.0.tgz", + "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "node_modules/@inquirer/password": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.2.0.tgz", + "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" } }, - "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==", - "dev": true - }, - "node_modules/@material/animation": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-kqqzG54tabYJ5VsBur5k1bqCFQCEpaW3hmLRMiSVVxRY7XgTt7qkuOOz48gs+MPqR6P8VIi6gFpuscV1+DWDhw==", + "node_modules/@inquirer/prompts": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.8.tgz", + "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", + "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "@inquirer/checkbox": "^2.4.7", + "@inquirer/confirm": "^3.1.22", + "@inquirer/editor": "^2.1.22", + "@inquirer/expand": "^2.1.22", + "@inquirer/input": "^2.2.9", + "@inquirer/number": "^1.0.10", + "@inquirer/password": "^2.1.22", + "@inquirer/rawlist": "^2.2.4", + "@inquirer/search": "^1.0.7", + "@inquirer/select": "^2.4.7" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@material/auto-init": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-8nLe/XeueJg5yyYx5e4UxWQXpTDyUhibKfyroGwnRKc8pdpOCOulHSOj/fIVGJAIbxkEJoebwMadWUNCjUhc9A==", + "node_modules/@inquirer/rawlist": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.3.0.tgz", + "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@material/base": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/banner": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-gJ4/VdP4dJgHP72Kdjy2f/UjHB45J4CuxoGvI0NIQYUjOSsr4kQiQHsjVgyEPZR/5wa7kBhM7/0mJ+zF7Ghv2A==", - "dependencies": { - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/button": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@material/base": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-rW2upYD5YjRFBL6DzYn3SCRhtvpEDkwplDS810e3vt71uLMRyqXyw4OQJH+Nab/t+32TFDtKNUphXIzwICXGDQ==", + "node_modules/@inquirer/search": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.1.0.tgz", + "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", + "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@material/button": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-SMyqtsvJuCqpXBz2JgciuR6wddNJSGpTXUFxmLbGluBy5/hHm06JWlOFcUOxGDv46OdRGGrRfkg6A9JtvtsJsw==", - "dependencies": { - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/focus-ring": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/touch-target": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "node_modules/@inquirer/select": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.5.0.tgz", + "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@material/card": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-WSggGon91HcDhJyatnYLFkoM9glkkeJjyjFDWrcJkwN1rdrPJU+GH+PNjvmArz5hGv9WkmjDjhOdAuPnL4Mb7g==", + "node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "dev": true, + "license": "MIT", "dependencies": { - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@material/checkbox": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-pulRiwG9S/dS6WBG+GteODBltddFiL0Sb7HAqdzF2BTKNKv25q1ZIR3ftoEa09TNeWM88AOzTJ4aBHiADfJn2w==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/focus-ring": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/touch-target": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@material/chips": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-3yJPj7x+eKLA4LMKG7aTWI+itAnKRVGOcniuR6aiXVy0OKr5asNuWNeZc9J0/VErjjxF3tdybDzDSPo01qPy9w==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/checkbox": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/focus-ring": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/touch-target": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@material/circular-progress": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-6YUvGXdtZKJoE7AuovR4xk1aiWp/EDZ6j2U3TOeynd1assQQCg5XT4abqAoHtpJrRPaCFgUAp836HyiDVVuYug==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/progress-indicator": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@material/data-table": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-v4hIduIe/wzyibuL/RPM/ErYrt8XpB7fxyQqtV+0JsMpFa8E81QYyvMCS9EJj9m4YdkrQnZgA+vXQlOkhWvmdQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/checkbox": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/icon-button": "15.0.0-canary.b994146f6.0", - "@material/linear-progress": "15.0.0-canary.b994146f6.0", - "@material/list": "15.0.0-canary.b994146f6.0", - "@material/menu": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/select": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/touch-target": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true }, - "node_modules/@material/density": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-m8l0vuoWSoAPItBpWp5eZDvitUcB2JWoO8V486hLgdveVcKgXG09xWM43ScH+PLXAWjzr5olDEuJ2tvfkN3SpQ==", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, "dependencies": { - "tslib": "^2.1.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@material/dialog": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-JucU92yh8cfZQpyRBunHr6uohacePLYmhcPaGpkAGQ1b+zCznEsNs55tjhaVQNoj91XA9rrBqtL6Otg+fxFJtQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/button": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/icon-button": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/touch-target": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@material/dom": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-DiUsTezrCi4iytjIn7xXoXZSNFvuTrVVZgc7cR9cW8yu2Hpz8bPf87PacVn4IP9OsNwy/dCDMk1Kcq/DMh7gXQ==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, "dependencies": { - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@material/drawer": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-Kbuf32V0eX69amvCVbAjNSabNDerZWyG8ip466EfQHRh0OUZwvsbhLp9FZOB7AyR+/bQiHf3mVLcombOdmdkcQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/list": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/@material/elevation": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-l2YDNgBajSI6oA2l6gaeYCTGHRao657syqQ/tv95/Hkcee9900A4RrsxCwSxOqqAs5pZZDEJ33kFJjj27nqZDw==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@material/fab": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-ExyDVkNWINpns41Ahj4u8I/OhiVkqI0nmcqjFRtgTJMmKEd4NhlvqIxE7gakAlyS68riJu5UleqTSTVmt8mv2Q==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/focus-ring": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/touch-target": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@material/feature-targeting": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-HR/FjSQmza98B1DF80MRjODyfOI9r7wXkPSts/cLQsYkpwZ5uJmxhvQKjDCeYVpMV0lQuvuvVOQo7uD44TdWEg==", - "dependencies": { - "tslib": "^2.1.0" + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@material/floating-label": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-g64talBNWCS0FUfLWal0uB637gUciSIqYxFzSW//LglTtbZLGK2J4+9gAEswQGnKeO4ux08EN2n1ZcMDYQ58ow==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@material/focus-ring": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-87qEMuXsCvlQfTiimnzJUZoebnIXWcMtRZevNLymN9Y0t9jGckQxZPmrI0llRkpyiR/Ewhec5SI/JGrFlYHnsA==", - "dependencies": { - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0" - } + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, - "node_modules/@material/form-field": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-Tg1SQQaopvXMyDEYxGTWnhCWQmNcWVIoKMLmle9P/gi2p8ulcj0iOCPYf+3ECqUBVozOmTPKlYOOiRwtKStAeA==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "dependencies": { - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@material/icon-button": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-X6DvOv4jpymHUjI7ZAbO946nDgGYKDwPZfkRzBE84gv2XEr2qfMuABhojxkYubRbt03oauBdcJVVMFCXkVhArQ==", - "dependencies": { - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/focus-ring": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/touch-target": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@material/image-list": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-kf903XFF1P+V5ZPXCt+7R6c55g4UyQE1ZHkTViCIJfd52gU40bHODMhTQy/ywBkwDeJfNk8uf1V1IM24WQYpxA==", + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", + "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@material/layout-grid": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-OALBSGue8g1/mEwLYYi2d950dJFpNYKW87jPS9/KM65JKMyxoU7tU2d4An1BuyqK0r9sopGq6Pn/zhill0iLaw==", - "dependencies": { - "tslib": "^2.1.0" + "node_modules/@jsonjoy.com/util": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", + "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@material/line-ripple": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-evjZxCu4iodiKtW8N0xjY8ACRXm3sY+4rAmq3vV5BmHWAJ3BobjbFYslDMZQ+4mu3HmwMatbJehKxHegahitNg==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "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==", + "dev": true }, - "node_modules/@material/linear-progress": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-jlXh+tIj+/o0Ks7fHdC/24fH6IXCAl2vF52U6NwT39ESrlwmlLhp3gtag5GSBHN5E7Z09nK871Yo1G/b1F+COg==", + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", + "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", + "dev": true, + "license": "MIT", "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/progress-indicator": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/list": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-kY/i6VvFBb/W3VvCPvWRMzWvu7mvNFJ+R8ijfawDoAXiv4fj42GO4iFyTcFXaUevEPKp791pN/09BMJQ6jYEvA==", - "dependencies": { - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" + "@inquirer/type": "^1.5.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 6" } }, - "node_modules/@material/menu": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-y6smNmLJ+U0DoXWbyqzW+VW/uWDuklhdGHc5MbZrTOhsKkhvoTVNMSOa+NFPU4gTwrplvUjaUvnIsQ0wygwD3g==", - "dependencies": { - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/list": "15.0.0-canary.b994146f6.0", - "@material/menu-surface": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/menu-surface": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-StmM3lrRn1iMEZfq532jpMNppqyBBy68FbPurKEsHuP/3q+CscfnwjrS9ym+JcHqXKMHnQXbL/49ymffRGX2AQ==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/notched-outline": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-UZxU8jXM2t/bk/CiO0K+TSPspuJRZIyrYlIS0gd+qq/u8Gi2DpALBlLAh9Jeu46IUg4YGlPsNWYfe8p3QAVyoA==", - "dependencies": { - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/floating-label": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/progress-indicator": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-VT+mOQhohaM+pBX1rknbVOI6JCGKg9NiOHBoYljIvnexNeILE+mW9g6mtQ0ZCJPz0oMmiSAMLcuxMIcBXx84Xw==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/radio": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-U/RR2lVNWwEO2+kJtGz9XzvnOF0gAZn1krMY0z/eU9Wnl0OgPZbqQrxXMoVNv1pzKYSEwZQEGado/rv8qp7piA==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/focus-ring": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/touch-target": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/ripple": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-WzIbc8wYTzMOczqGXVCBPdNcv/73Ef8FwcQYsscGMaqCzgVsdpoqilTfsx7Ryyz6dQbyfmJqp7s+YpPujcezOA==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/rtl": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-H/W6BVn4Ygfkrf/FgSrNhbu1uY7PST2wlsjEYQt06EfAM0CDHEwSL1MwV4FmpQA/r40Q0PqoLN6moDrtCe5S8g==", - "dependencies": { - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/segmented-button": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-jd+f4BTnU0tghxBpAM/XdVmruDXSoQ88TYSFWbrhulS+/c/ooCZURWvVC4mHNej+QR/fODkx4adbqkBiwwCtMw==", - "dependencies": { - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/touch-target": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/select": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-5thEQS+B17JSm3I8D+mqQe2G3ArVnXJALTEEE9FmMUKwKYkrsLplm3FYuEXERZGJnYeTRdkdmhYY/YeocfZoyA==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/floating-label": "15.0.0-canary.b994146f6.0", - "@material/line-ripple": "15.0.0-canary.b994146f6.0", - "@material/list": "15.0.0-canary.b994146f6.0", - "@material/menu": "15.0.0-canary.b994146f6.0", - "@material/menu-surface": "15.0.0-canary.b994146f6.0", - "@material/notched-outline": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/shape": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-sINM3gr3aLgdvqZVfqfXV5EB77owLLJjy+2NqchJ8ZPqucCJ+F/BsCBfLA2Wu3O4Sc9IpAEn/o1hzYm/CWAFAw==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/slider": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-dyT72+Kp//AEajJxDUVoMoizUjf2uggVMGXOaQ7FhpGHuf7LC3EyEjrrJ15efFzYgTjdJUU1YQkCwGmdt6CQsA==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/snackbar": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-fEhPASJossScNpcrNYrrH8uU+rUf6+kw7/ZMrpUzzz1lVXliL28jTNEmU1nFpcDI4M2GXH+Z64f7vl2hiMDG8g==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/button": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/icon-button": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/switch": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-czCXTUa30ILIf1J3exiuSVIRcodGATHexd3eWDq4sfHo4iMh4rBMaIxcqkmnb2iwE/mMTNyVfoauijx2QiNKrA==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/focus-ring": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", + "integrity": "sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@material/tab": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-ygswooiNdBNNDnQdbPX0nzDQu7oQlHo8vWZ0/xL4IPVEXabY5zCzsEbGNZw2u/syo56c/NHPyMsUmXDGRSXOvQ==", - "dependencies": { - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/focus-ring": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/tab-indicator": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.13.tgz", + "integrity": "sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@material/tab-bar": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-F9NegACnFEWMu1pAAypV4Jd7qROeffkvEgVO28Xxk/CvzZxFz8kAjYJZ+rI6RUhPX3BhXzwsz/AlLwsJMT2tnA==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/tab": "15.0.0-canary.b994146f6.0", - "@material/tab-indicator": "15.0.0-canary.b994146f6.0", - "@material/tab-scroller": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.13.tgz", + "integrity": "sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/tab-indicator": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-8IH/DmwlZhQlw/2Y3aKrEvjEhZB+qbKUiyaij3BkTAexvyFeDBh5cLNjRpYkUJSGeSPhS6yu4SYzMHPmQEwQmA==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.13.tgz", + "integrity": "sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/tab-scroller": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-1MeWkr62OICfTv8oqhIZe6jFo0dKeMlUfB+/WcgnpoeMBszCOSlx5tQ4pedxUkuR3I+Z7rsTfSN0LavgF8bATA==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/tab": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.13.tgz", + "integrity": "sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/textfield": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-Kxb3DoJ5o8u3Y1gRMHKmWrDl1TirVxuf/UFrxPFiCE3J1SqiE2VQpakiD1emZwp+LSKtbRsQ/iILYLB/h7Wuvw==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/density": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/floating-label": "15.0.0-canary.b994146f6.0", - "@material/line-ripple": "15.0.0-canary.b994146f6.0", - "@material/notched-outline": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.13.tgz", + "integrity": "sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@material/theme": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-5tsZ92dAeUcZ9g9CrIkqX/GYc0M5DIfsydtI1PAidaBzr1Uokuh4rTZVQZBv7gyglF0yDua59lkb0I6wI9vxXg==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@material/tokens": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-jFqU7PtvGkrP8b8i2soCrYQInTrnZ1/rIPDi+Xm3sa/qSghCNwFrdJEqwcwtv1fPlJIOtzkIuVRYRmAP9rXQIQ==", - "dependencies": { - "@material/elevation": "15.0.0-canary.b994146f6.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@material/tooltip": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-bVzydXGn3fauHJ8pkh32DsdyRJXleeFQ4t7jZ/rcRik+n4G1BvYiblfuu3Z/OCC0m3TJDyMdJhd+sLqRDqLUUg==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/button": "15.0.0-canary.b994146f6.0", - "@material/dom": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/tokens": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "safevalues": "^0.3.4", - "tslib": "^2.1.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/top-app-bar": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-VHq0wX3OJE1TKvjO8Qtlu+rv5EGoqAhNLBcEjpUUGoqHH/gpd356FEuIqJId4pUh5jaWf8T4ZU9xVbQGMtntzw==", - "dependencies": { - "@material/animation": "15.0.0-canary.b994146f6.0", - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/elevation": "15.0.0-canary.b994146f6.0", - "@material/ripple": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/shape": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "@material/typography": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/touch-target": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-X26Y9OWvIqYOHo+sC2VMvOoeQWlUR3/yb7uPdfq92Y44zlQ4Vexgq7nEUblEiXQ8Fj+d0T9rIhRh1y9PP3Z2dw==", - "dependencies": { - "@material/base": "15.0.0-canary.b994146f6.0", - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/rtl": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@material/typography": { - "version": "15.0.0-canary.b994146f6.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.b994146f6.0.tgz", - "integrity": "sha512-sWU5W30WWqdw5P6bsRx9AbvMNcz/QvQg56Syr06V6nfgSztpeuo7TfPk2J+N0ArRALo1mUrkAPk66iWYQ2p/QA==", - "dependencies": { - "@material/feature-targeting": "15.0.0-canary.b994146f6.0", - "@material/theme": "15.0.0-canary.b994146f6.0", - "tslib": "^2.1.0" - } + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, "node_modules/@ngrx/entity": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@ngrx/entity/-/entity-16.3.0.tgz", - "integrity": "sha512-o+jhJylWPt9gspzkb61QqHgeBFssDKz4J/EoQcAE217Y1bEBWf6EuleHXiFvAoWKkNqb8eTHRnNGgT0VPE9G+A==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@ngrx/entity/-/entity-18.1.0.tgz", + "integrity": "sha512-pIthc6aQAkgdm8kk0TJ7NLirVLgBfYof9cmnIfqBsEFyY8SQhFrAperuiIMO6t5Aaa/DnUYGUxhk0vrsd6+nNQ==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { - "@angular/core": "^16.0.0", - "@ngrx/store": "16.3.0", + "@angular/core": "^18.0.0", + "@ngrx/store": "18.1.0", "rxjs": "^6.5.3 || ^7.5.0" } }, "node_modules/@ngrx/store": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-16.3.0.tgz", - "integrity": "sha512-aWQY41M7O0sMpTmM+OOPBPwKQWHhmkCStizFB1GdiGud8DU5fz0BdUiy6o2+feZypMzczqbwTnq+AxxxrWYqoA==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-18.1.0.tgz", + "integrity": "sha512-ijxAzJMOb3LeiegpJNNaL8BkcxNg2DVgd/NTiGCJNI7vVUEvtlSRPSWDDYY3Z9Q5oVyqJG9CP0IN/o5FGAGyAw==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { - "@angular/core": "^16.0.0", + "@angular/core": "^18.0.0", "rxjs": "^6.5.3 || ^7.5.0" } }, "node_modules/@ngrx/store-devtools": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-16.3.0.tgz", - "integrity": "sha512-Ou/aXxJmd9UgYliL09hmnlLdk35dJ8S56rJCHgeJlMPb8j0LDR7Olfpsa7Asi63Zvtg2MYZn1p1G0Tsb+0rk/Q==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-18.1.0.tgz", + "integrity": "sha512-46oTChtdiJCgONwJ6SuKmVlAMe7fKnlRE1puSMyYh5O45ZuKOE6j4VFQQhIyecoce21eO/zmH3CxuBDJaoD4OQ==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { - "@ngrx/store": "16.3.0", + "@angular/core": "^18.0.0", + "@ngrx/store": "18.1.0", "rxjs": "^6.5.3 || ^7.5.0" } }, "node_modules/@ngtools/webpack": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.11.tgz", - "integrity": "sha512-4ndXJ4s94ZsryVGSDk/waIDrUqXqdGWftoOEn81Zu+nkL9ncI/G1fNUlSJ5OqeKmMLxMFouoy+BuJfvT+gEgnQ==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.9.tgz", + "integrity": "sha512-/apDvs4qevjSWoYw3h3/c/mILFrf2EgCJfBy9f3E7PEgi2tjifOIszBRrLQkVpeHAaFgEH8zKS2ol0hAmOl8sw==", "dev": true, + "license": "MIT", "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^16.0.0", - "typescript": ">=4.9.3 <5.2", + "@angular/compiler-cli": "^18.0.0", + "typescript": ">=5.4 <5.6", "webpack": "^5.54.0" } }, "node_modules/@ngx-translate/core": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-14.0.0.tgz", - "integrity": "sha512-UevdwNCXMRCdJv//0kC8h2eSfmi02r29xeE8E9gJ1Al4D4jEJ7eiLPdjslTMc21oJNGguqqWeEVjf64SFtvw2w==", - "dependencies": { - "tslib": "^2.3.0" + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-15.0.0.tgz", + "integrity": "sha512-Am5uiuR0bOOxyoercDnAA3rJVizo4RRqJHo8N3RqJ+XfzVP/I845yEnMADykOHvM6HkVm4SZSnJBOiz0Anx5BA==", + "license": "SEE LICENSE IN LICENSE", + "engines": { + "node": "^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": ">=13.0.0", - "rxjs": "^6.5.3 || ^7.4.0" + "@angular/common": ">=16.0.0", + "@angular/core": ">=16.0.0", + "rxjs": "^6.5.5 || ^7.4.0" } }, "node_modules/@ngx-translate/http-loader": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-7.0.0.tgz", - "integrity": "sha512-j+NpXXlcGVdyUNyY/qsJrqqeAdJdizCd+GKh3usXExSqy1aE9866jlAIL+xrfDU4w+LiMoma5pgE4emvFebZmA==", - "dependencies": { - "tslib": "^2.3.0" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-8.0.0.tgz", + "integrity": "sha512-SFMsdUcmHF5OdZkL1CHEoSAwbP5EbAOPTLLboOCRRoOg21P4GJx+51jxGdJeGve6LSKLf4Pay7BkTwmE6vxYlg==", + "license": "SEE LICENSE IN LICENSE", + "engines": { + "node": "^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": ">=13.0.0", - "@ngx-translate/core": ">=14.0.0", - "rxjs": "^6.5.3 || ^7.4.0" + "@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": { @@ -3991,6 +4397,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -4004,6 +4411,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -4013,6 +4421,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -4021,11 +4430,36 @@ "node": ">= 8" } }, + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "dev": true, + "license": "ISC", + "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.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "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, + "license": "ISC", "dependencies": { "semver": "^7.3.5" }, @@ -4034,329 +4468,581 @@ } }, "node_modules/@npmcli/git": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", - "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", "dev": true, + "license": "ISC", "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, + "license": "ISC", "engines": { - "node": ">=12" + "node": ">=16" } }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/@npmcli/git/node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, "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, + "license": "ISC", "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" } }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, + "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/@npmcli/package-json": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz", + "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/move-file/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { - "rimraf": "bin.js" + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": { + "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, + "license": "MIT", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", - "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", + "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, + "license": "ISC", "dependencies": { - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/redact": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/run-script": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", - "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" } }, "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, "optional": true, "engines": { "node": ">=14" } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@schematics/angular": { - "version": "16.2.11", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.2.11.tgz", - "integrity": "sha512-symCO0ezdjpt5xAZE2vTbRNaLcnTTDoDJMPWX4gC5KXSrL6r63ZvEnn9hVPmuNCmHxdVwV5ezU3xI49hgXnp1g==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.9.tgz", + "integrity": "sha512-LlMHZQ6f8zrqSK24OBXi4u2MTNHNu9ZN6JXpbElq0bz/9QkUR2zy+Kk2wLpPxCwXYTZby7/xgHiTzXvG+zTdhw==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.2.11", - "@angular-devkit/schematics": "16.2.11", - "jsonc-parser": "3.2.0" + "@angular-devkit/core": "18.2.9", + "@angular-devkit/schematics": "18.2.9", + "jsonc-parser": "3.3.1" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@sigstore/bundle": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.1.0.tgz", - "integrity": "sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", - "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "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, + "license": "Apache-2.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-1.0.0.tgz", - "integrity": "sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "make-fetch-happen": "^11.0.1" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.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": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@sigstore/sign/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@sigstore/sign/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "node_modules/@sigstore/tuf": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/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==", + "node_modules/@sigstore/verify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@sigstore/tuf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", - "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0", - "tuf-js": "^1.1.7" + "node": ">=18" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@socket.io/component-emitter": { @@ -4365,35 +5051,28 @@ "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", "dev": true }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/@tufjs/canonical-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", - "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "dev": true, + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tufjs/models": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", - "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, + "license": "MIT", "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tufjs/models/node_modules/brace-expansion": { @@ -4401,15 +5080,17 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4473,30 +5154,10 @@ "@types/node": "*" } }, - "node_modules/@types/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "node_modules/@types/express": { @@ -4556,13 +5217,24 @@ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { - "version": "20.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", - "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.8.tgz", + "integrity": "sha512-a922jJy31vqR5sk+kAdIENJjHblqcZ4RmERviFsER4WJcEONqxKcjNOlk0q7OUfrF5sddT+vng070cdfMlrPLg==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/node-forge": { @@ -4631,6 +5303,13 @@ "@types/node": "*" } }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/ws": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", @@ -4641,21 +5320,21 @@ } }, "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", - "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", "dev": true, "engines": { "node": ">=14.6.0" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" } }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", @@ -4675,9 +5354,9 @@ "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { @@ -4698,15 +5377,15 @@ "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/wasm-gen": "1.12.1" } }, "node_modules/@webassemblyjs/ieee754": { @@ -4734,28 +5413,28 @@ "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", @@ -4763,24 +5442,24 @@ } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", @@ -4789,12 +5468,12 @@ } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, @@ -4847,99 +5526,6 @@ } } }, - "node_modules/@wessberg/ts-evaluator": { - "version": "0.0.27", - "resolved": "https://registry.npmjs.org/@wessberg/ts-evaluator/-/ts-evaluator-0.0.27.tgz", - "integrity": "sha512-7gOpVm3yYojUp/Yn7F4ZybJRxyqfMNf0LXK5KJiawbPfL0XTsJV+0mgrEDjOIR6Bi0OYk2Cyg4tjFu1r8MCZaA==", - "deprecated": "this package has been renamed to ts-evaluator. Please install ts-evaluator instead", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "jsdom": "^16.4.0", - "object-path": "^0.11.5", - "tslib": "^2.0.3" - }, - "engines": { - "node": ">=10.1.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/wessberg/ts-evaluator?sponsor=1" - }, - "peerDependencies": { - "typescript": ">=3.2.x || >= 4.x" - } - }, - "node_modules/@wessberg/ts-evaluator/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/@wessberg/ts-evaluator/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/@wessberg/ts-evaluator/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": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@wessberg/ts-evaluator/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/@wessberg/ts-evaluator/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wessberg/ts-evaluator/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -4958,23 +5544,21 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true - }, "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" @@ -5008,46 +5592,15 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "dev": true, "peerDependencies": { "acorn": "^8" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", @@ -5076,27 +5629,16 @@ } }, "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, + "license": "MIT", "dependencies": { - "humanize-ms": "^1.2.1" + "debug": "^4.3.4" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 14" } }, "node_modules/aggregate-error": { @@ -5104,6 +5646,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -5113,15 +5656,16 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -5171,6 +5715,7 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -5197,6 +5742,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -5226,16 +5772,11 @@ "node": ">= 8" } }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, "node_modules/archiver": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "dev": true, "license": "MIT", "dependencies": { "archiver-utils": "^5.0.2", @@ -5254,6 +5795,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "dev": true, "license": "MIT", "dependencies": { "glob": "^10.0.0", @@ -5272,6 +5814,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -5281,6 +5824,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, "funding": [ { "type": "github", @@ -5305,6 +5849,7 @@ "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", @@ -5321,25 +5866,11 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/archiver-utils/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/archiver-utils/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -5351,19 +5882,11 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/archiver-utils/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/archiver-utils/node_modules/readable-stream": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", @@ -5380,6 +5903,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, "funding": [ { "type": "github", @@ -5404,6 +5928,7 @@ "version": "4.5.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", @@ -5416,50 +5941,17 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, "license": "MIT" }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "dev": true, "funding": [ { @@ -5469,14 +5961,19 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -5493,6 +5990,7 @@ "version": "1.6.6", "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true, "license": "Apache-2.0" }, "node_modules/babel-loader": { @@ -5512,30 +6010,15 @@ "webpack": ">=5" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", - "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "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, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.4", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { @@ -5547,30 +6030,33 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", - "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4", - "core-js-compat": "^3.33.1" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", - "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5579,12 +6065,14 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/bare-events": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", + "dev": true, "license": "Apache-2.0", "optional": true }, @@ -5592,6 +6080,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, "funding": [ { "type": "github", @@ -5691,13 +6180,12 @@ "dev": true }, "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", "dev": true, + "license": "MIT", "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" } @@ -5706,7 +6194,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -5730,16 +6219,10 @@ "node": ">=8" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -5756,10 +6239,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -5796,6 +6279,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.0.0" @@ -5807,13 +6291,20 @@ "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==", + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", "dev": true, + "license": "MIT", "dependencies": { - "semver": "^7.0.0" + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bytes": { @@ -5826,17 +6317,18 @@ } }, "node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", - "lru-cache": "^7.7.1", + "lru-cache": "^10.0.1", "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", + "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", @@ -5845,7 +6337,7 @@ "unique-filename": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/cacache/node_modules/brace-expansion": { @@ -5853,46 +6345,45 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/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.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": ">=12" - } + "license": "ISC" }, "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5903,24 +6394,20 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacache/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5943,19 +6430,10 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001571", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001571.tgz", - "integrity": "sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==", + "version": "1.0.30001669", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", "dev": true, "funding": [ { @@ -5990,19 +6468,15 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6015,6 +6489,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -6024,6 +6501,7 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -6042,6 +6520,7 @@ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -6070,13 +6549,85 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, + "license": "ISC", "engines": { - "node": ">= 10" + "node": ">= 12" } }, "node_modules/cliui": { @@ -6131,33 +6682,12 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -6174,6 +6704,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", + "dev": true, "license": "MIT", "dependencies": { "crc-32": "^1.2.0", @@ -6190,6 +6721,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, "funding": [ { "type": "github", @@ -6214,6 +6746,7 @@ "version": "4.5.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", @@ -6331,12 +6864,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -6392,20 +6919,21 @@ } }, "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", + "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", "dev": true, + "license": "MIT", "dependencies": { - "fast-glob": "^3.2.11", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.1", - "globby": "^13.1.1", + "globby": "^14.0.0", "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -6420,6 +6948,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -6428,12 +6957,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", - "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2" + "browserslist": "^4.23.3" }, "funding": { "type": "opencollective", @@ -6443,7 +6973,8 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true }, "node_modules/cors": { "version": "2.8.5", @@ -6459,15 +6990,15 @@ } }, "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "dependencies": { + "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "parse-json": "^5.2.0" }, "engines": { "node": ">=14" @@ -6506,6 +7037,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true, "license": "Apache-2.0", "bin": { "crc32": "bin/crc32.njs" @@ -6518,6 +7050,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "dev": true, "license": "MIT", "dependencies": { "crc-32": "^1.2.0", @@ -6531,6 +7064,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, "funding": [ { "type": "github", @@ -6555,6 +7089,7 @@ "version": "4.5.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", @@ -6568,10 +7103,11 @@ } }, "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.24", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.24.tgz", + "integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==", "dev": true, + "license": "Apache-2.0", "dependencies": { "chalk": "^4.1.0", "css-select": "^5.1.0", @@ -6579,7 +7115,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": { @@ -6587,6 +7123,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -6602,6 +7139,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6618,6 +7156,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -6629,13 +7168,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/critters/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6645,6 +7186,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6656,6 +7198,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6669,6 +7212,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -6680,29 +7224,39 @@ } }, "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "semver": "^7.5.4" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^5.0.0" + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/css-select": { @@ -6710,6 +7264,7 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -6726,6 +7281,7 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -6738,6 +7294,7 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -6745,54 +7302,16 @@ "node": ">=4" } }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, "node_modules/custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=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==", + "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" @@ -6815,11 +7334,35 @@ } } }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/default-gateway": { "version": "6.0.3", @@ -6846,17 +7389,20 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-lazy-prop": { @@ -6868,21 +7414,6 @@ "node": ">=8" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -6902,6 +7433,16 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -6914,24 +7455,6 @@ "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, "node_modules/dns-packet": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", @@ -6961,6 +7484,7 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -6980,35 +7504,15 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "deprecated": "Use your platform's native DOMException instead", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -7024,6 +7528,7 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -7048,7 +7553,8 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true }, "node_modules/ee-first": { "version": "1.1.1", @@ -7057,15 +7563,16 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", - "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "version": "1.5.42", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.42.tgz", + "integrity": "sha512-gIfKavKDw1mhvic9nbzA5lZw8QSHpdMwLwXc0cWidQz9B15pDoDdDH4boIatuFfeoCatb3a/NGL6CYRVFxGZ9g==", "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/emojis-list": { "version": "3.0.0", @@ -7158,9 +7665,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -7209,11 +7716,25 @@ "node": ">=4" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/errno": { "version": "0.1.8", @@ -7237,6 +7758,27 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", @@ -7244,58 +7786,62 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", - "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.17", - "@esbuild/android-arm64": "0.18.17", - "@esbuild/android-x64": "0.18.17", - "@esbuild/darwin-arm64": "0.18.17", - "@esbuild/darwin-x64": "0.18.17", - "@esbuild/freebsd-arm64": "0.18.17", - "@esbuild/freebsd-x64": "0.18.17", - "@esbuild/linux-arm": "0.18.17", - "@esbuild/linux-arm64": "0.18.17", - "@esbuild/linux-ia32": "0.18.17", - "@esbuild/linux-loong64": "0.18.17", - "@esbuild/linux-mips64el": "0.18.17", - "@esbuild/linux-ppc64": "0.18.17", - "@esbuild/linux-riscv64": "0.18.17", - "@esbuild/linux-s390x": "0.18.17", - "@esbuild/linux-x64": "0.18.17", - "@esbuild/netbsd-x64": "0.18.17", - "@esbuild/openbsd-x64": "0.18.17", - "@esbuild/sunos-x64": "0.18.17", - "@esbuild/win32-arm64": "0.18.17", - "@esbuild/win32-ia32": "0.18.17", - "@esbuild/win32-x64": "0.18.17" + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" } }, "node_modules/esbuild-wasm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.18.17.tgz", - "integrity": "sha512-9OHGcuRzy+I8ziF9FzjfKLWAPbvi0e/metACVg9k6bK+SI4FFxeV6PcZsz8RIVaMD4YNehw+qj6UMR3+qj/EuQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", + "integrity": "sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==", "dev": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { "node": ">=6" @@ -7316,37 +7862,6 @@ "node": ">=0.8.0" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -7369,19 +7884,6 @@ "node": ">=4.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -7408,6 +7910,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -7425,17 +7928,12 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/eventemitter-asyncresource": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", - "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", - "dev": true - }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -7446,6 +7944,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, "engines": { "node": ">=0.8.x" } @@ -7477,7 +7976,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/express": { "version": "4.18.2", @@ -7628,6 +8128,7 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -7647,13 +8148,15 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7671,6 +8174,13 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -7681,10 +8191,11 @@ } }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -7701,21 +8212,6 @@ "node": ">=0.8.0" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -7802,6 +8298,15 @@ "node": ">=8" } }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, "node_modules/flatted": { "version": "3.2.9", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", @@ -7832,6 +8337,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -7847,6 +8353,7 @@ "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" }, @@ -7854,20 +8361,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -7882,6 +8375,7 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, + "license": "MIT", "engines": { "node": "*" }, @@ -7918,6 +8412,7 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -7925,15 +8420,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/fs-monkey": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", @@ -7969,25 +8455,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -8006,30 +8473,38 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -8090,19 +8565,21 @@ } }, "node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, + "license": "MIT", "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8123,19 +8600,8 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/guess-parser": { - "version": "0.4.22", - "resolved": "https://registry.npmjs.org/guess-parser/-/guess-parser-0.4.22.tgz", - "integrity": "sha512-KcUWZ5ACGaBM69SbqwVIuWGoSAgD+9iJnchR9j/IarVI1jHVeXv+bUXBIMeqVMSKt3zrn0Dgf9UpcOEpPBLbSg==", - "dev": true, - "dependencies": { - "@wessberg/ts-evaluator": "0.0.27" - }, - "peerDependencies": { - "typescript": ">=3.7.5" - } + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "node_modules/handle-thing": { "version": "2.0.1", @@ -8153,12 +8619,12 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8188,12 +8654,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", @@ -8206,43 +8666,25 @@ "node": ">= 0.4" } }, - "node_modules/hdr-histogram-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", - "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", - "dev": true, - "dependencies": { - "@assemblyscript/loader": "^0.10.1", - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "node_modules/hdr-histogram-percentiles-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", - "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", - "dev": true - }, "node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, + "license": "ISC", "dependencies": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": ">=12" - } + "license": "ISC" }, "node_modules/hpack.js": { "version": "2.1.6", @@ -8286,18 +8728,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/html-entities": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", @@ -8332,6 +8762,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -8343,7 +8774,8 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/http-deceiver": { "version": "1.2.7", @@ -8397,17 +8829,17 @@ } }, "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "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, + "license": "MIT", "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/http-proxy-middleware": { @@ -8435,16 +8867,17 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, + "license": "MIT", "dependencies": { - "agent-base": "6", + "agent-base": "^7.0.2", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/human-signals": { @@ -8456,13 +8889,14 @@ "node": ">=10.17.0" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", "dev": true, - "dependencies": { - "ms": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=10.18" } }, "node_modules/iconv-lite": { @@ -8482,6 +8916,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -8493,6 +8928,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, "funding": [ { "type": "github", @@ -8509,19 +8945,21 @@ ] }, "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.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "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, + "license": "ISC", "dependencies": { "minimatch": "^9.0.0" }, @@ -8534,15 +8972,17 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8567,9 +9007,9 @@ } }, "node_modules/immutable": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", - "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", "dev": true }, "node_modules/import-fresh": { @@ -8633,6 +9073,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -8642,16 +9083,11 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -8665,113 +9101,19 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "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.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/inquirer": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", - "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/inquirer/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/inquirer/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/inquirer/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": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer/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/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/interpret": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", @@ -8781,11 +9123,19 @@ "node": ">=10.13.0" } }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } }, "node_modules/ipaddr.js": { "version": "2.1.0", @@ -8854,6 +9204,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { "node": ">=8" } @@ -8870,6 +9221,41 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -8883,7 +9269,21 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/is-number": { "version": "7.0.0", @@ -8918,16 +9318,11 @@ "node": ">=0.10.0" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, "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": ">=8" }, @@ -8968,7 +9363,8 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, "node_modules/isbinaryfile": { "version": "4.0.10", @@ -8985,7 +9381,8 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "node_modules/isobject": { "version": "3.0.1", @@ -9102,16 +9499,13 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -9164,9 +9558,9 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "dev": true, "bin": { "jiti": "bin/jiti.js" @@ -9178,70 +9572,19 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } + "license": "MIT" }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -9274,10 +9617,11 @@ } }, "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" }, "node_modules/jsonfile": { "version": "4.0.0", @@ -9295,7 +9639,8 @@ "dev": true, "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/karma": { "version": "6.4.2", @@ -9481,15 +9826,6 @@ "node": ">=0.10.0" } }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/launch-editor": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", @@ -9504,6 +9840,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, "license": "MIT", "dependencies": { "readable-stream": "^2.0.5" @@ -9516,6 +9853,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", @@ -9531,21 +9869,23 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, "license": "MIT" }, "node_modules/lazystream/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/less": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", - "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", "dev": true, "dependencies": { "copy-anything": "^2.0.1", @@ -9569,23 +9909,30 @@ } }, "node_modules/less-loader": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", - "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", + "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", "dev": true, - "dependencies": { - "klona": "^2.0.4" - }, + "license": "MIT", "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "less": "^3.5.0 || ^4.0.0", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/less/node_modules/make-dir": { @@ -9658,25 +10005,162 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "node_modules/listr2": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, "engines": { - "node": ">=6.11.5" + "node": ">=18.0.0" } }, - "node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/locate-path": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lmdb": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.0.13.tgz", + "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "msgpackr": "^1.10.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.4.1", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.0.13", + "@lmdb/lmdb-darwin-x64": "3.0.13", + "@lmdb/lmdb-linux-arm": "3.0.13", + "@lmdb/lmdb-linux-arm64": "3.0.13", + "@lmdb/lmdb-linux-x64": "3.0.13", + "@lmdb/lmdb-win32-x64": "3.0.13" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", @@ -9691,13 +10175,15 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", @@ -9785,340 +10271,296 @@ "node": ">=8" } }, - "node_modules/log4js": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, + "license": "MIT", "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=8.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^3.0.2" + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/magic-string": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", - "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "license": "MIT", + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/log-update/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, + "license": "MIT", "dependencies": { - "semver": "^7.5.3" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, + "license": "MIT", "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "get-east-asian-width": "^1.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "node_modules/log-update/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" + "mimic-function": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "node_modules/log-update/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, "engines": { - "node": ">= 10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-fetch-happen/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/log-update/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, - "dependencies": { - "balanced-match": "^1.0.0" + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/make-fetch-happen/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "dev": true, + "license": "MIT", "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/make-fetch-happen/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">= 8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-fetch-happen/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "ansi-regex": "^6.0.1" }, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, + "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/make-fetch-happen/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" }, "engines": { - "node": ">=10" + "node": ">=8.0" } }, - "node_modules/make-fetch-happen/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-fetch-happen/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "yallist": "^3.0.2" } }, - "node_modules/make-fetch-happen/node_modules/rimraf/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==", + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/make-fetch-happen/node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "semver": "^7.5.3" }, "engines": { - "node": "*" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-fetch-happen/node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/make-fetch-happen": { + "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, "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "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" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/make-fetch-happen/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/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -10157,6 +10599,7 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -10225,13 +10668,28 @@ "node": ">=6" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", "dev": true, + "license": "MIT", "dependencies": { - "schema-utils": "^4.0.0" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { "node": ">= 12.13.0" @@ -10272,83 +10730,51 @@ } }, "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, "engines": { - "node": ">= 8" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dev": true, + "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/minipass-collect/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/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.1.6", + "minipass": "^7.0.3", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "optionalDependencies": { "encoding": "^0.1.13" } }, - "node_modules/minipass-fetch/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-fetch/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/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10361,6 +10787,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10372,41 +10799,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-json-stream/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "license": "ISC" }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10419,6 +10820,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10430,13 +10832,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10449,6 +10853,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10460,13 +10865,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -10480,6 +10887,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10491,7 +10899,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/mkdirp": { "version": "0.5.6", @@ -10505,18 +10914,10 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "engines": { - "node": "*" - } - }, "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", "dev": true, "engines": { "node": ">=10" @@ -10528,6 +10929,39 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/msgpackr": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz", + "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, "node_modules/multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", @@ -10542,10 +10976,14 @@ } }, "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/nanoid": { "version": "3.3.7", @@ -10611,17 +11049,18 @@ "dev": true }, "node_modules/ngx-build-plus": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/ngx-build-plus/-/ngx-build-plus-16.0.0.tgz", - "integrity": "sha512-AXqBJoQGyptbHTK09yfuxS2Gm2+YnVCBnPWyORq79wbC2gdbkYLR34eLA5wi8HZbqWNXdaYdGc75MFAZmkho4Q==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/ngx-build-plus/-/ngx-build-plus-18.0.0.tgz", + "integrity": "sha512-dmnD5CpwopUPoN51ysoTLkS7Csqkgbs2dNLL5QI5pIhV4MxDXNE8+75QTwy8EPvK37t8RjGCTBdOqmAp8Rpa/g==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/build-angular": "^16.0.0", - "@schematics/angular": "^16.0.0", + "@angular-devkit/build-angular": "^18.0.0", + "@schematics/angular": "^18.0.0", "webpack-merge": "^5.0.0" }, "peerDependencies": { - "@angular-devkit/build-angular": "^16.0.0", + "@angular-devkit/build-angular": "^18.0.0", "rxjs": ">= 6.0.0" } }, @@ -10631,6 +11070,7 @@ "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "!win32" @@ -10640,13 +11080,21 @@ "node-gyp-build": "^4.2.2" } }, - "node_modules/node-addon-api": { + "node_modules/nice-napi/node_modules/node-addon-api": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true, + "license": "MIT", "optional": true }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true, + "license": "MIT" + }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -10695,35 +11143,36 @@ } }, "node_modules/node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", + "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" + "tar": "^6.2.1", + "which": "^4.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/node-gyp-build": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz", - "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==", + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", "dev": true, + "license": "MIT", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -10731,78 +11180,136 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "detect-libc": "^2.0.1" }, "bin": { - "rimraf": "bin.js" + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { - "node-which": "bin/node-which" + "node-which": "bin/which.js" }, "engines": { - "node": ">= 8" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "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, + "license": "ISC", "dependencies": { - "abbrev": "^1.0.0" + "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", + "hosted-git-info": "^7.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -10812,15 +11319,17 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "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, + "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^3.0.0" }, @@ -10833,6 +11342,7 @@ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "semver": "^7.1.1" }, @@ -10845,152 +11355,74 @@ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", "dev": true, + "license": "ISC", "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-packlist": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", - "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", "dev": true, + "license": "ISC", "dependencies": { - "ignore-walk": "^6.0.0" + "ignore-walk": "^6.0.4" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-pick-manifest": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", - "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", "dev": true, + "license": "ISC", "dependencies": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-registry-fetch": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", - "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", + "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", "dev": true, + "license": "ISC", "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", + "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": "^10.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/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==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-run-path": { @@ -11005,26 +11437,12 @@ "node": ">=8" } }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -11032,12 +11450,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", - "dev": true - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -11056,15 +11468,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", - "dev": true, - "engines": { - "node": ">= 10.12.0" - } - }, "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", @@ -11226,11 +11629,19 @@ "node": ">=8" } }, + "node_modules/ordered-binary": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.2.tgz", + "integrity": "sha512-JTo+4+4Fw7FreyAvlSLjb1BBVaxEQAacmjD3jjuyPZclpbEghTvQZbXBb2qPd2LeIMxiHwXBZUcpmG2Gl/mDEA==", + "dev": true, + "license": "MIT" + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11267,6 +11678,7 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -11312,46 +11724,41 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/pacote": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", - "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", "dev": true, + "license": "ISC", "dependencies": { - "@npmcli/git": "^4.0.0", + "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", "fs-minipass": "^3.0.0", - "minipass": "^5.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.3.0", + "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, "bin": { - "pacote": "lib/bin.js" + "pacote": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11391,12 +11798,6 @@ "node": ">= 0.10" } }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, "node_modules/parse5-html-rewriting-stream": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", @@ -11478,6 +11879,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "engines": { "node": ">=8" } @@ -11492,6 +11894,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", @@ -11508,6 +11911,7 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, "license": "ISC" }, "node_modules/path-to-regexp": { @@ -11517,18 +11921,22 @@ "dev": true }, "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "node_modules/picomatch": { @@ -11554,15 +11962,11 @@ } }, "node_modules/piscina": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.0.0.tgz", - "integrity": "sha512-641nAmJS4k4iqpNUqfggqUBUMmlw0ZoM5VZKdQkV2e970Inn3Tk9kroCc1wpsYLD07vCwpys5iY0d3xI/9WkTg==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.6.1.tgz", + "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", "dev": true, - "dependencies": { - "eventemitter-asyncresource": "^1.0.0", - "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0" - }, + "license": "MIT", "optionalDependencies": { "nice-napi": "^1.0.2" } @@ -11653,9 +12057,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "funding": [ { @@ -11671,42 +12075,60 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-loader": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", - "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", + "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": "^8.2.0", - "jiti": "^1.18.2", - "semver": "^7.3.8" + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, + "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, + "license": "MIT" + }, "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, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -11715,10 +12137,11 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "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, + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", @@ -11732,10 +12155,11 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz", - "integrity": "sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==", + "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, + "license": "ISC", "dependencies": { "postcss-selector-parser": "^6.0.4" }, @@ -11751,6 +12175,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -11762,10 +12187,11 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -11778,25 +12204,15 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "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" - } + "license": "MIT" }, "node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "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, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -11805,6 +12221,7 @@ "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6.0" @@ -11813,19 +12230,22 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, + "license": "MIT", "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -11863,12 +12283,6 @@ "dev": true, "optional": true }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -11902,12 +12316,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -11926,12 +12334,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/queue-tick": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true, "license": "MIT" }, "node_modules/randombytes": { @@ -11967,116 +12377,25 @@ "node": ">= 0.8" } }, - "node_modules/read-package-json": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", - "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 6" } }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast/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==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/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==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", "license": "Apache-2.0", "dependencies": { "minimatch": "^5.1.0" @@ -12086,6 +12405,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -12095,6 +12415,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -12128,22 +12449,25 @@ } }, "node_modules/reflect-metadata": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", - "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", - "dev": true + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -12152,16 +12476,18 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" }, "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } @@ -12173,15 +12499,16 @@ "dev": true }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -12189,25 +12516,37 @@ "node": ">=4" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.1.tgz", + "integrity": "sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, "node_modules/require-directory": { @@ -12235,12 +12574,12 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -12329,6 +12668,7 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -12338,40 +12678,128 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", "fsevents": "~2.3.2" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/run-parallel": { @@ -12393,6 +12821,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -12409,6 +12838,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -12430,16 +12860,12 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "devOptional": true }, - "node_modules/safevalues": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", - "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" - }, "node_modules/sass": { - "version": "1.64.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.1.tgz", - "integrity": "sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ==", + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", "dev": true, + "license": "MIT", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -12453,29 +12879,30 @@ } }, "node_modules/sass-loader": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", - "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz", + "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", "dev": true, + "license": "MIT", "dependencies": { "neo-async": "^2.6.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "fibers": ">= 3.1.0", + "@rspack/core": "0.x || 1.x", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { - "fibers": { + "@rspack/core": { "optional": true }, "node-sass": { @@ -12486,6 +12913,9 @@ }, "sass-embedded": { "optional": true + }, + "webpack": { + "optional": true } } }, @@ -12496,18 +12926,6 @@ "dev": true, "optional": true }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/schema-utils": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", @@ -12643,10 +13061,11 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -12735,22 +13154,18 @@ "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -12778,6 +13193,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -12789,6 +13205,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "engines": { "node": ">=8" } @@ -12823,134 +13240,94 @@ "dev": true }, "node_modules/sigstore": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.9.0.tgz", - "integrity": "sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==", + "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, + "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "@sigstore/sign": "^1.0.0", - "@sigstore/tuf": "^1.0.3", - "make-fetch-happen": "^11.0.1" - }, - "bin": { - "sigstore": "bin/sigstore.js" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/sigstore/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sigstore/node_modules/http-proxy-agent": { + "node_modules/slice-ansi": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, + "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/sigstore/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" + "license": "MIT", + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/sigstore/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==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/sigstore/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socket.io": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", - "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", + "node_modules/socket.io": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", + "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", "dev": true, "dependencies": { "accepts": "~1.3.4", @@ -13020,31 +13397,33 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, + "license": "MIT", "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dev": true, + "license": "MIT", "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/source-map": { @@ -13057,26 +13436,26 @@ } }, "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.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-loader": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", - "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", "dev": true, "dependencies": { - "abab": "^2.0.6", "iconv-lite": "^0.6.3", "source-map-js": "^1.0.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -13122,32 +13501,36 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/spdy": { "version": "4.0.2", @@ -13180,16 +13563,18 @@ } }, "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" }, "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, + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -13197,15 +13582,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/ssri/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -13233,6 +13609,7 @@ "version": "2.18.0", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz", "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==", + "dev": true, "license": "MIT", "dependencies": { "fast-fifo": "^1.3.2", @@ -13247,6 +13624,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -13255,6 +13633,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -13269,6 +13648,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -13282,6 +13662,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -13294,6 +13675,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -13343,12 +13725,6 @@ "node": ">=0.10" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -13359,10 +13735,11 @@ } }, "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, + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -13379,6 +13756,7 @@ "version": "3.1.7", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, "license": "MIT", "dependencies": { "b4a": "^1.6.4", @@ -13391,6 +13769,7 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -13403,6 +13782,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -13410,11 +13790,22 @@ "node": ">=8" } }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -13426,13 +13817,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/terser": { - "version": "5.19.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz", - "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -13447,16 +13840,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "terser": "^5.26.0" }, "engines": { "node": ">= 10.13.0" @@ -13529,40 +13922,28 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/text-decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz", "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==", + "dev": true, "license": "Apache-2.0", "dependencies": { "b4a": "^1.6.4" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } }, "node_modules/thunky": { "version": "1.1.0", @@ -13575,6 +13956,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -13612,40 +13994,21 @@ "node": ">=0.6" } }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" + "node": ">=10.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, "node_modules/tree-kill": { @@ -13658,106 +14021,24 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "license": "0BSD" }, "node_modules/tuf-js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", - "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, + "license": "MIT", "dependencies": { - "@tufjs/models": "1.0.4", + "@tufjs/models": "2.0.1", "debug": "^4.3.4", - "make-fetch-happen": "^11.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tuf-js/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/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==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "make-fetch-happen": "^13.0.1" }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/tuf-js/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/type-fest": { @@ -13765,6 +14046,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -13792,10 +14074,11 @@ "dev": true }, "node_modules/typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -13828,16 +14111,18 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -13847,6 +14132,7 @@ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -13856,10 +14142,11 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -13869,15 +14156,30 @@ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unique-filename": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, + "license": "ISC", "dependencies": { "unique-slug": "^4.0.0" }, @@ -13890,6 +14192,7 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" }, @@ -13916,9 +14219,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.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -13935,8 +14238,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -13954,123 +14257,577 @@ "punycode": "^2.1.0" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "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, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "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", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "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, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", + "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">= 0.4.0" + "node": ">=12" } }, - "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/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], "dev": true, - "bin": { - "uuid": "dist/bin/uuid" + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" } }, - "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", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "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==", + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.8" + "node": ">=12" } }, - "node_modules/vite": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", - "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, - "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - }, + "hasInstallScript": true, + "license": "MIT", "bin": { - "vite": "bin/vite.js" + "esbuild": "bin/esbuild" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" + "node": ">=12" }, "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, - "sugarss": { - "optional": true + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" }, - "terser": { - "optional": true + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, "node_modules/void-elements": { @@ -14082,33 +14839,12 @@ "node": ">=0.10.0" } }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -14135,44 +14871,41 @@ "defaults": "^1.0.3" } }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", "dev": true, - "engines": { - "node": ">=10.4" - } + "license": "MIT" }, "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -14246,19 +14979,21 @@ } }, "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": "7.4.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", "dev": true, + "license": "MIT", "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.12", + "memfs": "^4.6.0", "mime-types": "^2.1.31", + "on-finished": "^2.4.1", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -14273,6 +15008,26 @@ } } }, + "node_modules/webpack-dev-middleware/node_modules/memfs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", + "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, "node_modules/webpack-dev-server": { "version": "4.15.1", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", @@ -14372,34 +15127,14 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.15.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", - "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/webpack-merge": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", - "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" }, "engines": { @@ -14485,6 +15220,19 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/webpack/node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", @@ -14508,35 +15256,6 @@ "node": ">=0.8.0" } }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -14549,15 +15268,6 @@ "which": "bin/which" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", @@ -14594,6 +15304,7 @@ "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", @@ -14610,6 +15321,7 @@ "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" }, @@ -14624,6 +15336,7 @@ "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": { "color-name": "~1.1.4" }, @@ -14634,7 +15347,8 @@ "node_modules/wrap-ansi-cjs/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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", @@ -14676,16 +15390,17 @@ "dev": true }, "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.3.0" + "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -14696,18 +15411,6 @@ } } }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -14762,10 +15465,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zip-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "dev": true, "license": "MIT", "dependencies": { "archiver-utils": "^5.0.0", @@ -14780,6 +15497,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, "funding": [ { "type": "github", @@ -14804,6 +15522,7 @@ "version": "4.5.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", @@ -14817,12 +15536,9 @@ } }, "node_modules/zone.js": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.3.tgz", - "integrity": "sha512-MKPbmZie6fASC/ps4dkmIhaT5eonHkEt6eAy80K42tAm0G2W+AahLJjbfi6X9NPdciOE9GRFTTM8u2IiF6O3ww==", - "dependencies": { - "tslib": "^2.3.0" - } + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz", + "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==" } } } From b180b20386e18e309c24377f4dcf4f5e722f8cb9 Mon Sep 17 00:00:00 2001 From: Shoul Manevitz Date: Wed, 30 Oct 2024 16:09:15 +0200 Subject: [PATCH 03/61] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 863ada13..cef79e07 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,9 @@ ### Overview The NDE Customization package offers options to enhance and extend the functionality of Primo’s New Discovery Experience (NDE). You can add and develop your own components, customize theme templates, and tailor the discovery interface to your specific needs. +**Note:** +This branch includes updates to Angular 18 and other improvements that will be compatible with future version of the NDE. Probably January 2025 release. We will merge this branch to the main one when it is compatible with released version of NDE. + **Note:** The NDE Customization package is currently available exclusively to Primo customers who have early access to the New Discovery Experience (NDE). Further availability will be announced in upcoming releases. From db1d027ae1103467d707683615ab6c77c798b619 Mon Sep 17 00:00:00 2001 From: Shoul Manevitz Date: Thu, 28 Nov 2024 18:41:27 +0200 Subject: [PATCH 04/61] add disableHostCheck flag to angular.json --- angular.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/angular.json b/angular.json index 9c8ef9ea..bf6357f2 100644 --- a/angular.json +++ b/angular.json @@ -85,7 +85,8 @@ "options": { "port": 4201, "publicHost": "http://localhost:4201", - "extraWebpackConfig": "webpack.config.js" + "extraWebpackConfig": "webpack.config.js", + "disableHostCheck": true } }, "extract-i18n": { From f22bc4d290e46227d379094e0f22603b5978d758 Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Thu, 2 Jan 2025 15:59:25 +0200 Subject: [PATCH 05/61] change theme example to use material 3 API --- src/app/styles/_customized-theme.scss | 123 +------------------- src/app/styles/m3-theme.scss | 159 ++++++++++++++++++++++++++ 2 files changed, 162 insertions(+), 120 deletions(-) create mode 100644 src/app/styles/m3-theme.scss diff --git a/src/app/styles/_customized-theme.scss b/src/app/styles/_customized-theme.scss index 319466ae..acc5b287 100644 --- a/src/app/styles/_customized-theme.scss +++ b/src/app/styles/_customized-theme.scss @@ -1,130 +1,13 @@ @use '@angular/material' as mat; @use 'generate-pallete-color-vars' as nde-mixins; +@use 'm3-theme'; // Be sure that you only ever include this mixin once! @include mat.core(); -// Define your theme with color palettes, typography and density - -//$mat-theme-primary-palette: map-merge(mat.$cyan-palette, ( contrast: (100: #150c4a,))); -//$mat-theme-primary: mat.define-palette( -// $mat-theme-primary-palette, -// $default: 100, -// $lighter: 100, -// $darker: 700, -// $text: 500 -//); -// -//$mat-theme-accent-palette: map-merge(mat.$teal-palette, ( 501: #4d77b6,contrast: (501: white,A100: white,A200: white,))); -//$mat-theme-accent: mat.define-palette( -// $mat-theme-accent-palette, -// $default: 501, -// $lighter: A100, -// $darker: A200, -// $text: 600 -//); -// -//$mat-theme-warn-palette: map-merge(mat.$pink-palette, ( )); -//$mat-theme-warn: mat.define-palette( -// $mat-theme-warn-palette, -// $default: A200, -// $lighter: 500, -// $darker: 500, -// $text: A700 -//); -// -//$mat-dark-theme-primary-palette: map-merge(mat.$lime-palette, ( contrast: (200: #030844,A100: rgba(0,0,0, 0.87),A700: rgba(0,0,0, 0.87),))); -//$mat-dark-theme-primary: mat.define-palette( -// $mat-dark-theme-primary-palette, -// $default: 200, -// $lighter: A100, -// $darker: A700, -// $text: 700 -//); -// -//$mat-dark-theme-accent-palette: map-merge(mat.$green-palette, ( contrast: (A200: black,50: black,A400: black,))); -//$mat-dark-theme-accent: mat.define-palette( -// $mat-dark-theme-accent-palette, -// $default: A200, -// $lighter: 50, -// $darker: A400, -// $text: A100 -//); -// -//$mat-dark-theme-warn-palette: map-merge(mat.$pink-palette, ( contrast: (A100: black,100: white,))); -//$mat-dark-theme-warn: mat.define-palette( -// $mat-dark-theme-warn-palette, -// $default: A100, -// $lighter: 100, -// $darker: A700, -// $text: 100 -//); -// -//@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@300&display=swap'); -// -//$mat-typography: mat.define-typography-config( -// $font-family: 'Rubik', -// $display-4: mat.define-typography-level($font-size: 96px, $font-weight: 300, $font-family: Rubik), -// $display-3: mat.define-typography-level($font-size: 60px, $font-weight: 500, $font-family: Rubik), -// $display-2: mat.define-typography-level($font-size: 48px, $font-weight: 500, $font-family: Rubik), -// $display-1: mat.define-typography-level($font-size: 34px, $font-weight: 500, $font-family: Rubik), -// $headline: mat.define-typography-level($font-size: 24px, $font-weight: 500, $font-family: Rubik), -// $title: mat.define-typography-level($font-size: 20px, $font-weight: 500, $font-family: Rubik), -// $subheading-2: mat.define-typography-level($font-size: 18px, $font-weight: 500, $font-family: Rubik), -// $subheading-1: mat.define-typography-level($font-size: 20px, $font-weight: 500, $font-family: Rubik), -// $body-2: mat.define-typography-level($font-size: 16px, $font-weight: 400, $font-family: Rubik), -// $body-1: mat.define-typography-level($font-size: 18px, $font-weight: 400, $font-family: Rubik), -// $caption: mat.define-typography-level($font-size: 16px, $font-weight: Medium, $font-family: Rubik), -// $button: mat.define-typography-level($font-size: 16px, $font-weight: 500, $font-family: Rubik), -// // Line-height must be unit-less fraction of the font-size. -// $input: mat.define-typography-level($font-size: inherit, $line-height: 1.125, $font-weight: 500, $font-family: Rubik), -//); -// -//$mat-density: 0; -//// @include mat.elevation( -//// $zValue: 12, -//// $color: #000, -//// $opacity: 0.5 -//// ); -// -//$mat-core-theme: mat.define-light-theme(( -// color: ( -// primary: $mat-theme-primary, -// accent: $mat-theme-accent, -// warn: $mat-theme-warn -// ), -// typography: $mat-typography, -// density: $mat-density -//)); -// -//$mat-dark-theme: mat.define-dark-theme(( -// color: ( -// primary: $mat-dark-theme-primary, -// accent: $mat-dark-theme-accent, -// warn: $mat-dark-theme-warn, -// ) -//)); -$primary-palette: mat.m2-define-palette(mat.$m2-pink-palette, 500); -$accent-palette: mat.m2-define-palette(mat.$m2-amber-palette, A200, A100, A400); -$warn-palette: mat.m2-define-palette(mat.$m2-red-palette, 500); - -$mat-custom-theme: mat.m2-define-light-theme(( - color: ( - primary: $primary-palette, - accent: $accent-palette, - warn: $warn-palette - ), - typography: mat.m2-define-typography-config(), - density: 0 -)); .custom-nde-theme{ - @include nde-mixins.generate-color-variables($primary-palette, $accent-palette, $warn-palette); - @include mat.all-component-themes($mat-custom-theme); + @include mat.all-component-themes(m3-theme.$light-theme); + @include mat.system-level-colors(m3-theme.$light-theme); } - - -//.dark-theme { -// @include mat.all-component-colors($mat-dark-theme); -//} diff --git a/src/app/styles/m3-theme.scss b/src/app/styles/m3-theme.scss new file mode 100644 index 00000000..3575871e --- /dev/null +++ b/src/app/styles/m3-theme.scss @@ -0,0 +1,159 @@ +// This file was generated by running 'ng generate @angular/material:m3-theme'. +// Proceed with caution if making changes to this file. + +@use 'sass:map'; +@use '@angular/material' as mat; + +// Note: Color palettes are generated from primary: #00dddd +$_palettes: ( + primary: ( + 0: #000000, + 10: #002020, + 20: #003737, + 25: #004343, + 30: #004f4f, + 35: #005c5c, + 40: #006a6a, + 50: #008585, + 60: #00a1a1, + 70: #00bebe, + 80: #00dddd, + 90: #49f9f9, + 95: #adfffe, + 98: #e2fffe, + 99: #f1fffe, + 100: #ffffff, + ), + secondary: ( + 0: #000000, + 10: #002020, + 20: #003737, + 25: #004343, + 30: #114f4f, + 35: #215b5a, + 40: #2f6767, + 50: #498080, + 60: #639a9a, + 70: #7eb5b4, + 80: #99d1d0, + 90: #b4edec, + 95: #c2fbfa, + 98: #e2fffe, + 99: #f1fffe, + 100: #ffffff, + ), + tertiary: ( + 0: #000000, + 10: #220e47, + 20: #38265e, + 25: #43316a, + 30: #4f3d76, + 35: #5b4882, + 40: #67548f, + 50: #806daa, + 60: #9b86c5, + 70: #b6a1e2, + 80: #d2bcff, + 90: #eaddff, + 95: #f6edff, + 98: #fef7ff, + 99: #fffbff, + 100: #ffffff, + ), + neutral: ( + 0: #000000, + 10: #151d1d, + 20: #2a3232, + 25: #353d3d, + 30: #404848, + 35: #4c5454, + 40: #58605f, + 50: #717978, + 60: #8a9292, + 70: #a5adac, + 80: #c0c8c7, + 90: #dce4e3, + 95: #ebf2f1, + 98: #f3fbfa, + 99: #f6fefd, + 100: #ffffff, + 4: #080f0f, + 6: #0d1515, + 12: #192121, + 17: #242b2b, + 22: #2f3636, + 24: #333b3a, + 87: #d4dcdb, + 92: #e2eae9, + 94: #e8efef, + 96: #edf5f4, + ), + neutral-variant: ( + 0: #000000, + 10: #101e1e, + 20: #253333, + 25: #303e3e, + 30: #3b4949, + 35: #465555, + 40: #526161, + 50: #6b7a79, + 60: #849493, + 70: #9faeae, + 80: #bacac9, + 90: #d6e6e5, + 95: #e4f4f3, + 98: #ecfdfc, + 99: #f1fffe, + 100: #ffffff, + ), + error: ( + 0: #000000, + 10: #410002, + 20: #690005, + 25: #7e0007, + 30: #93000a, + 35: #a80710, + 40: #ba1a1a, + 50: #de3730, + 60: #ff5449, + 70: #ff897d, + 80: #ffb4ab, + 90: #ffdad6, + 95: #ffedea, + 98: #fff8f7, + 99: #fffbff, + 100: #ffffff, + ), +); + +$_rest: ( + secondary: map.get($_palettes, secondary), + neutral: map.get($_palettes, neutral), + neutral-variant: map.get($_palettes, neutral-variant), + error: map.get($_palettes, error), +); +$_primary: map.merge(map.get($_palettes, primary), $_rest); +$_tertiary: map.merge(map.get($_palettes, tertiary), $_rest); + +$light-theme: mat.define-theme(( + color: ( + theme-type: light, + primary: $_primary, + tertiary: $_tertiary, + use-system-variables: true, + ), + typography: ( + use-system-variables: true, + ), +)); +$dark-theme: mat.define-theme(( + color: ( + theme-type: dark, + primary: $_primary, + tertiary: $_tertiary, + use-system-variables: true, + ), + typography: ( + use-system-variables: true, + ), +)); \ No newline at end of file From 6dd63d6eb1beb7ca0794aa8db280eaac0d264e9c Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Sun, 12 Jan 2025 16:14:27 +0200 Subject: [PATCH 06/61] attempt at backwards compat between different angular version --- package-lock.json | 11 ++++++++++ package.json | 1 + .../custom1-module/custom1-module.module.ts | 22 ++++++++++++++----- src/bootstrap.ts | 11 ++++++++-- webpack.config.js | 9 +++----- 5 files changed, 40 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 37cf3855..699276ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,6 +31,7 @@ "zone.js": "~0.14.10" }, "devDependencies": { + "@angular-architects/module-federation-tools": "^19.0.1", "@angular-devkit/build-angular": "^18.2.9", "@angular/cli": "^18.2.9", "@angular/compiler-cli": "^18.2.8", @@ -88,6 +89,16 @@ "@angular/core": ">=18.0.0" } }, + "node_modules/@angular-architects/module-federation-tools": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/@angular-architects/module-federation-tools/-/module-federation-tools-19.0.1.tgz", + "integrity": "sha512-cCQfxyq56+AofMPt62hDv+6OsT2oGXutaN78VV7Pa9DDQcACsOeHvjfgBggtJVmGU9q3O3eGiR3PHPdmBWQJyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + } + }, "node_modules/@angular-devkit/architect": { "version": "0.1802.9", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.9.tgz", diff --git a/package.json b/package.json index d531988d..4485a7ff 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "zone.js": "~0.14.10" }, "devDependencies": { + "@angular-architects/module-federation-tools": "^19.0.1", "@angular-devkit/build-angular": "^18.2.9", "@angular/cli": "^18.2.9", "@angular/compiler-cli": "^18.2.8", diff --git a/src/app/custom1-module/custom1-module.module.ts b/src/app/custom1-module/custom1-module.module.ts index b263db11..c6d55284 100644 --- a/src/app/custom1-module/custom1-module.module.ts +++ b/src/app/custom1-module/custom1-module.module.ts @@ -1,7 +1,7 @@ import { NgModule, CUSTOM_ELEMENTS_SCHEMA, - isDevMode + isDevMode, createComponent, EnvironmentInjector, Injector } from '@angular/core'; import { CommonModule } from '@angular/common'; import * as utils from './utils'; @@ -9,18 +9,21 @@ import {StoreDevtoolsModule} from '@ngrx/store-devtools'; import {StoreModule} from '@ngrx/store'; import * as StateConstants from '../state/state.const'; import {TranslateModule} from "@ngx-translate/core"; +import {RecommendationsComponent} from "./recommendations/recommendations.component"; +import {BriefResultComponent} from "./brief-result/brief-result/brief-result.component"; // Define the map export const selectorComponentMap = new Map([ - // Add more pairs as needed + ['nde-top-bar-before', RecommendationsComponent], + ]); @NgModule({ declarations: [ - + RecommendationsComponent, ], exports: [ ], @@ -33,7 +36,8 @@ export const selectorComponentMap = new Map([ logOnly: !isDevMode(), trace: true, traceLimit: StateConstants.MAX_STACK_FRAMES_IN_HISTORY - , connectInZone: true}) + , connectInZone: true + }) ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) @@ -48,10 +52,16 @@ export class Custom1ModuleModule { /** * Use componentMapping, selectorComponentMap * @param componentName + * @param environmentInjector + * @param injector */ - public getComponentRef(componentName:string ){ - return selectorComponentMap.get(componentName); + public getComponentRef(componentName:string, environmentInjector: EnvironmentInjector, injector: Injector) { + const componentFactory = selectorComponentMap.get(componentName); + if (componentFactory){ + return createComponent(componentFactory, {environmentInjector: environmentInjector}) + } + return null; } diff --git a/src/bootstrap.ts b/src/bootstrap.ts index c58dc05c..d9fcb7fd 100644 --- a/src/bootstrap.ts +++ b/src/bootstrap.ts @@ -1,7 +1,14 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; +import {bootstrap} from "@angular-architects/module-federation-tools"; -platformBrowserDynamic().bootstrapModule(AppModule) - .catch(err => console.error(err)); + +// platformBrowserDynamic().bootstrapModule(AppModule) +// .catch(err => console.error(err)); + +bootstrap(AppModule, { + production: false, + appType: 'microfrontend' +}).then(r => console.log('microfrontend bootstrap success', r)); diff --git a/webpack.config.js b/webpack.config.js index 2e711c5e..5330ca15 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -65,11 +65,8 @@ module.exports = { // }, shared: share({ - "@angular/core": { singleton: true, strictVersion: false }, - "@angular/common": { singleton: true, strictVersion: false }, - "@angular/common/http": { singleton: true, strictVersion: false }, - "@angular/router": { singleton: true, strictVersion: false }, - '@ngrx/store': { singleton: true, eager: false }, + + '@ngx-translate/core': { singleton: true, eager: false}, '@angular/material': { singleton: true, eager: false }, ...sharedMappings.getDescriptors() @@ -78,4 +75,4 @@ module.exports = { }), sharedMappings.getPlugin() ], -}; \ No newline at end of file +}; From 050f72d358ac64c7c107fbc44ce3fc297f28f1ac Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Thu, 23 Jan 2025 16:18:28 +0200 Subject: [PATCH 07/61] JIRA: URM-1234 Developer:shoul.manevitz Description: works with web componenets --- README.md | 2 +- package-lock.json | 17 ++++ package.json | 1 + src/app/app.component.ts | 1 - src/app/app.module.ts | 80 ++++++++++++++----- .../custom1-module/custom1-module.module.ts | 68 ---------------- src/bootstrap.ts | 14 ++-- tsconfig.app.json | 3 +- webpack.config.js | 2 +- 9 files changed, 86 insertions(+), 102 deletions(-) delete mode 100644 src/app/custom1-module/custom1-module.module.ts diff --git a/README.md b/README.md index cef79e07..1427cd83 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ The NDE Customization package is currently available exclusively to Primo custom ng generate component -after --module custom1-module ``` -3. Update `selectorComponentMap` in `custom1-module.module.ts` to connect the newly created components: +3. Update `selectorComponentMap` in `app.module.ts` to connect the newly created components: ```typescript export const selectorComponentMap = new Map([ ['nde-recommendations-before', RecommendationsComponentBefore], diff --git a/package-lock.json b/package-lock.json index 699276ee..1eee7ac4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "@angular/common": "^18.2.8", "@angular/compiler": "^18.2.8", "@angular/core": "^18.2.8", + "@angular/elements": "^18.2.8", "@angular/forms": "^18.2.8", "@angular/material": "18.2.9", "@angular/platform-browser": "^18.2.8", @@ -1167,6 +1168,22 @@ "zone.js": "~0.14.10" } }, + "node_modules/@angular/elements": { + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular/elements/-/elements-18.2.8.tgz", + "integrity": "sha512-UflIToPUIOCo43JusBMQ4AEHdqe9ysvTiHrrU7QveXQ4sGrqShecElOBmWt9B7P7DfzpHuW79+mU4phlCsUR1g==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "18.2.8", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, "node_modules/@angular/forms": { "version": "18.2.8", "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.8.tgz", diff --git a/package.json b/package.json index 4485a7ff..f9d2df41 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@angular/common": "^18.2.8", "@angular/compiler": "^18.2.8", "@angular/core": "^18.2.8", + "@angular/elements": "^18.2.8", "@angular/forms": "^18.2.8", "@angular/material": "18.2.9", "@angular/platform-browser": "^18.2.8", diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 52241362..dcaa949f 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,5 +1,4 @@ import { Component } from '@angular/core'; -import {Custom1ModuleModule} from "./custom1-module/custom1-module.module"; @Component({ selector: 'app-root', diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 7abffdfc..055ea12d 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,31 +1,71 @@ -import {isDevMode, NgModule} from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; +import {ApplicationRef, DoBootstrap, EnvironmentInjector, Injector, isDevMode, NgModule} from '@angular/core'; +import {BrowserModule} from '@angular/platform-browser'; -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; -import {Custom1ModuleModule} from "./custom1-module/custom1-module.module"; -import { StoreModule } from '@ngrx/store'; -import {StoreDevtoolsModule} from "@ngrx/store-devtools"; -import * as StateConstants from "./state/state.const"; +import {AppComponent} from './app.component'; +import {StoreModule} from '@ngrx/store'; +// import {StoreDevtoolsModule} from "@ngrx/store-devtools"; +// import * as StateConstants from "./state/state.const"; +import {createCustomElement, NgElementConstructor} from "@angular/elements"; +import {RecommendationsComponent} from "./custom1-module/recommendations/recommendations.component"; +import {BriefResultComponent} from "./custom1-module/brief-result/brief-result/brief-result.component"; +import {Router} from "@angular/router"; +// Define the map +export const selectorComponentMap = new Map([ + ['nde-top-bar-before', RecommendationsComponent], + ['nde-search-result-item-container-before', BriefResultComponent] + +]); + @NgModule({ declarations: [ - AppComponent + AppComponent, + RecommendationsComponent ], imports: [ BrowserModule, - AppRoutingModule, - Custom1ModuleModule, - StoreModule.forRoot({}, {}), - StoreDevtoolsModule.instrument({ - maxAge: StateConstants.MAX_STATE_ACTIONS_IN_HISTORY, - logOnly: !isDevMode(), - trace: true, - traceLimit: StateConstants.MAX_STACK_FRAMES_IN_HISTORY - }) + StoreModule.forRoot(), + // StoreDevtoolsModule.instrument({ + // maxAge: StateConstants.MAX_STATE_ACTIONS_IN_HISTORY, + // logOnly: !isDevMode(), + // trace: true, + // traceLimit: StateConstants.MAX_STACK_FRAMES_IN_HISTORY + // }) ], providers: [], - bootstrap: [AppComponent] + bootstrap: [] }) -export class AppModule { } +export class AppModule implements DoBootstrap{ + private webComponentSelectorMap = new Map>(); + constructor(private injector: Injector, private router: Router) { + router.dispose(); //this prevents the router from being initialized and interfering with the shell app router + } + ngDoBootstrap(appRef: ApplicationRef) { + console.log('Start ngDoBootstrap of AppModule:' ); + for (const [key, value] of selectorComponentMap) { + const customElement = createCustomElement(value, {injector: this.injector}); + this.webComponentSelectorMap.set(key, customElement); + } + } + + /** + * Use componentMapping, selectorComponentMap + * @param componentName + * @param injector + * @param hostComponentInstance + */ + + public getComponentRef(componentName:string, injector: Injector, hostComponentInstance: unknown) { + const customComponentFactory = selectorComponentMap.get(componentName); + if (customComponentFactory) { + const customInjector = Injector.create({ + providers: [{provide: 'HOST_COMPONENT', useValue: hostComponentInstance}], + parent: this.injector + }); + return createCustomElement(customComponentFactory, {injector: customInjector}); + } + + return selectorComponentMap.get(componentName); + } +} diff --git a/src/app/custom1-module/custom1-module.module.ts b/src/app/custom1-module/custom1-module.module.ts deleted file mode 100644 index c6d55284..00000000 --- a/src/app/custom1-module/custom1-module.module.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { - NgModule, - CUSTOM_ELEMENTS_SCHEMA, - isDevMode, createComponent, EnvironmentInjector, Injector -} from '@angular/core'; -import { CommonModule } from '@angular/common'; -import * as utils from './utils'; -import {StoreDevtoolsModule} from '@ngrx/store-devtools'; -import {StoreModule} from '@ngrx/store'; -import * as StateConstants from '../state/state.const'; -import {TranslateModule} from "@ngx-translate/core"; -import {RecommendationsComponent} from "./recommendations/recommendations.component"; -import {BriefResultComponent} from "./brief-result/brief-result/brief-result.component"; - - -// Define the map -export const selectorComponentMap = new Map([ - ['nde-top-bar-before', RecommendationsComponent], - -]); - - - -@NgModule({ - declarations: [ - RecommendationsComponent, - ], - exports: [ - ], - imports: [ - CommonModule, - TranslateModule.forRoot({}), - StoreModule.forRoot({}), - StoreDevtoolsModule.instrument({ - maxAge: StateConstants.MAX_STATE_ACTIONS_IN_HISTORY, - logOnly: !isDevMode(), - trace: true, - traceLimit: StateConstants.MAX_STACK_FRAMES_IN_HISTORY - , connectInZone: true - }) - ], - schemas: [CUSTOM_ELEMENTS_SCHEMA] -}) -export class Custom1ModuleModule { - static utils = utils; // Expose the utilities for consumption - - constructor() { - console.log('Start constructor of Custom1ModuleModule:' ); - - } - - /** - * Use componentMapping, selectorComponentMap - * @param componentName - * @param environmentInjector - * @param injector - */ - - public getComponentRef(componentName:string, environmentInjector: EnvironmentInjector, injector: Injector) { - const componentFactory = selectorComponentMap.get(componentName); - if (componentFactory){ - return createComponent(componentFactory, {environmentInjector: environmentInjector}) - } - return null; - } - - -} diff --git a/src/bootstrap.ts b/src/bootstrap.ts index d9fcb7fd..73f05a24 100644 --- a/src/bootstrap.ts +++ b/src/bootstrap.ts @@ -1,14 +1,10 @@ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; - +import "@angular/compiler"; import { AppModule } from './app/app.module'; import {bootstrap} from "@angular-architects/module-federation-tools"; - - -// platformBrowserDynamic().bootstrapModule(AppModule) -// .catch(err => console.error(err)); - -bootstrap(AppModule, { +export const appModule = bootstrap(AppModule, { production: false, appType: 'microfrontend' -}).then(r => console.log('microfrontend bootstrap success', r)); +}).then(r => {console.log('custom remotote app bootstrap success', r); return r}); + + diff --git a/tsconfig.app.json b/tsconfig.app.json index bfa456eb..7d7c716d 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -5,8 +5,7 @@ "types": [] }, "files": [ - "src/main.ts", - "src/app/custom1-module/custom1-module.module.ts" + "src/main.ts" ], "include": [ "src/**/*.d.ts" diff --git a/webpack.config.js b/webpack.config.js index 5330ca15..5a3c6399 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -55,7 +55,7 @@ module.exports = { name: "customModule", filename: "remoteEntry.js", exposes: { - './CustomModule': './src/app/custom1-module/custom1-module.module.ts', + './web-components': './src/bootstrap.ts', }, // For hosts (please adjust) From dbff060bc26f6ae22a798d1954eb8912da408846 Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Sun, 26 Jan 2025 15:29:32 +0200 Subject: [PATCH 08/61] JIRA: URM-1234 Developer:shoul.manevitz Description: add dynamic providers to Angular bootstrap --- src/app/app.module.ts | 88 +++++++++++++++++++++---------------------- src/bootstrap.ts | 15 +++++--- webpack.config.js | 12 ++++-- 3 files changed, 60 insertions(+), 55 deletions(-) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 055ea12d..d6892363 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -17,55 +17,51 @@ export const selectorComponentMap = new Map([ ['nde-search-result-item-container-before', BriefResultComponent] ]); - -@NgModule({ - declarations: [ - AppComponent, - RecommendationsComponent - ], - imports: [ - BrowserModule, - StoreModule.forRoot(), - // StoreDevtoolsModule.instrument({ - // maxAge: StateConstants.MAX_STATE_ACTIONS_IN_HISTORY, - // logOnly: !isDevMode(), - // trace: true, - // traceLimit: StateConstants.MAX_STACK_FRAMES_IN_HISTORY - // }) - ], - providers: [], - bootstrap: [] -}) -export class AppModule implements DoBootstrap{ - private webComponentSelectorMap = new Map>(); - constructor(private injector: Injector, private router: Router) { - router.dispose(); //this prevents the router from being initialized and interfering with the shell app router - } - ngDoBootstrap(appRef: ApplicationRef) { - console.log('Start ngDoBootstrap of AppModule:' ); - for (const [key, value] of selectorComponentMap) { - const customElement = createCustomElement(value, {injector: this.injector}); - this.webComponentSelectorMap.set(key, customElement); +export const AppModule = (providers: any) => { + @NgModule({ + declarations: [ + AppComponent, + RecommendationsComponent + ], + imports: [ + BrowserModule, + ], + providers: providers, + bootstrap: [] + }) + class AppModule implements DoBootstrap{ + private webComponentSelectorMap = new Map>(); + constructor(private injector: Injector, private router: Router) { + router.dispose(); //this prevents the router from being initialized and interfering with the shell app router + } + ngDoBootstrap(appRef: ApplicationRef) { + console.log('Start ngDoBootstrap of AppModule:' ); + for (const [key, value] of selectorComponentMap) { + const customElement = createCustomElement(value, {injector: this.injector}); + this.webComponentSelectorMap.set(key, customElement); + } } - } - /** - * Use componentMapping, selectorComponentMap - * @param componentName - * @param injector - * @param hostComponentInstance - */ + /** + * Use componentMapping, selectorComponentMap + * @param componentName + * @param injector + * @param hostComponentInstance + */ - public getComponentRef(componentName:string, injector: Injector, hostComponentInstance: unknown) { - const customComponentFactory = selectorComponentMap.get(componentName); - if (customComponentFactory) { - const customInjector = Injector.create({ - providers: [{provide: 'HOST_COMPONENT', useValue: hostComponentInstance}], - parent: this.injector - }); - return createCustomElement(customComponentFactory, {injector: customInjector}); - } + public getComponentRef(componentName:string, injector: Injector, hostComponentInstance: unknown) { + const customComponentFactory = selectorComponentMap.get(componentName); + if (customComponentFactory) { + const customInjector = Injector.create({ + providers: [{provide: 'HOST_COMPONENT', useValue: hostComponentInstance}], + parent: this.injector + }); + return createCustomElement(customComponentFactory, {injector: customInjector}); + } - return selectorComponentMap.get(componentName); + return selectorComponentMap.get(componentName); + } } + return AppModule } + diff --git a/src/bootstrap.ts b/src/bootstrap.ts index 73f05a24..c31f8109 100644 --- a/src/bootstrap.ts +++ b/src/bootstrap.ts @@ -1,10 +1,15 @@ import "@angular/compiler"; import { AppModule } from './app/app.module'; import {bootstrap} from "@angular-architects/module-federation-tools"; +import {Store, StoreModule} from "@ngrx/store"; -export const appModule = bootstrap(AppModule, { - production: false, - appType: 'microfrontend' -}).then(r => {console.log('custom remotote app bootstrap success', r); return r}); - +export const bootstrapRemoteApp = (providers: any) => { + return bootstrap(AppModule(providers), { + production: false, + appType: 'microfrontend' + }).then(r => { + console.log('custom remotote app bootstrap success', r); + return r + }); +} diff --git a/webpack.config.js b/webpack.config.js index 5a3c6399..cfb8d7ca 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -65,10 +65,14 @@ module.exports = { // }, shared: share({ - - - '@ngx-translate/core': { singleton: true, eager: false}, - '@angular/material': { singleton: true, eager: false }, + "@angular/core": { requiredVersion: "auto" }, + "@angular/common": { requiredVersion: "auto" }, + "@angular/router": { requiredVersion: "auto" }, + "rxjs": { requiredVersion: "auto" }, + "@angular/common/http": { requiredVersion: "auto" }, + '@ngx-translate/core': { singleton: true}, + '@angular/material': { singleton: true, requiredVersion: "auto" }, + '@ngrx/store': { singleton: true}, ...sharedMappings.getDescriptors() }) From 306bb8b9d8a5a64145214aa705481e7358e46d6f Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Mon, 27 Jan 2025 10:10:32 +0200 Subject: [PATCH 09/61] JIRA: URM-1234 Developer:shoul.manevitz Description: add dynamic providers to Angular bootstrap --- src/bootstrap.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bootstrap.ts b/src/bootstrap.ts index c31f8109..b831784b 100644 --- a/src/bootstrap.ts +++ b/src/bootstrap.ts @@ -1,7 +1,6 @@ import "@angular/compiler"; import { AppModule } from './app/app.module'; import {bootstrap} from "@angular-architects/module-federation-tools"; -import {Store, StoreModule} from "@ngrx/store"; export const bootstrapRemoteApp = (providers: any) => { return bootstrap(AppModule(providers), { From d984cb38079d84dafb963962536845fc9fc7d19d Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Mon, 27 Jan 2025 11:01:02 +0200 Subject: [PATCH 10/61] JIRA: URM-1234 Developer:shoul.manevitz Description: add dynamic providers to Angular bootstrap --- src/app/app.module.ts | 35 ++++--------------- .../custom1-module/customComponentMappings.ts | 4 +++ src/app/custom1-module/utils.ts | 22 ------------ src/bootstrap.ts | 8 ++--- 4 files changed, 15 insertions(+), 54 deletions(-) create mode 100644 src/app/custom1-module/customComponentMappings.ts delete mode 100644 src/app/custom1-module/utils.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index d6892363..8f540802 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,23 +1,13 @@ -import {ApplicationRef, DoBootstrap, EnvironmentInjector, Injector, isDevMode, NgModule} from '@angular/core'; +import {ApplicationRef, DoBootstrap, Injector, NgModule} from '@angular/core'; import {BrowserModule} from '@angular/platform-browser'; - import {AppComponent} from './app.component'; -import {StoreModule} from '@ngrx/store'; -// import {StoreDevtoolsModule} from "@ngrx/store-devtools"; -// import * as StateConstants from "./state/state.const"; import {createCustomElement, NgElementConstructor} from "@angular/elements"; import {RecommendationsComponent} from "./custom1-module/recommendations/recommendations.component"; -import {BriefResultComponent} from "./custom1-module/brief-result/brief-result/brief-result.component"; import {Router} from "@angular/router"; +import {selectorComponentMap} from "./custom1-module/customComponentMappings"; -// Define the map -export const selectorComponentMap = new Map([ - ['nde-top-bar-before', RecommendationsComponent], - ['nde-search-result-item-container-before', BriefResultComponent] - -]); -export const AppModule = (providers: any) => { +export const AppModule = ({providers}: {providers:any}) => { @NgModule({ declarations: [ AppComponent, @@ -31,11 +21,12 @@ export const AppModule = (providers: any) => { }) class AppModule implements DoBootstrap{ private webComponentSelectorMap = new Map>(); + constructor(private injector: Injector, private router: Router) { router.dispose(); //this prevents the router from being initialized and interfering with the shell app router } + ngDoBootstrap(appRef: ApplicationRef) { - console.log('Start ngDoBootstrap of AppModule:' ); for (const [key, value] of selectorComponentMap) { const customElement = createCustomElement(value, {injector: this.injector}); this.webComponentSelectorMap.set(key, customElement); @@ -45,21 +36,9 @@ export const AppModule = (providers: any) => { /** * Use componentMapping, selectorComponentMap * @param componentName - * @param injector - * @param hostComponentInstance */ - - public getComponentRef(componentName:string, injector: Injector, hostComponentInstance: unknown) { - const customComponentFactory = selectorComponentMap.get(componentName); - if (customComponentFactory) { - const customInjector = Injector.create({ - providers: [{provide: 'HOST_COMPONENT', useValue: hostComponentInstance}], - parent: this.injector - }); - return createCustomElement(customComponentFactory, {injector: customInjector}); - } - - return selectorComponentMap.get(componentName); + public getComponentRef(componentName:string) { + return this.webComponentSelectorMap.get(componentName); } } return AppModule diff --git a/src/app/custom1-module/customComponentMappings.ts b/src/app/custom1-module/customComponentMappings.ts new file mode 100644 index 00000000..8c5ac829 --- /dev/null +++ b/src/app/custom1-module/customComponentMappings.ts @@ -0,0 +1,4 @@ +// Define the map +export const selectorComponentMap = new Map([ + // Add more pairs as needed +]); diff --git a/src/app/custom1-module/utils.ts b/src/app/custom1-module/utils.ts deleted file mode 100644 index fa6a4726..00000000 --- a/src/app/custom1-module/utils.ts +++ /dev/null @@ -1,22 +0,0 @@ -export function add(a: number, b: number): number { - return a + b; -} - -export function subtract(a: number, b: number): number { - return a - b; -} - - -export function getTitle(): string { - return 'Working with remote module'; -} - - -export function changeRecomendation(){ - const h1 = document.createElement('h1'); - h1.innerHTML = 'Webpack is awesome. This is change recommendation page from yellow package'; - const comp = document.getElementsByTagName('nde-search-results-recommendations'); - - comp.item(0)!.innerHTML = 'I get it from remote yellow package!!!!'; - -} diff --git a/src/bootstrap.ts b/src/bootstrap.ts index b831784b..94cba23e 100644 --- a/src/bootstrap.ts +++ b/src/bootstrap.ts @@ -2,12 +2,12 @@ import "@angular/compiler"; import { AppModule } from './app/app.module'; import {bootstrap} from "@angular-architects/module-federation-tools"; -export const bootstrapRemoteApp = (providers: any) => { - return bootstrap(AppModule(providers), { - production: false, +export const bootstrapRemoteApp = (bootstrapOptions: any) => { + return bootstrap(AppModule(bootstrapOptions), { + production: true, appType: 'microfrontend' }).then(r => { - console.log('custom remotote app bootstrap success', r); + console.log('custom remote app bootstrap success', r); return r }); } From 1211ae17c705775d42f00db90f16b53183d0ed64 Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Mon, 27 Jan 2025 11:52:15 +0200 Subject: [PATCH 11/61] JIRA: URM-1234 Developer:shoul.manevitz Description: add dynamic providers to Angular bootstrap --- webpack.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webpack.config.js b/webpack.config.js index cfb8d7ca..9f97f208 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -55,7 +55,7 @@ module.exports = { name: "customModule", filename: "remoteEntry.js", exposes: { - './web-components': './src/bootstrap.ts', + './custom-module': './src/bootstrap.ts', }, // For hosts (please adjust) From 50a620a96ed8ecbea088cdaa310b793eedfb25e7 Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Wed, 29 Jan 2025 10:49:31 +0200 Subject: [PATCH 12/61] URM-12345 | shoul.manevitz | workaround for module federation issue 458 --- src/app/app.module.ts | 4 +++- src/app/styles/_customized-theme.scss | 2 +- webpack.config.js | 7 +++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 8f540802..d16a2553 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,10 +1,11 @@ -import {ApplicationRef, DoBootstrap, Injector, NgModule} from '@angular/core'; +import {ApplicationRef, DoBootstrap, Injector, ModuleWithProviders, NgModule} from '@angular/core'; import {BrowserModule} from '@angular/platform-browser'; import {AppComponent} from './app.component'; import {createCustomElement, NgElementConstructor} from "@angular/elements"; import {RecommendationsComponent} from "./custom1-module/recommendations/recommendations.component"; import {Router} from "@angular/router"; import {selectorComponentMap} from "./custom1-module/customComponentMappings"; +import {TranslateModule} from "@ngx-translate/core"; export const AppModule = ({providers}: {providers:any}) => { @@ -15,6 +16,7 @@ export const AppModule = ({providers}: {providers:any}) => { ], imports: [ BrowserModule, + TranslateModule.forRoot({}) ], providers: providers, bootstrap: [] diff --git a/src/app/styles/_customized-theme.scss b/src/app/styles/_customized-theme.scss index acc5b287..c2689c83 100644 --- a/src/app/styles/_customized-theme.scss +++ b/src/app/styles/_customized-theme.scss @@ -8,6 +8,6 @@ .custom-nde-theme{ - @include mat.all-component-themes(m3-theme.$light-theme); + @include mat.all-component-colors(m3-theme.$light-theme); @include mat.system-level-colors(m3-theme.$light-theme); } diff --git a/webpack.config.js b/webpack.config.js index 9f97f208..ef0ad863 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -2,6 +2,7 @@ const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPl const mf = require("@angular-architects/module-federation/webpack"); const CopyWebpackPlugin = require('copy-webpack-plugin'); const path = require("path"); +const webpack = require("webpack"); const share = mf.share; const sharedMappings = new mf.SharedMappings(); @@ -48,6 +49,11 @@ module.exports = { ] } } // Adjust the paths as needed ] }), + // DISABLE ngDevMode as it is not needed in a remoteEntry work around for issue: https://github.com/angular-architects/module-federation-plugin/issues/458 + new webpack.DefinePlugin({ + ngDevMode: "undefined", + }), + // END DISABLE ngDevMode as it is not needed in a remoteEntry new ModuleFederationPlugin({ library: { type: "module" }, @@ -70,6 +76,7 @@ module.exports = { "@angular/router": { requiredVersion: "auto" }, "rxjs": { requiredVersion: "auto" }, "@angular/common/http": { requiredVersion: "auto" }, + '@angular/platform-browser': { requiredVersion: 'auto' }, '@ngx-translate/core': { singleton: true}, '@angular/material': { singleton: true, requiredVersion: "auto" }, '@ngrx/store': { singleton: true}, From a42cc0f060eefb9327f2cc4f4d69bf15ea9c679e Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Sun, 2 Feb 2025 11:42:19 +0200 Subject: [PATCH 13/61] URM-12345 | shoul.manevitz | remove workaround for module federation issue --- webpack.config.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index ef0ad863..1b2826df 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -50,9 +50,9 @@ module.exports = { ] }), // DISABLE ngDevMode as it is not needed in a remoteEntry work around for issue: https://github.com/angular-architects/module-federation-plugin/issues/458 - new webpack.DefinePlugin({ - ngDevMode: "undefined", - }), + // new webpack.DefinePlugin({ + // ngDevMode: "undefined", + // }), // END DISABLE ngDevMode as it is not needed in a remoteEntry new ModuleFederationPlugin({ library: { type: "module" }, From 7a53dcbbda147bdeab2f519f82fda3264d9fdcc0 Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Mon, 3 Feb 2025 17:25:52 +0200 Subject: [PATCH 14/61] works with web components --- src/bootstrap.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bootstrap.ts b/src/bootstrap.ts index 94cba23e..26c29cc6 100644 --- a/src/bootstrap.ts +++ b/src/bootstrap.ts @@ -7,7 +7,7 @@ export const bootstrapRemoteApp = (bootstrapOptions: any) => { production: true, appType: 'microfrontend' }).then(r => { - console.log('custom remote app bootstrap success', r); + console.log('custom remote app bootstrap success!', r); return r }); } From aa548567b22d47af7adc7b061ad89d4b53056983 Mon Sep 17 00:00:00 2001 From: "david.bendavid" Date: Sun, 9 Mar 2025 22:49:31 +0200 Subject: [PATCH 15/61] Updated webpack config, environment settings, and dependencies --- build-settings.env | 2 +- package.json | 2 + prebuild.js | 56 ++ src/app/app.module.ts | 4 +- .../custom1-module/customComponentMappings.ts | 15 +- .../full-display-details.component.html | 15 + .../full-display-details.component.scss | 9 + .../full-display-details.component.spec.ts | 21 + .../full-display-details.component.ts | 201 ++++++ src/app/models/search.model.ts | 409 ++++++++++++ src/app/models/view-config.model.ts | 619 ++++++++++++++++++ src/app/state/state.const.ts | 8 + src/app/styles/_customized-theme.scss | 123 +++- src/app/test-after/test-after.component.html | 4 + src/app/test-after/test-after.component.scss | 9 + .../test-after/test-after.component.spec.ts | 21 + src/app/test-after/test-after.component.ts | 24 + .../test-before/test-before.component.html | 1 + .../test-before/test-before.component.scss | 4 + .../test-before/test-before.component.spec.ts | 21 + src/app/test-before/test-before.component.ts | 10 + .../test-bottom/test-bottom.component.html | 1 + .../test-bottom/test-bottom.component.scss | 4 + .../test-bottom/test-bottom.component.spec.ts | 21 + src/app/test-bottom/test-bottom.component.ts | 10 + src/app/test-top/test-top.component.html | 1 + src/app/test-top/test-top.component.scss | 4 + src/app/test-top/test-top.component.spec.ts | 21 + src/app/test-top/test-top.component.ts | 10 + src/assets/css/custom.css | 0 src/assets/homepage/README.md | 14 + src/assets/homepage/homepage.css.tmpl | 259 ++++++++ src/assets/homepage/homepage_en.html.tmpl | 112 ++++ src/assets/icons/custom_icons.svg | 0 .../images/CustomModule_Waving_Winking.jpeg | Bin 0 -> 146434 bytes src/assets/images/library-logo.png | Bin 0 -> 5940 bytes 36 files changed, 2027 insertions(+), 8 deletions(-) create mode 100644 prebuild.js create mode 100644 src/app/full-display-details/full-display-details.component.html create mode 100644 src/app/full-display-details/full-display-details.component.scss create mode 100644 src/app/full-display-details/full-display-details.component.spec.ts create mode 100644 src/app/full-display-details/full-display-details.component.ts create mode 100644 src/app/models/search.model.ts create mode 100644 src/app/models/view-config.model.ts create mode 100644 src/app/test-after/test-after.component.html create mode 100644 src/app/test-after/test-after.component.scss create mode 100644 src/app/test-after/test-after.component.spec.ts create mode 100644 src/app/test-after/test-after.component.ts create mode 100644 src/app/test-before/test-before.component.html create mode 100644 src/app/test-before/test-before.component.scss create mode 100644 src/app/test-before/test-before.component.spec.ts create mode 100644 src/app/test-before/test-before.component.ts create mode 100644 src/app/test-bottom/test-bottom.component.html create mode 100644 src/app/test-bottom/test-bottom.component.scss create mode 100644 src/app/test-bottom/test-bottom.component.spec.ts create mode 100644 src/app/test-bottom/test-bottom.component.ts create mode 100644 src/app/test-top/test-top.component.html create mode 100644 src/app/test-top/test-top.component.scss create mode 100644 src/app/test-top/test-top.component.spec.ts create mode 100644 src/app/test-top/test-top.component.ts create mode 100644 src/assets/css/custom.css create mode 100644 src/assets/homepage/README.md create mode 100644 src/assets/homepage/homepage.css.tmpl create mode 100644 src/assets/homepage/homepage_en.html.tmpl create mode 100644 src/assets/icons/custom_icons.svg create mode 100644 src/assets/images/CustomModule_Waving_Winking.jpeg create mode 100644 src/assets/images/library-logo.png diff --git a/build-settings.env b/build-settings.env index e9df1c44..02d6f5d2 100644 --- a/build-settings.env +++ b/build-settings.env @@ -1,2 +1,2 @@ INST_ID=01BC_INST -VIEW_ID=Auto1 +VIEW_ID=ndeView diff --git a/package.json b/package.json index f9d2df41..c8651dc2 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,13 @@ "scripts": { "ng": "ng", "start": "ng serve", + "prestart": "node prebuild.js", "start:no-prebundle": "ng serve --prebundle=false", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", "postbuild": "node postbuild.js", + "prebuild": "node prebuild.js", "run:all": "node node_modules/@angular-architects/module-federation/src/server/mf-dev-server.js" }, "private": true, diff --git a/prebuild.js b/prebuild.js new file mode 100644 index 00000000..602f4abd --- /dev/null +++ b/prebuild.js @@ -0,0 +1,56 @@ +const fs = require('fs'); +const path = require('path'); + +const envFilePath = path.resolve(__dirname, 'build-settings.env'); +const bootstrapPath = path.resolve(__dirname, 'src/bootstrap.ts'); +const mainPath = path.resolve(__dirname, 'src/main.ts'); +const webpackConfigPath = path.resolve(__dirname, 'webpack.config.js'); + +if (!fs.existsSync(envFilePath)) { + console.error("Error: build-settings.env file not found!"); + process.exit(1); +} + +const envContent = fs.readFileSync(envFilePath, 'utf8'); +const match = envContent.match(/^ADDON_NAME=(.*)$/m); + +if (match) { + const addonName = match[1].trim(); + const newBootstrapPath = path.resolve(__dirname, `src/bootstrap${addonName}.ts`); + + // Rename bootstrap.ts if not already renamed + if (fs.existsSync(bootstrapPath) && !fs.existsSync(newBootstrapPath)) { + fs.renameSync(bootstrapPath, newBootstrapPath); + console.log(`Renamed bootstrap.ts to bootstrap${addonName}.ts`); + } + + // Modify import in main.ts + let mainContent = fs.readFileSync(mainPath, 'utf8'); + mainContent = mainContent.replace( + /import\(['"]\.\/bootstrap['"]\)/g, + `import('./bootstrap${addonName}')` + ); + fs.writeFileSync(mainPath, mainContent); + console.log(`Updated main.ts to import('./bootstrap${addonName}')`); + + // Modify webpack.config.js + let webpackConfig = fs.readFileSync(webpackConfigPath, 'utf8'); + + // Replace name: "customModule" with name: "{ADDON_NAME}" + webpackConfig = webpackConfig.replace( + /name:\s*["']customModule["']/, + `name: "${addonName}"` + ); + + // Replace './custom-module': './src/bootstrap.ts' with './{ADDON_NAME}': './src/bootstrap{ADDON_NAME}.ts' + webpackConfig = webpackConfig.replace( + /'\.\/custom-module':\s*'\.\/src\/bootstrap.ts'/, + `'./${addonName}': './src/bootstrap${addonName}.ts'` + ); + + fs.writeFileSync(webpackConfigPath, webpackConfig); + console.log(`Updated webpack.config.js for addon: ${addonName}`); + +} else { + console.log("ADDON_NAME not found in build-settings.env. Skipping renaming."); +} diff --git a/src/app/app.module.ts b/src/app/app.module.ts index d16a2553..a1b3e13a 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -2,7 +2,6 @@ import {ApplicationRef, DoBootstrap, Injector, ModuleWithProviders, NgModule} fr import {BrowserModule} from '@angular/platform-browser'; import {AppComponent} from './app.component'; import {createCustomElement, NgElementConstructor} from "@angular/elements"; -import {RecommendationsComponent} from "./custom1-module/recommendations/recommendations.component"; import {Router} from "@angular/router"; import {selectorComponentMap} from "./custom1-module/customComponentMappings"; import {TranslateModule} from "@ngx-translate/core"; @@ -11,8 +10,7 @@ import {TranslateModule} from "@ngx-translate/core"; export const AppModule = ({providers}: {providers:any}) => { @NgModule({ declarations: [ - AppComponent, - RecommendationsComponent + AppComponent ], imports: [ BrowserModule, diff --git a/src/app/custom1-module/customComponentMappings.ts b/src/app/custom1-module/customComponentMappings.ts index 8c5ac829..b232c1e3 100644 --- a/src/app/custom1-module/customComponentMappings.ts +++ b/src/app/custom1-module/customComponentMappings.ts @@ -1,4 +1,17 @@ +import { FullDisplayDetailsComponentDist } from "../full-display-details/full-display-details.component"; +import { TestAfterComponent } from "../test-after/test-after.component"; +import { TestBeforeComponent } from "../test-before/test-before.component"; +import { TestBottomComponent } from "../test-bottom/test-bottom.component"; +import { TestTopComponent } from "../test-top/test-top.component"; + // Define the map export const selectorComponentMap = new Map([ - // Add more pairs as needed + ["nde-full-display-details",FullDisplayDetailsComponentDist], + ["nde-full-display-details-after",TestAfterComponent], + ["nde-full-display-details-top",TestTopComponent], + ["nde-full-display-details-before",TestBeforeComponent], + ["nde-full-display-details-bottom",TestBottomComponent] + + + ]); diff --git a/src/app/full-display-details/full-display-details.component.html b/src/app/full-display-details/full-display-details.component.html new file mode 100644 index 00000000..343f4120 --- /dev/null +++ b/src/app/full-display-details/full-display-details.component.html @@ -0,0 +1,15 @@ +
+

Current component start

+

{{ getTitle() }} ({{getMmsId()}})

+

+ {{ isConnected ? 'Connected' : 'Not Connected' }} +

+

subject:{{ subject }}

+

desc:{{ getDesc() }}

+

format:{{ getFormat() }}

+

author:{{ getAuthor() }}

+

publisher:{{ getPublisher() }}

+

partof:{{ getAuthor() }}

+

creation Date:{{ getCreationDate() }}

+

Current component end

+
\ No newline at end of file diff --git a/src/app/full-display-details/full-display-details.component.scss b/src/app/full-display-details/full-display-details.component.scss new file mode 100644 index 00000000..cfc4442d --- /dev/null +++ b/src/app/full-display-details/full-display-details.component.scss @@ -0,0 +1,9 @@ +.connected { + color: green; + font-weight: bold; + } + + .not-connected { + color: red; + font-weight: bold; + } \ No newline at end of file diff --git a/src/app/full-display-details/full-display-details.component.spec.ts b/src/app/full-display-details/full-display-details.component.spec.ts new file mode 100644 index 00000000..060174da --- /dev/null +++ b/src/app/full-display-details/full-display-details.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FullDisplayDetailsComponentDist } from './full-display-details.component'; + +describe('FullDisplayDetailsComponent', () => { + let component: FullDisplayDetailsComponentDist; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [FullDisplayDetailsComponentDist] + }); + fixture = TestBed.createComponent(FullDisplayDetailsComponentDist); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/full-display-details/full-display-details.component.ts b/src/app/full-display-details/full-display-details.component.ts new file mode 100644 index 00000000..fffbc2c5 --- /dev/null +++ b/src/app/full-display-details/full-display-details.component.ts @@ -0,0 +1,201 @@ +import {Component, Inject, Input, Optional} from '@angular/core'; +import {Doc, SearchMetaData, Facet} from "../models/search.model"; +import {Store} from "@ngrx/store"; +import {Observable} from "rxjs"; +import {createEntityAdapter, EntityState} from "@ngrx/entity"; +import {createFeatureSelector, createSelector} from "@ngrx/store"; + + +export const SUCCESS: "success" = 'success'; +export const FAIL: "fail" = 'fail'; +export const LOADING: "loading" = 'loading'; +export const PENDING: "pending" = 'pending'; +export type LoadingStatus = typeof PENDING | typeof LOADING | typeof SUCCESS| typeof FAIL; +export const USER: "user" = 'user'; +export const TIMEOUT: "timeout" = 'timeout'; +export type LogoutReason = typeof USER | typeof TIMEOUT; +export const MAX_STATE_ACTIONS_IN_HISTORY = 25; +export const MAX_STACK_FRAMES_IN_HISTORY = 25; +export const INDEX_ZERO = 0; +export const getRecordId = (doc: Doc) => doc.pnx.control.recordid[INDEX_ZERO]; +export const searchAdapter = createEntityAdapter({ + selectId: getRecordId +}); + + + +export type stringBoolean= "N" | "Y"; +export interface SearchParams { + q: string, + scope: string, + skipDelivery?: stringBoolean, + offset?: number, + limit?: number, + sort?: string, + inst?: string, + refEntryActive?: boolean, + disableCache?: boolean, + newspapersActive?: boolean, + qInclude?: string[], + qExclude?: string[], + multiFacets?: string[], + pfilter?: string, + tab?: string, + mode?: string, + isCDSearch?: boolean, + pcAvailability?: boolean, + searchInFulltextUserSelection?: boolean +} +export const searchFeatureName = 'Search'; +export const selectSearchState = createFeatureSelector(searchFeatureName); +export interface SearchState extends EntityState{ + status: LoadingStatus, + searchParams: SearchParams | null, + searchResultsMetaData: SearchMetaData | null, + selectedPageSize: number | null, + filter: {status: LoadingStatus , filters: Facet[] | null}, + searchNotificationMsg:string, + presentNotification:boolean, + isSearchAndAppendMode?: boolean, + numOfItemsToAppend?: number, + pcAvailabilityToggleValue:boolean, + searchInFullTextToggleValue: boolean +} + + +const { + selectIds, + selectEntities, + selectAll, + selectTotal +} = searchAdapter.getSelectors(selectSearchState); +export const selectAllSearchResults = selectAll; + +@Component({ + selector: 'full-display-details', + templateUrl: './full-display-details.component.html', + styleUrls: ['./full-display-details.component.scss'] +}) +export class FullDisplayDetailsComponentDist{ + imageUrl: string | undefined; + subject: string | undefined; + searchResults$: Observable; + public isConnected: boolean = false; + + @Input() private hostComponent!: any; + + constructor(public store: Store) { + this.searchResults$ = this.store.select(selectAllSearchResults); + + + } + + + ngOnInit(): void { + console.log('FullDisplayDetailsComponent ngOnInit:', this.getSubjectText()); + this.subject = this.getSubjectText(); + this.checkMmsId(); + + } + + + + private getSubjectText(): string | undefined { + if(this.hostComponent){ + // Safe access using bracket notation for 'subject' based on TypeScript's requirement + return this.hostComponent.searchResult?.pnx?.display?.['subject']?.join(', '); + }else{ + return undefined; + } + } + + + public getDesc(): string | undefined { + if(this.hostComponent){ + // Safe access using bracket notation for 'description' based on TypeScript's requirement + return this.hostComponent.searchResult?.pnx?.display?.['description']?.join(', '); + }else{ + return undefined; + } + } + + + public getTitle(): string | undefined { + if(this.hostComponent){ + // Safe access using bracket notation for 'title' based on TypeScript's requirement + return this.hostComponent.searchResult?.pnx?.display?.['title']?.join(', '); + }else{ + return undefined; + } + } + + + public getAuthor(): string | undefined { + if(this.hostComponent){ + // Safe access using bracket notation for 'author' based on TypeScript's requirement + return this.hostComponent.searchResult?.pnx?.display?.['contributor']?.join(', '); + }else{ + return undefined; + } + } + + public getCreationDate(): string | undefined { + if(this.hostComponent){ + // Safe access using bracket notation for 'creationdate' based on TypeScript's requirement + return this.hostComponent.searchResult?.pnx?.display?.['creationdate']?.join(', '); + }else{ + return undefined; + } + } + + + public getFormat(): string | undefined { + if(this.hostComponent){ + // Safe access using bracket notation for 'format' based on TypeScript's requirement + return this.hostComponent.searchResult?.pnx?.display?.['format']?.join(', '); + }else{ + return undefined; + } + } + + public getPublisher(): string | undefined { + if(this.hostComponent){ + // Safe access using bracket notation for 'publisher' based on TypeScript's requirement + return this.hostComponent.searchResult?.pnx?.display?.['publisher']?.join(', '); + }else{ + return undefined; + } + } + + public getIsPartOf(): string | undefined { + if(this.hostComponent){ + // Safe access using bracket notation for 'ispartof' based on TypeScript's requirement + return this.hostComponent.searchResult?.pnx?.display?.['ispartof']?.join(', '); + }else{ + return undefined; + } + } + + public getMmsId(): string | undefined { + if(this.hostComponent){ + //console.log('FullDisplayDetailsComponent getMmsId:', this.hostComponent.searchResult?.pnx?.control); + // Safe access using bracket notation for 'mmsid' based on TypeScript's requirement + return this.hostComponent.searchResult?.pnx?.control?.['recordid']?.join(', '); + }else{ + return undefined; + } + } + + private checkMmsId(): void { + console.log('FullDisplayDetailsComponent checkMmsId:', window.location.href); + + // Parse the query string manually + const params = new URLSearchParams(window.location.search); + const docid = params.get('docid'); + const mmsId = this.getMmsId(); + + console.log('MmsId:', mmsId, 'DocId:', docid); + this.isConnected = (docid === mmsId); + } + +} diff --git a/src/app/models/search.model.ts b/src/app/models/search.model.ts new file mode 100644 index 00000000..52731341 --- /dev/null +++ b/src/app/models/search.model.ts @@ -0,0 +1,409 @@ +import {LoadingStatus} from "../state/state.const"; + +export type stringBoolean= "N" | "Y"; +export interface SearchParams { + q: string, + scope: string, + skipDelivery?: stringBoolean, + offset?: number, + limit?: number, + sort?: string, + inst?: string, + refEntryActive?: boolean, + disableCache?: boolean, + newspapersActive?: boolean, + qInclude?: string[], + qExclude?: string[], + multiFacets?: string[], + pfilter?: string, + tab?: string, + mode?: string, + isCDSearch?: boolean, + pcAvailability?: boolean, + searchInFulltextUserSelection?: boolean +} + +export interface SearchParamsWithStrParams extends Omit { + qInclude?: string; // Change qInclude to a string + qExclude?: string; // Change qInclude to a string +} + +export type SearchMetaData = Omit; +export interface SearchData { + beaconO22: string; + info: Info; + highlights: Highlights; + docs: Doc[]; + facets?: Facet[]; + timelog: Timelog; + did_u_mean?: string; +} + +export interface FullDisplayQueryParams { + docid: string; + context?: Context; + adaptor?: Adaptor; + isFrbr?: boolean; + search_scope?: string; + isHighlightedRecord?: boolean; + tab?: string; + vid?: string; + state?: string; +} + +export interface FullDisplayParams { + docid: string; + context?: Context; + adaptor?: Adaptor; + isFrbr?: boolean; + scope?: string; + isHighlightedRecord?: boolean; +} + +export interface Doc { + context: Context; + adaptor: Adaptor; + "@id": string; + pnx: Pnx; + extras?: Extras; + enrichment?: Enrichment; + thumbnailForCD?: ThumbnailForCD; + unpaywallStatus?: LoadingStatus; + delivery?: DocDelivery; + expired?: boolean; // indicates the record should be reloaded +} + +export enum Adaptor { + LocalSearchEngine = "Local Search Engine", + PrimoCentral = "Primo Central", + PrimoVeDeepSearch = "Primo VE Deep Search", + EbscoLocal = "EbscoLocal", + WorldCatLocal = 'WorldCatLocal', + SummonLocal = 'SummonLocal', + SearchWebhook = 'SearchWebhook', + WebHook = 'WEBHOOK', +} + +export enum Context { + L = "L", + PC = "PC", + SP = "SP", + U = "U" +} + +export interface ThumbnailForCD { + link?: DeliveryLink[]; + hasD?: boolean; +} + +export interface IEDeliveryRecord { + recId: string; + sharedDigitalCandidates: string[] | null; +} + + +export interface MergedDelivery { + docDelivery: DocDelivery; + recordId: string; +} + +export interface ElectronicService { + adaptorid: string + ilsApiId: string + serviceUrl: string + licenceExist: string + packageName: string + availiability: string + authNote: string + publicNote: string + hasAccess: boolean + serviceType: string + registrationRequired: boolean + numberOfFiles: number + cdlItemAvailable: boolean + cdl: boolean + parsedAvailability: string[] + licenceUrl: string + relatedTitle: string; + serviceDescription?: string; + deniedNote?: string; + fileType?: string; + firstFileSize?: string; + representationEntityType? : string + contextServiceId? : string + publicAccessModel?: string +} + +export interface AdditionalElectronicService { + OpenURL: ElectronicService[] + LinktorsrcOA: ElectronicService[] + LinktorsrcNonOA: ElectronicService[] + RelatedServices: ElectronicService[] +} + + +export interface DocDelivery { + link?: DeliveryLink[]; + deliveryCategory: string[]; + availability: string[]; + availabilityLinks?: string[]; + availabilityLinksUrl?: string[]; + displayLocation: boolean; + additionalLocations: boolean; + physicalItemTextCodes: string; + feDisplayOtherLocations: boolean; + displayedAvailability: string; + holding?: Location[]; + almaOpenurl: string; + electronicServices?: ElectronicService[]; + additionalElectronicServices?: AdditionalElectronicService + recordInstitutionCode: string; + sharedDigitalCandidates: string[]; + hasD?: boolean; + digitalAuxiliaryMode?: boolean; + bestlocation?: Location; + serviceMode?: string[]; + consolidatedCoverage?: string; + isFilteredHoldings?: boolean; + physicalServiceId?: string; + recordOwner?: string; + GetIt1: GetIt1[]; + hideResourceSharing: boolean; + almaInstitutionsList?: AlmaInstitutionsList[]; + hasFilteredServices?: string; + electronicContextObjectId?: string; +} + +export interface AlmaInstitutionsList { + availabilityStatus: string; + envURL: string; + getitLink: string[]; + instCode: string; + instId: string; + instName: string; +} + +export interface Location { + organization: string; + libraryCode: string; + mainLocation: string; + subLocation: string; + callNumber: string; + availabilityStatus: string; + ilsApiId?: string; + isValidUser?: boolean; + subLocationCode: string; + matchForHoldings?: MatchForHolding[]; + holdId: string; + holKey: string; + stackMapUrl?: string; + relatedTitle?: string; +} + +export interface MatchForHolding { + matchOn: string; + holdingRecord: string; +} + +export interface Extras { + citationTrails: CitationTrails; + timesCited: TimesCited; +} + +export interface DeliveryLink { + displayLabel?: string; + linkType?: string; + linkURL?: string; + '@id'?: string; + publicNote?: string +} +export interface CitationTrails { + citing: string[]; + citedby: string[]; +} + +export interface TimesCited { + scopus?: Scopus; + wos?: WebOfScience; +} + +export interface Scopus { + citedRedId?: string; + extensionVal?: string; +} + +export interface WebOfScience { + citedRedId?: string; + extensionVal?: string; + wosFinalLink?: string; +} + +export interface Pnx { + display: { [key: string]: string[] }; + control: Control; + addata: { [key: string]: string[] }; + sort: Sort; + facets: { [key: string]: string[] }; + links?: Links; + search?: { [key: string]: string[] }; + delivery?: PnxDelivery; +} + +export interface Control { + sourcerecordid: string[]; + recordid: string[]; + sourceid: string[] | string; + originalsourceid: string[]; + gtiid?: string[]; + sourcesystem: Sourcesystem[]; + sourceformat: Sourceformat[]; + score: Array; + isDedup?: boolean; + save_score?: number[]; + recordtype?: string[]; + sourcetype?: string[]; + pqid?: string[]; + addsrcrecordid?: string[]; + jstorid?: string[]; + galeid?: string[]; + attribute?: string[]; + rapidosourcerecordid? : string; + networklinkedrecordid? : string; + colldiscovery?: string[]; +} + +export enum Sourceformat { + Marc21 = "MARC21", + XML = "XML", + ESPLORO = 'ESPLORO' +} + +export enum Sourcesystem { + Ils = "ILS", + Other = "Other", +} + +export interface PnxDelivery { + fulltext: string[]; + delcategory: string[]; + availabilityLinkUrl: string; +} + +export interface Links { + openurl: string[]; + linktorsrc?: string[]; + thumbnail: string[]; + linktohtml: string[]; + openurlfulltext: string[]; + linktopdf?: string[]; + backlink?: string[]; + linktorsrcadditional?: string[]; + openurladditional?: string[]; + unpaywalllink?: string[]; +} + +export interface GetItLinks { + '@id': string, + adaptorid: string, + displayText: string | null, + getItTabText: string, + ilsApiId: string, + inst4opac: string, + isLinktoOnline: boolean, + link: string +} + +export interface GetIt1 { + category: string, + links: GetItLinks[] +} + +export interface RecordMainDetailsIfc { + pnx: Pnx; +} + +export interface Sort { + title: string[]; + author?: string[]; + creationdate: string[]; +} + +export interface Facets { + beaconO22: string; + facets: Facet[]; +} + +export interface Facet { + name: string; + values: FacetValue[]; +} + +export interface FacetValue { + value: string; + count: number; +} + +export interface Highlights { + general: string[]; + creator: string[]; + contributor: string[]; + subject: string[]; + title: string[]; + addtitle: string[]; + alttitle: string[]; + vertitle: string[]; + termsUnion: string[]; + snippet: string[]; +} + +export interface Info { + totalResultsLocal: number; + totalResultsPC: number; + total: number; + first: number; + last: number; +} + +export interface Timelog { + BUILD_RESULTS_RETRIVE_FROM_DB: string; + CALL_SOLR_GET_IDS_LIST: string; + RETRIVE_FROM_DB_COURSE_INFO: string; + RETRIVE_FROM_DB_RECORDS: string; + RETRIVE_FROM_DB_RELATIONS: string; + PRIMA_LOCAL_INFO_FACETS_BUILD_DOCS_HIGHLIGHTS: string; + PRIMA_LOCAL_SEARCH_TOTAL: string; + PC_SEARCH_CALL_TIME: string; + PC_BUILD_JSON_AND_HIGLIGHTS: string; + PC_SEARCH_TIME_TOTAL: string; + BUILD_BLEND_AND_CACHE_RESULTS: number; + BUILD_COMBINED_RESULTS_MAP: number; + COMBINED_SEARCH_TIME: number; + PROCESS_COMBINED_RESULTS: number; + FEATURED_SEARCH_TIME: number; +} + +export interface Enrichment { + virtualBrowseObject: VirtualBrowseObject; + bibVirtualBrowseObject: VirtualBrowseObject; +} + +export interface VirtualBrowseObject { + isVirtualBrowseEnabled: boolean; + callNumber: string; + callNumberBrowseField: string; +} + +export type IgnoreMapSimpleString = { + [key: string]: string; +} + +export type IgnoreMapSimpleBoolean = { + [key: string]: boolean; +} + +export type IgnoreMapMulti = { + [key: string]: number | string | string[] | undefined | null; +} + + + diff --git a/src/app/models/view-config.model.ts b/src/app/models/view-config.model.ts new file mode 100644 index 00000000..3c7e622d --- /dev/null +++ b/src/app/models/view-config.model.ts @@ -0,0 +1,619 @@ +/* eslint-disable */ +export interface ViewConfigData { + beaconO22: string; + vid: string + "primo-view": PrimoView; + tiles: Tiles; + "system-configuration": SystemConfiguration; + "mapping-tables": MappingTables; + authentication: Authentication[]; + "scopes-context-map": ScopesContextMap; + backend_system: string; + customization: Customization; + UIComponents: UIComponents; + queryTerms: { [key: string]: string[] }; + "bx-enable": boolean; + "tab-to-tiles": TabToTiles; + searchWithinJournalConfig: SearchWithinJournalConfig; + journal_tab: string; + "institution-base-url": string; + fieldsWithUseTranslation: any[]; + summon_over_alma: boolean; + rapido_sa_enabled: boolean; + "syndeticunbound-enable": boolean; + enableSingleLogout: boolean; + enableExtendSession: boolean; + enableExtendSessionToMax: boolean; + enableUserSettingForExtendSession: boolean; + useEsploroFullAssetPage: boolean; + useEsploroSearchPage: boolean; + "feature-flags": { [key: string]: boolean }; + "country-codes": string[]; + discovery_services_page: boolean; + discovery_local_no_login: boolean; + discovery_with_external_no_login: boolean; +} + +export interface UIComponents { + "583209347UI": The1100315795_UI; + "1641229997UI": The1100315795_UI; + "1759181046UI": The1100315795_UI; + drStartYear: The1100315795_UI; + boolOperator: The1100315795_UI; + drStartDay: The1100315795_UI; + "947577188UI": The1100315795_UI; + "3169448UI": The1100315795_UI; + drEndMonth: The1100315795_UI; + "377269842UI": The1100315795_UI; + "888840311UI": The1100315795_UI; + "1763123372UI": The1100315795_UI; + "1990929722UI": The1100315795_UI; + "1410115621UI": The1100315795_UI; + "2047526908UI": The1100315795_UI; + "1616829328UI": The1100315795_UI; + "1405368152UI": The1100315795_UI; + "957309741UI": The1100315795_UI; + "1321677582UI": The1100315795_UI; + "1376024419UI": The1100315795_UI; + drEndDay: The1100315795_UI; + "2003928281UI": The1100315795_UI; + "1951029823UI": The1100315795_UI; + "613131687UI": The1100315795_UI; + drStartMonth: The1100315795_UI; + drEndYear: The1100315795_UI; + "2015330391UI": The1100315795_UI; + "1969837079UI": The1100315795_UI; + "922931513UI": The1100315795_UI; + "1100315795UI": The1100315795_UI; + "1673426514UI": The1100315795_UI; + "1916938621UI": The1100315795_UI; + "1218266844UI": The1100315795_UI; + "42295145UI": The1100315795_UI; + "918184044UI": The1100315795_UI; + "444888963UI": The1100315795_UI; + "1706526186UI": The1100315795_UI; + freeText: FreeText; + "1275939264UI": The1100315795_UI; + "1219342078UI": The1100315795_UI; + "731082736UI": The1100315795_UI; + "1945191404UI": The1100315795_UI; + "1862591784UI": The1100315795_UI; + "2133281440UI": The1100315795_UI; +} + +export interface The1100315795_UI { + indexFields: IndexField[]; + type: Type; + defaultOption: string; + displayOptions: string[]; + options: string[]; +} + +export enum IndexField { + And = "AND", + Any = "any", + BeginsWith = "begins_with", + Cdate = "cdate", + Contains = "contains", + Creator = "creator", + Equals = "equals", + Exact = "exact", + Issn = "issn", + Lang = "lang", + Not = "NOT", + Or = "OR", + Rtype = "rtype", + Sub = "sub", + Title = "title", + UserTags = "user_tags", +} + +export interface Type { + _string: string; +} + +export interface FreeText { + indexFields: IndexField[]; + type: AdditionalLocationIcons; + defaultOption: string; + displayOptions: any[]; + options: any[]; +} + +export interface AdditionalLocationIcons { +} + +export interface Authentication { + "profile-name": string; + "authentication-system": string; + "silent-login-enabled": string; +} + +export interface Customization { + resourceIcons: Record; + additionalLocationIcons: AdditionalLocationIcons; + staticHtml: AdditionalLocationIcons; +} + +export interface MappingTables { + "Citation Linker Definitions": MappingTable[]; + "Request (Hold and Booking) Optional Parameters": MappingTable[]; + "Prima Direct Login To Other Institutions": any[]; + "Library Level List": AlmaViewItConfig[]; + "Personalize Your Results Disciplines Fields": MappingTable[]; + "Personal Setting Fields": MappingTable[]; + "Photocopy Request Detailed Display": MappingTable[]; + "Call Slip Optional Request Parameters": MappingTable[]; + "Requests Brief Display": MappingTable[]; + "My Account Menu Configuration - OvP": MappingTable[]; + "Report a Problem": any[]; + "Resource Recommender Config": MappingTable[]; + "Alma ViewIt Config": AlmaViewItConfig[]; + "My Account Links": any[]; + sort_fields_config: MappingTable[]; + "Institution Properties": AlmaViewItConfig[]; + "View Properties": MappingTable[]; + "Resource Sharing Request Parameters": MappingTable[]; + "Featured newspapers": MappingTable[]; + "Controlled Digital Lending Request Detailed Display": MappingTable[]; + "Digitization Optional Request Parameters": MappingTable[]; + "Purchase Request Optional Parameters": MappingTable[]; + "Share Action Configuration": AlmaViewItConfig[]; + "Loans Detailed Display": MappingTable[]; + "Actions List": MappingTable[]; + "Recent Searches Configuration": AlmaViewItConfig[]; + "Hypertext Linking Definitions": MappingTable[]; + "Browse Lists": MappingTable[]; + "Holdings Display In Locations List": HoldingsDisplayInLocationsList[]; + "Loans Brief Display": MappingTable[]; + "ILL Optional Request Parameters": MappingTable[]; + "Voice Languages": MappingTable[]; + "Bulk Definition": AlmaViewItConfig[]; + "Items Brief Display": MappingTable[]; + "Photocopy Optional Request Parameters": MappingTable[]; + "User Login Links": UserLoginLink[]; + "Acquisition Request Detailed Display": MappingTable[]; + primo_central_institutions_unique_ids: AlmaViewItConfig[]; + "Fines Detailed Display": MappingTable[]; + "ILL Request Detailed Display": MappingTable[]; + "Personal Details Configuration": AlmaViewItConfig[]; + "Prima Filter Bar Resource Types": MappingTable[]; + "Call Slip Request Detailed Display": MappingTable[]; + "Featured Results": MappingTable[]; + "Fines Brief Display": MappingTable[]; + "Hold Optional Request Parameters": MappingTable[]; + "Location Item content": MappingTable[]; + "Short Loan and Booking Request Detailed Display": MappingTable[]; + "Voice Search Languages Activation": any[]; + "General Configuration": AlmaViewItConfig[]; + "consortia member codes": any[]; + "get it prefilter locations": any[]; + "Auto Complete Configuration": MappingTable[]; + "Main Menu URLs for the New UI": any[]; + "direct linking config": MappingTable[]; + "Citation styles": AlmaViewItConfig[]; + "Export RIS encodings": AlmaViewItConfig[]; + "Recall Optional Request Parameters": MappingTable[]; + "Hold/Recall Request Detailed Display": MappingTable[]; + "Holdings Record Configuration": MappingTable[]; + "Institution Base URLs": MappingTable[]; +} + +export interface MappingTable { + target: string; + source1: string; + source2?: string; + source3?: string; + source4?: string; + source5?: string; + source6?: string; +} + +export interface AlmaViewItConfig { + target: string; + source1: string; +} + +export interface HoldingsDisplayInLocationsList { + target: string; + source2: string; +} + +export interface UserLoginLink { + source1: string; +} + +export interface PrimoView { + "available-tabs": string[]; + institution: Institution; + "pc-availability-tab-scopes-map": TabScopesMap; + "view-org-level": ViewOrgLevel; + "attributes-map": AttributesMap; + "auto-complete-enabled-map": AutoCompleteEnabledMap; + scopes: Scope[]; + "cdi-ft-search-tab-scopes-map": TabScopesMap; + timeout: Timeout; + "is-union-catalog-view": boolean; + "display-unpaywall-links": boolean; + display_quick_links: string; +} + +export interface AttributesMap { + tabsRemote: string; + css: string; + sessionTimeoutURL: string; + interfaceLanguageOptions: string; + threeLettersLanguagesOptions: string; + libCard: string; + defaultUserInstitution: string; + customerCode: string; + layout: string; + bulkSizeOptions: string; + institution: string; + bulkSize: string; + supportedDocumentsLanguageOptions: string; + interfaceLanguage: string; + institutionCode: string; + mobileCss: string; + ownerInstituionCode: string; + citationTrailsEnabled: boolean; + citationTrailsFilterByAvailability: boolean; + selectedFacetLocation: string; + personalizationEnabled: boolean; + moreLikeCourse: boolean; + moreLikeCollection: boolean; + collectionDiscoveryEnabled: boolean; + displayNewspapersLink: boolean; + displayFeaturedNewspapers: boolean; + refEntryActive: boolean; + relatedItemsActive: boolean; + legantoURLTemplate: string; + multilingualConfigurationEnabled: boolean; + journalCategoriesTree: boolean; + newspaperSearchFilterByAvailability: boolean; + displayVoiceSearch: boolean; + displayLibraryNameLocationFacet: boolean; + virtualBrowseType: string; + editMyLibraryCard: boolean; + mayAlsoBeHeldByEnabled: boolean; +} + +export interface AutoCompleteEnabledMap { + CentralIndex: boolean; + MyInst_and_CI: boolean; + DeepSearch: boolean; + WorldCat: boolean; + jsearch_scope: boolean; + Ebsco: boolean; + Webhook: boolean; + Research: boolean; + MyInstitution: boolean; +} + +export interface TabScopesMap { + Everything: Everything; + CentralIndex: CentralIndex; +} + +export interface CentralIndex { + CentralIndex: string; +} + +export interface Everything { + MyInst_and_CI: string; +} + +export interface Institution { + description: string; + id: number; + "org-fields": ViewOrgLevel; + "is-org-fields-set": boolean; + "institution-code": string; + "institution-name": string; + "last-modified-time-stamp": string; + "updated-by": string; + "newspapers-search": boolean; +} + +export interface ViewOrgLevel { + "customer-code": string; + "customer-id": number; + "institution-id": number; +} + +export interface Scope { + "scope-id": string; + locations: string; + types: string; + tab: string; + "tab-id-for-scope-matching": string; + "contains-central-index-scope": boolean; +} + +export interface Timeout { + "guest-ui-timeout": string; +} + +export interface ScopesContextMap { + CentralIndex: string; + MyInst_and_CI: string; + DeepSearch: string; + WorldCat: string; + jsearch_scope: string; + Ebsco: string; + Webhook: string; + Research: string; + MyInstitution: string; +} + +export interface SearchWithinJournalConfig { + tab: string; + scope: string; +} + +export interface SystemConfiguration { + "Session Timeout": string; + Auto_Complete_Server_URL: string; + "FE UI - Scrolling Threshold": string; + Auto_Complete_Feature_Enabled: string; + "Use local fields 30-39 as lateral links": string; + showICPLicenseFooter: string; + manualAlternativeEmailRS: boolean; + GATHER_SEARCH_STAT: string; + GATHER_PAGE_STAT: string; + "Show More (replaces scrolling) Threshold": string; + RUM_URL: string; + Alma_Version: string; + disable_cache: boolean; + skip_delivery: boolean; + skip_delivery_for_collection_discovery: boolean; + skip_relations_delivery: boolean; + split_mms_query: boolean; + split_facets_max_wait: number; + split_facets_wait_interval: number; + Proxy_Server: string; + "Show ICP License Footer": string; + "request item availability check timeout": string; + hostLB: string; + unionViewScopeSuffix: string; + ngrs_enabled: boolean; + ngrs_implementation_mode: boolean; + cdi_enable_global_title_catalog: boolean; + ngrs_enable_best_offer_local_records: boolean; + ngrs_pickup_anywhere: boolean; + temp_rapido_locate_serial_multivolume_offers: boolean; + rapido_lender_supply_directly_to_patron: boolean; + activeAccessModelEnabled: boolean; + number_of_representations: string; + use_facet_in_creator_hyperlink: boolean; + tmp_enable_results_per_page: boolean; + number_of_results_per_page_series: string; + activate_suspend_watchers_for_browser: string; + disable_suspend_watchers_for_x_results: string; + rapido_hide_how_to_get_it_section: boolean; + delivery_bulk_from_brief: boolean; + brief_results_journal_coverage: boolean; + view_it_show_all_results: boolean; + facet_alphanumeric_icelandic_sort: boolean; + use_expanded_db_label: boolean; + use_rapido_functionality: boolean; + allow_self_registration: boolean; + hide_rapido_expand_link_map: HideRapidoExpandLinkMap; + subjects_alphabetical_sort_fullDisplay: boolean; + "Activate Captcha [Y/N]": string; + "Public Captcha Key": string; + async_brief_result_delivery: boolean; + display_holdings_without_waiting: boolean; + enable_direct_linking_in_record_full_view: boolean; + hide_rapido_offers_tiles: boolean; + rapido_hide_section_when_user_not_logged_in: boolean; + rapido_hide_get_it_user_groups: AdditionalLocationIcons; + default_user_search_history_off: boolean; + equals_search_operator_hypertext_linking_enabled: boolean; + allow_start_with_for_call_number: boolean; + allow_activity_on_transferred_finesfees: boolean; + display_person_info_card: boolean; + primoVE_remove_duplicate_records_in_virtual_browse: boolean; + rapido_show_physical_journal_offer: boolean; + primo_ve_enable_browse_search_paging: boolean; + direct_login_transfer_all_parameters: boolean; + default_sort_newspaper_by_date_newest: boolean; + alphabetical_sort_pickup_inst_lib: boolean; + primoVE_my_account_number_of_requests: string; +} + +export interface HideRapidoExpandLinkMap { + Everything: boolean; + CentralIndex: boolean; + SearchWebhook: boolean; + DeepSearch: boolean; + WorldCat: boolean; + Ebsco: boolean; + Research: boolean; + CourseReserves: boolean; + LibraryCatalog: boolean; +} + +export interface TabToTiles { + Everything: string[]; + CentralIndex: string[]; + jsearch_slot: string[]; + SearchWebhook: string[]; + DeepSearch: string[]; + WorldCat: string[]; + Ebsco: string[]; + Research: string[]; + LibraryCatalog: string[]; +} + +export interface Tiles { + HeaderTileInterface: AdditionalLocationIcons; + FacetTileInterface: { [key: string]: FacetTileInterface }; + KeepingItemTileInterface: KeepingItemTileInterface; + MainMenuTileInterface: Record; + StaticHTMLTileInterface: StaticHTMLTileInterface; + SearchTileInterface: { [key: string]: SearchTileInterface }; + ResultFullTileInterface: { [key: string]: ResultFullTileInterface }; + ResultTileInterface: { [key: string]: ResultTileInterface }; + LocationsTileInterface: { [key: string]: LocationsTileInterface }; +} + +export interface FacetTileInterface { + toplevelfacet: boolean; + toplevelsidefacet: boolean; + generalpageactions: boolean; + facetview: Facetview[]; + relatedfacetview: AdditionalLocationIcons; + id: string; +} + +export interface Facetview { + display: boolean; + viewinstsort: boolean; + instsort: boolean; + valid: boolean; + count: number; + sort: Sort; + id: string; + useTranslations: boolean; +} + +export interface Sort { + _string: Rta; + _int: number; +} + +export enum Rta { + AlphaNumeric = "alpha_numeric", + BySize = "by_size", + None = "none", +} + +export interface KeepingItemTileInterface { + "TRAINING_1_INST:AUTO1.KeepingItemTileInterface": TRAINING1_INSTAUTO1KeepingItemTileInterface; +} + +export interface TRAINING1_INSTAUTO1KeepingItemTileInterface { + keepingitemfunctionview: any[]; + id: string; +} + +export interface LocationsTileInterface { + viewinstsort: boolean; + rta: Rta; + displayholdingsfilters: boolean; + filtersop: string; + instsort: boolean; + id: string; +} + +export interface MainMenuTileInterface { + mainview: Mainview[]; + id: string; +} + +export interface Mainview { + url: string; + label: string; + target: string; +} + +export interface ResultFullTileInterface { + eshelf: boolean; + delimiter: Delimiter; + getitbutton: boolean; + resultlinks: Resultlink[]; + resultitemview: Resultitemview[]; + id: string; +} + +export enum Delimiter { + Delimiter = ";", + Empty = "; ", +} + +export interface Resultitemview { + items: string; + displayInViewer: boolean; +} + +export interface Resultlink { + links: string; +} + +export interface ResultTileInterface { + ilsapi: boolean; + bulksize: number; + eshelf: boolean; + showsnip: boolean; + resultview: Resultview[]; + facebookenabled: boolean; + linkabletitle: string; + sortby: Sortby; + frbrdisplay: number; + frbrsortby: Frbrsortby; + tabsorder: Tabsorder; + getall: boolean; + showsnipifnotfound: boolean; + boostinst: boolean; + numofresults: number; + id: string; + displaysigninmsg: boolean; + groupmessage: number; +} + +export enum Frbrsortby { + DateD = "date_d", +} + +export interface Resultview { + items: Items; + delimiter: Delimiter; +} + +export enum Items { + Creationdate = "creationdate", + CreatorContributor = "creator,contributor", + Ispartof = "ispartof", + VertitleTitle = "vertitle,title", +} + +export enum Sortby { + RankDateDDateATitleAuthor = "rank,date_d,date_a,title,author", + TitleRank = "title,rank", +} + +export interface Tabsorder { + items: string; +} + +export interface SearchTileInterface { + qtvinstance: Qtvinstance[]; + prefiltersenable: boolean; + indexedPrefiltersenable: boolean; + resourcetypePrefiltersenable: boolean; + alphabeticLanguagesSort: boolean; +} + +export interface Qtvinstance { + qtvid: string; +} + +export interface StaticHTMLTileInterface { + "TRAINING_1_INST:AUTO1.StaticHTMLTileInterface": TRAINING1_INSTAUTO1StaticHTMLTileInterface; +} + +export interface TRAINING1_INSTAUTO1StaticHTMLTileInterface { + news: string; + featured: string; + signinTips: string; + ideasFull: string; + atoz: string; + footer: string; + service: string; + signin: string; + noResults: string; + header: string; + ideasBrief: string; + browse: string; +} diff --git a/src/app/state/state.const.ts b/src/app/state/state.const.ts index 6f5b7b0b..aae6b9ed 100644 --- a/src/app/state/state.const.ts +++ b/src/app/state/state.const.ts @@ -1,2 +1,10 @@ +export const SUCCESS: "success" = 'success'; +export const FAIL: "fail" = 'fail'; +export const LOADING: "loading" = 'loading'; +export const PENDING: "pending" = 'pending'; +export type LoadingStatus = typeof PENDING | typeof LOADING | typeof SUCCESS| typeof FAIL; +export const USER: "user" = 'user'; +export const TIMEOUT: "timeout" = 'timeout'; +export type LogoutReason = typeof USER | typeof TIMEOUT; export const MAX_STATE_ACTIONS_IN_HISTORY = 25; export const MAX_STACK_FRAMES_IN_HISTORY = 25; diff --git a/src/app/styles/_customized-theme.scss b/src/app/styles/_customized-theme.scss index c2689c83..319466ae 100644 --- a/src/app/styles/_customized-theme.scss +++ b/src/app/styles/_customized-theme.scss @@ -1,13 +1,130 @@ @use '@angular/material' as mat; @use 'generate-pallete-color-vars' as nde-mixins; -@use 'm3-theme'; // Be sure that you only ever include this mixin once! @include mat.core(); +// Define your theme with color palettes, typography and density + +//$mat-theme-primary-palette: map-merge(mat.$cyan-palette, ( contrast: (100: #150c4a,))); +//$mat-theme-primary: mat.define-palette( +// $mat-theme-primary-palette, +// $default: 100, +// $lighter: 100, +// $darker: 700, +// $text: 500 +//); +// +//$mat-theme-accent-palette: map-merge(mat.$teal-palette, ( 501: #4d77b6,contrast: (501: white,A100: white,A200: white,))); +//$mat-theme-accent: mat.define-palette( +// $mat-theme-accent-palette, +// $default: 501, +// $lighter: A100, +// $darker: A200, +// $text: 600 +//); +// +//$mat-theme-warn-palette: map-merge(mat.$pink-palette, ( )); +//$mat-theme-warn: mat.define-palette( +// $mat-theme-warn-palette, +// $default: A200, +// $lighter: 500, +// $darker: 500, +// $text: A700 +//); +// +//$mat-dark-theme-primary-palette: map-merge(mat.$lime-palette, ( contrast: (200: #030844,A100: rgba(0,0,0, 0.87),A700: rgba(0,0,0, 0.87),))); +//$mat-dark-theme-primary: mat.define-palette( +// $mat-dark-theme-primary-palette, +// $default: 200, +// $lighter: A100, +// $darker: A700, +// $text: 700 +//); +// +//$mat-dark-theme-accent-palette: map-merge(mat.$green-palette, ( contrast: (A200: black,50: black,A400: black,))); +//$mat-dark-theme-accent: mat.define-palette( +// $mat-dark-theme-accent-palette, +// $default: A200, +// $lighter: 50, +// $darker: A400, +// $text: A100 +//); +// +//$mat-dark-theme-warn-palette: map-merge(mat.$pink-palette, ( contrast: (A100: black,100: white,))); +//$mat-dark-theme-warn: mat.define-palette( +// $mat-dark-theme-warn-palette, +// $default: A100, +// $lighter: 100, +// $darker: A700, +// $text: 100 +//); +// +//@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@300&display=swap'); +// +//$mat-typography: mat.define-typography-config( +// $font-family: 'Rubik', +// $display-4: mat.define-typography-level($font-size: 96px, $font-weight: 300, $font-family: Rubik), +// $display-3: mat.define-typography-level($font-size: 60px, $font-weight: 500, $font-family: Rubik), +// $display-2: mat.define-typography-level($font-size: 48px, $font-weight: 500, $font-family: Rubik), +// $display-1: mat.define-typography-level($font-size: 34px, $font-weight: 500, $font-family: Rubik), +// $headline: mat.define-typography-level($font-size: 24px, $font-weight: 500, $font-family: Rubik), +// $title: mat.define-typography-level($font-size: 20px, $font-weight: 500, $font-family: Rubik), +// $subheading-2: mat.define-typography-level($font-size: 18px, $font-weight: 500, $font-family: Rubik), +// $subheading-1: mat.define-typography-level($font-size: 20px, $font-weight: 500, $font-family: Rubik), +// $body-2: mat.define-typography-level($font-size: 16px, $font-weight: 400, $font-family: Rubik), +// $body-1: mat.define-typography-level($font-size: 18px, $font-weight: 400, $font-family: Rubik), +// $caption: mat.define-typography-level($font-size: 16px, $font-weight: Medium, $font-family: Rubik), +// $button: mat.define-typography-level($font-size: 16px, $font-weight: 500, $font-family: Rubik), +// // Line-height must be unit-less fraction of the font-size. +// $input: mat.define-typography-level($font-size: inherit, $line-height: 1.125, $font-weight: 500, $font-family: Rubik), +//); +// +//$mat-density: 0; +//// @include mat.elevation( +//// $zValue: 12, +//// $color: #000, +//// $opacity: 0.5 +//// ); +// +//$mat-core-theme: mat.define-light-theme(( +// color: ( +// primary: $mat-theme-primary, +// accent: $mat-theme-accent, +// warn: $mat-theme-warn +// ), +// typography: $mat-typography, +// density: $mat-density +//)); +// +//$mat-dark-theme: mat.define-dark-theme(( +// color: ( +// primary: $mat-dark-theme-primary, +// accent: $mat-dark-theme-accent, +// warn: $mat-dark-theme-warn, +// ) +//)); +$primary-palette: mat.m2-define-palette(mat.$m2-pink-palette, 500); +$accent-palette: mat.m2-define-palette(mat.$m2-amber-palette, A200, A100, A400); +$warn-palette: mat.m2-define-palette(mat.$m2-red-palette, 500); + +$mat-custom-theme: mat.m2-define-light-theme(( + color: ( + primary: $primary-palette, + accent: $accent-palette, + warn: $warn-palette + ), + typography: mat.m2-define-typography-config(), + density: 0 +)); .custom-nde-theme{ - @include mat.all-component-colors(m3-theme.$light-theme); - @include mat.system-level-colors(m3-theme.$light-theme); + @include nde-mixins.generate-color-variables($primary-palette, $accent-palette, $warn-palette); + @include mat.all-component-themes($mat-custom-theme); } + + +//.dark-theme { +// @include mat.all-component-colors($mat-dark-theme); +//} diff --git a/src/app/test-after/test-after.component.html b/src/app/test-after/test-after.component.html new file mode 100644 index 00000000..b19848d7 --- /dev/null +++ b/src/app/test-after/test-after.component.html @@ -0,0 +1,4 @@ +

test-after works! {{ subject }}

+

subject: {{ subject }}

+

image:CustomModule Waving and Winking

+ diff --git a/src/app/test-after/test-after.component.scss b/src/app/test-after/test-after.component.scss new file mode 100644 index 00000000..019e4687 --- /dev/null +++ b/src/app/test-after/test-after.component.scss @@ -0,0 +1,9 @@ +img { + width: 20%; /* Makes the image 20% of its original size */ + height: auto; /* Maintains aspect ratio */ +} + +p { + color: green; /* Changes text color to green */ + font-weight: bold; /* Makes text bold */ +} \ No newline at end of file diff --git a/src/app/test-after/test-after.component.spec.ts b/src/app/test-after/test-after.component.spec.ts new file mode 100644 index 00000000..02e770e1 --- /dev/null +++ b/src/app/test-after/test-after.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TestAfterComponent } from './test-after.component'; + +describe('TestAfterComponent', () => { + let component: TestAfterComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestAfterComponent] + }); + fixture = TestBed.createComponent(TestAfterComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/test-after/test-after.component.ts b/src/app/test-after/test-after.component.ts new file mode 100644 index 00000000..814290eb --- /dev/null +++ b/src/app/test-after/test-after.component.ts @@ -0,0 +1,24 @@ +import { Component, Inject, Input, Optional } from '@angular/core'; +declare const __webpack_public_path__: string; + +@Component({ + selector: 'custom-test-after', + templateUrl: './test-after.component.html', + styleUrls: ['./test-after.component.scss'] +}) +export class TestAfterComponent { + subject: string | undefined; + imageUrl = __webpack_public_path__ + 'assets/images/CustomModule_Waving_Winking.jpeg'; + @Input() private hostComponent!: any; + + constructor( ) { } + ngOnInit(): void { + this.subject = this.getSubjectText(); + console.log('TestAfterComponent ngOnInit:', this.subject); + } + + private getSubjectText(): string | undefined { + console.log('TestAfterComponent getSubjectText:', this.hostComponent); + return this.hostComponent.searchResult?.pnx?.display?.['subject']?.join(', '); + } +} diff --git a/src/app/test-before/test-before.component.html b/src/app/test-before/test-before.component.html new file mode 100644 index 00000000..2da5031a --- /dev/null +++ b/src/app/test-before/test-before.component.html @@ -0,0 +1 @@ +

test-before works!

diff --git a/src/app/test-before/test-before.component.scss b/src/app/test-before/test-before.component.scss new file mode 100644 index 00000000..8103225b --- /dev/null +++ b/src/app/test-before/test-before.component.scss @@ -0,0 +1,4 @@ +p { + color: blueviolet; /* Changes text color to green */ + font-weight: bold; /* Makes text bold */ +} \ No newline at end of file diff --git a/src/app/test-before/test-before.component.spec.ts b/src/app/test-before/test-before.component.spec.ts new file mode 100644 index 00000000..d6f8b61f --- /dev/null +++ b/src/app/test-before/test-before.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TestBeforeComponent } from './test-before.component'; + +describe('TestBeforeComponent', () => { + let component: TestBeforeComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestBeforeComponent] + }); + fixture = TestBed.createComponent(TestBeforeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/test-before/test-before.component.ts b/src/app/test-before/test-before.component.ts new file mode 100644 index 00000000..42df2fcc --- /dev/null +++ b/src/app/test-before/test-before.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'custom-test-before', + templateUrl: './test-before.component.html', + styleUrls: ['./test-before.component.scss'] +}) +export class TestBeforeComponent { + +} diff --git a/src/app/test-bottom/test-bottom.component.html b/src/app/test-bottom/test-bottom.component.html new file mode 100644 index 00000000..9ce19148 --- /dev/null +++ b/src/app/test-bottom/test-bottom.component.html @@ -0,0 +1 @@ +

test-bottom works!

diff --git a/src/app/test-bottom/test-bottom.component.scss b/src/app/test-bottom/test-bottom.component.scss new file mode 100644 index 00000000..fb3a5cf4 --- /dev/null +++ b/src/app/test-bottom/test-bottom.component.scss @@ -0,0 +1,4 @@ +p { + color: blue; /* Changes text color to green */ + font-weight: bold; /* Makes text bold */ +} \ No newline at end of file diff --git a/src/app/test-bottom/test-bottom.component.spec.ts b/src/app/test-bottom/test-bottom.component.spec.ts new file mode 100644 index 00000000..01bd9f0a --- /dev/null +++ b/src/app/test-bottom/test-bottom.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TestBottomComponent } from './test-bottom.component'; + +describe('TestBottomComponent', () => { + let component: TestBottomComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestBottomComponent] + }); + fixture = TestBed.createComponent(TestBottomComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/test-bottom/test-bottom.component.ts b/src/app/test-bottom/test-bottom.component.ts new file mode 100644 index 00000000..e79fab46 --- /dev/null +++ b/src/app/test-bottom/test-bottom.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'custom-test-bottom', + templateUrl: './test-bottom.component.html', + styleUrls: ['./test-bottom.component.scss'] +}) +export class TestBottomComponent { + +} diff --git a/src/app/test-top/test-top.component.html b/src/app/test-top/test-top.component.html new file mode 100644 index 00000000..9c334049 --- /dev/null +++ b/src/app/test-top/test-top.component.html @@ -0,0 +1 @@ +

test-top works!

diff --git a/src/app/test-top/test-top.component.scss b/src/app/test-top/test-top.component.scss new file mode 100644 index 00000000..06162d25 --- /dev/null +++ b/src/app/test-top/test-top.component.scss @@ -0,0 +1,4 @@ +p { + color: red; /* Changes text color to green */ + font-weight: bold; /* Makes text bold */ +} \ No newline at end of file diff --git a/src/app/test-top/test-top.component.spec.ts b/src/app/test-top/test-top.component.spec.ts new file mode 100644 index 00000000..852f66c6 --- /dev/null +++ b/src/app/test-top/test-top.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TestTopComponent } from './test-top.component'; + +describe('TestTopComponent', () => { + let component: TestTopComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestTopComponent] + }); + fixture = TestBed.createComponent(TestTopComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/test-top/test-top.component.ts b/src/app/test-top/test-top.component.ts new file mode 100644 index 00000000..4427c761 --- /dev/null +++ b/src/app/test-top/test-top.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'custom-test-top', + templateUrl: './test-top.component.html', + styleUrls: ['./test-top.component.scss'] +}) +export class TestTopComponent { + +} diff --git a/src/assets/css/custom.css b/src/assets/css/custom.css new file mode 100644 index 00000000..e69de29b diff --git a/src/assets/homepage/README.md b/src/assets/homepage/README.md new file mode 100644 index 00000000..78ee724b --- /dev/null +++ b/src/assets/homepage/README.md @@ -0,0 +1,14 @@ +# The Primo New UI Customization Workflow Development Environment + + +##html documentation + + - In this folder you will find static html files in their OTB state + - You can edit the html to comply with your library requirements + - Note that you can use Angular Material directives in your html: + > https://material.angularjs.org/latest/ + + + + + diff --git a/src/assets/homepage/homepage.css.tmpl b/src/assets/homepage/homepage.css.tmpl new file mode 100644 index 00000000..cc93c5ab --- /dev/null +++ b/src/assets/homepage/homepage.css.tmpl @@ -0,0 +1,259 @@ +@use "src/app/styles/nde-variables" as vars; +@use "src/app/styles/nde-mixing" as mixing; + +.main-landing-page { + width: vars.$responsiveWidth; + @include vars.set-responsive-width; + margin: 0 auto; + gap: 5rem; + //need to delete when the Featured Books will be developed + margin-block-end: 100px; + + @include mixing.respond-to('xsmall') { + width: 100%; + } + + + .menu-container { + .menu { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(4rem, 1fr)); + grid-row-gap: 1.5rem; + grid-column-gap: 1rem; + li { + + a { + background-color: var(--sys-inverse-on-surface); + display: flex; + padding: 1rem; + border: .0625rem solid var(--sys-primary); + border-radius: .5rem; + align-items: center; + flex-direction: column; + justify-content: center; + font-family: inherit; + cursor: pointer; + height: 100%; + + @include mixing.respond-to('large', 'xlarge') { + + &:hover, &:focus { + transition: box-shadow .3s, transform .3s ease-in-out; + box-shadow: 0 0 0.625rem rgba(0, 0, 0, 0.1); + transform: translateY(-1.1875rem); + } + + } + + + + .icon { + background-color: var(--sys-inverse-on-surface); + border-radius: 50%; + width: 3.75rem; + height: 3.75rem; + align-items: center; + + @include mixing.respond-to('medium', 'small', 'xsmall') { + width: 2.5rem; + height: 2.5rem; + align-items: normal; + justify-content: center; + } + } + + span { + margin-top: .3125rem; + font-size: vars.$bigFontSize; + font-weight: vars.$bold; + display: flex; + align-items: center; + min-height: 2.5rem; + text-align: center; + + @include mixing.respond-to('medium', 'small', 'xsmall') { + font-size: .88rem; + min-height: 2.2rem; + } + } + } + } + } + } + + .welcome-announcements-container { + gap: 2rem; + + @include mixing.respond-to('small', 'xsmall') { + flex-direction: column; + } + + .welcome { + //max-width: 32rem; + padding-block: 1rem; + gap: 1.5rem; + + @include mixing.respond-to('small', 'xsmall') { + padding: 0; + } + + .welcome-title { + margin-block-end: .5rem; + @include mixing.respond-to('medium', 'small', 'xsmall') { + font-size: vars.$largeFontSize; + } + } + + .welcome-content { + font-size: vars.$bigFontSize; + font-weight: vars.$normal; + + @include mixing.respond-to('medium', 'small', 'xsmall') { + font-size: vars.$mediumFontSize; + } + } + + a { + padding-block: .5rem; + padding-inline: 1rem; + border-radius: 2rem; + background-color: var(--sys-primary); + color: var(--whiteText); + font-weight: vars.$bold; + font-size: vars.$bigFontSize; + font-family: inherit; + border: none; + cursor: pointer; + transition: background-color 0.3s ease; + text-underline: none; + + @include mixing.respond-to('medium', 'small', 'xsmall') { + font-size: vars.$mediumFontSize; + } + + &:hover { + background-color: var(--sys-surface-tint); + } + + &:focus { + outline: none; + box-shadow: 0 0 0 2px white, 0 0 0 3px #000000; + } + } + } + + .announcements { + background-color: var(--sys-inverse-on-surface); + padding: 1.5rem; + border-radius: .5rem; + border: .0625rem solid var(--sys-primary); + max-width: 32.6875rem; + gap:1rem; + + + @include mixing.respond-to('small', 'xsmall') { + padding: 1rem; + gap: 1rem; + max-width: none; + } + + .announcements-item-main-title{ + font-size: vars.$mediumFontSize; + font-weight: vars.$normal; + line-height: 2rem; + + } + + .announcements-item-title { + color: var(--darkText); + + @include mixing.respond-to('medium', 'small', 'xsmall') { + font-size: vars.$largeFontSize; + } + } + } + } + + .about { + .about-content { + @include mixing.respond-to('small', 'xsmall') { + flex-direction: column-reverse; + } + + .about-text { + padding: 2rem; + background-color: var(--sys-inverse-on-surface); + gap: 1.5rem; + + @include mixing.respond-to('small', 'xsmall') { + padding: 1rem; + gap: 1rem; + } + + .about-text-title { + font-weight: vars.$bold; + font-size: vars.$xLargeFontSize; + + @include mixing.respond-to('medium') { + font-size: vars.$largeFontSize; + } + + @include mixing.respond-to('small', 'xsmall') { + font-size: vars.$largeFontSize; + } + } + + .about-text-description { + line-height: 2rem; + font-size: vars.$largeFontSize; + font-weight: vars.$normal; + + @include mixing.respond-to('medium', 'small', 'xsmall') { + font-size: vars.$mediumFontSize; + line-height: 1.4rem; + } + } + + .help-sign-in-container { + font-size: vars.$largeFontSize; + + @include mixing.respond-to('medium', 'small', 'xsmall') { + font-size: vars.$mediumFontSize; + + ul { + li { + margin-block: .625rem; + } + } + } + + ul { + li { + margin-block: 1rem; + display: flex; + align-items: center; + gap: .5rem; + } + } + } + } + + .about-image { + img { + width: auto; + height: 100%; + object-fit: cover; + border-radius: 0 .625rem .625rem 0; + + @include mixing.respond-to('small', 'xsmall') { + border-radius: .625rem .625rem 0 0; + width: 100%; + } + } + } + } + } + +} + + diff --git a/src/assets/homepage/homepage_en.html.tmpl b/src/assets/homepage/homepage_en.html.tmpl new file mode 100644 index 00000000..d3ec3c4e --- /dev/null +++ b/src/assets/homepage/homepage_en.html.tmpl @@ -0,0 +1,112 @@ + + + + + + + Library Page + + + +
+ + +
+
+

Welcome to the library

+ Access your account by signing in and enabling more capabilities + Go to my library card +
+
+
+

Announcements:

+

New library resources

+
+
+

Lorem ipsum dolor sit amet consectetur. Varius ipsum amet elit convallis. Egestas arcu volutpat morbi urna + cursus amet.

+
+ +
+
+ +
+
+
+

About the Library

+

+ Primo provides a simple, one-stop search + platform for books and e-books, videos, + articles, digital media, and more.

+ +
+
+ +
+
+
+
+ + + + diff --git a/src/assets/icons/custom_icons.svg b/src/assets/icons/custom_icons.svg new file mode 100644 index 00000000..e69de29b diff --git a/src/assets/images/CustomModule_Waving_Winking.jpeg b/src/assets/images/CustomModule_Waving_Winking.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2f021127332707dc439f04d5f8727f10994d7edd GIT binary patch literal 146434 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
3Cm^U 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 y=xwr}Dfw?#VolgGyvUS%M)4qKW*dKwhNAaq Date: Mon, 10 Mar 2025 17:09:05 +0200 Subject: [PATCH 16/61] Updated webpack config, environment settings, and dependencies2 --- .../custom1-module/customComponentMappings.ts | 11 - .../full-display-details.component.html | 15 - .../full-display-details.component.scss | 9 - .../full-display-details.component.spec.ts | 21 - .../full-display-details.component.ts | 201 ------ src/app/models/search.model.ts | 409 ------------ src/app/models/view-config.model.ts | 619 ------------------ src/app/state/state.const.ts | 10 - src/app/test-after/test-after.component.html | 4 - src/app/test-after/test-after.component.scss | 9 - .../test-after/test-after.component.spec.ts | 21 - src/app/test-after/test-after.component.ts | 24 - .../test-before/test-before.component.html | 1 - .../test-before/test-before.component.scss | 4 - .../test-before/test-before.component.spec.ts | 21 - src/app/test-before/test-before.component.ts | 10 - .../test-bottom/test-bottom.component.html | 1 - .../test-bottom/test-bottom.component.scss | 4 - .../test-bottom/test-bottom.component.spec.ts | 21 - src/app/test-bottom/test-bottom.component.ts | 10 - src/app/test-top/test-top.component.html | 1 - src/app/test-top/test-top.component.scss | 4 - src/app/test-top/test-top.component.spec.ts | 21 - src/app/test-top/test-top.component.ts | 10 - src/assets/js/custom.js | 1 + 25 files changed, 1 insertion(+), 1461 deletions(-) delete mode 100644 src/app/full-display-details/full-display-details.component.html delete mode 100644 src/app/full-display-details/full-display-details.component.scss delete mode 100644 src/app/full-display-details/full-display-details.component.spec.ts delete mode 100644 src/app/full-display-details/full-display-details.component.ts delete mode 100644 src/app/models/search.model.ts delete mode 100644 src/app/models/view-config.model.ts delete mode 100644 src/app/state/state.const.ts delete mode 100644 src/app/test-after/test-after.component.html delete mode 100644 src/app/test-after/test-after.component.scss delete mode 100644 src/app/test-after/test-after.component.spec.ts delete mode 100644 src/app/test-after/test-after.component.ts delete mode 100644 src/app/test-before/test-before.component.html delete mode 100644 src/app/test-before/test-before.component.scss delete mode 100644 src/app/test-before/test-before.component.spec.ts delete mode 100644 src/app/test-before/test-before.component.ts delete mode 100644 src/app/test-bottom/test-bottom.component.html delete mode 100644 src/app/test-bottom/test-bottom.component.scss delete mode 100644 src/app/test-bottom/test-bottom.component.spec.ts delete mode 100644 src/app/test-bottom/test-bottom.component.ts delete mode 100644 src/app/test-top/test-top.component.html delete mode 100644 src/app/test-top/test-top.component.scss delete mode 100644 src/app/test-top/test-top.component.spec.ts delete mode 100644 src/app/test-top/test-top.component.ts create mode 100644 src/assets/js/custom.js diff --git a/src/app/custom1-module/customComponentMappings.ts b/src/app/custom1-module/customComponentMappings.ts index b232c1e3..6398eec1 100644 --- a/src/app/custom1-module/customComponentMappings.ts +++ b/src/app/custom1-module/customComponentMappings.ts @@ -1,16 +1,5 @@ -import { FullDisplayDetailsComponentDist } from "../full-display-details/full-display-details.component"; -import { TestAfterComponent } from "../test-after/test-after.component"; -import { TestBeforeComponent } from "../test-before/test-before.component"; -import { TestBottomComponent } from "../test-bottom/test-bottom.component"; -import { TestTopComponent } from "../test-top/test-top.component"; - // Define the map export const selectorComponentMap = new Map([ - ["nde-full-display-details",FullDisplayDetailsComponentDist], - ["nde-full-display-details-after",TestAfterComponent], - ["nde-full-display-details-top",TestTopComponent], - ["nde-full-display-details-before",TestBeforeComponent], - ["nde-full-display-details-bottom",TestBottomComponent] diff --git a/src/app/full-display-details/full-display-details.component.html b/src/app/full-display-details/full-display-details.component.html deleted file mode 100644 index 343f4120..00000000 --- a/src/app/full-display-details/full-display-details.component.html +++ /dev/null @@ -1,15 +0,0 @@ -
-

Current component start

-

{{ getTitle() }} ({{getMmsId()}})

-

- {{ isConnected ? 'Connected' : 'Not Connected' }} -

-

subject:{{ subject }}

-

desc:{{ getDesc() }}

-

format:{{ getFormat() }}

-

author:{{ getAuthor() }}

-

publisher:{{ getPublisher() }}

-

partof:{{ getAuthor() }}

-

creation Date:{{ getCreationDate() }}

-

Current component end

-
\ No newline at end of file diff --git a/src/app/full-display-details/full-display-details.component.scss b/src/app/full-display-details/full-display-details.component.scss deleted file mode 100644 index cfc4442d..00000000 --- a/src/app/full-display-details/full-display-details.component.scss +++ /dev/null @@ -1,9 +0,0 @@ -.connected { - color: green; - font-weight: bold; - } - - .not-connected { - color: red; - font-weight: bold; - } \ No newline at end of file diff --git a/src/app/full-display-details/full-display-details.component.spec.ts b/src/app/full-display-details/full-display-details.component.spec.ts deleted file mode 100644 index 060174da..00000000 --- a/src/app/full-display-details/full-display-details.component.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { FullDisplayDetailsComponentDist } from './full-display-details.component'; - -describe('FullDisplayDetailsComponent', () => { - let component: FullDisplayDetailsComponentDist; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [FullDisplayDetailsComponentDist] - }); - fixture = TestBed.createComponent(FullDisplayDetailsComponentDist); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/full-display-details/full-display-details.component.ts b/src/app/full-display-details/full-display-details.component.ts deleted file mode 100644 index fffbc2c5..00000000 --- a/src/app/full-display-details/full-display-details.component.ts +++ /dev/null @@ -1,201 +0,0 @@ -import {Component, Inject, Input, Optional} from '@angular/core'; -import {Doc, SearchMetaData, Facet} from "../models/search.model"; -import {Store} from "@ngrx/store"; -import {Observable} from "rxjs"; -import {createEntityAdapter, EntityState} from "@ngrx/entity"; -import {createFeatureSelector, createSelector} from "@ngrx/store"; - - -export const SUCCESS: "success" = 'success'; -export const FAIL: "fail" = 'fail'; -export const LOADING: "loading" = 'loading'; -export const PENDING: "pending" = 'pending'; -export type LoadingStatus = typeof PENDING | typeof LOADING | typeof SUCCESS| typeof FAIL; -export const USER: "user" = 'user'; -export const TIMEOUT: "timeout" = 'timeout'; -export type LogoutReason = typeof USER | typeof TIMEOUT; -export const MAX_STATE_ACTIONS_IN_HISTORY = 25; -export const MAX_STACK_FRAMES_IN_HISTORY = 25; -export const INDEX_ZERO = 0; -export const getRecordId = (doc: Doc) => doc.pnx.control.recordid[INDEX_ZERO]; -export const searchAdapter = createEntityAdapter({ - selectId: getRecordId -}); - - - -export type stringBoolean= "N" | "Y"; -export interface SearchParams { - q: string, - scope: string, - skipDelivery?: stringBoolean, - offset?: number, - limit?: number, - sort?: string, - inst?: string, - refEntryActive?: boolean, - disableCache?: boolean, - newspapersActive?: boolean, - qInclude?: string[], - qExclude?: string[], - multiFacets?: string[], - pfilter?: string, - tab?: string, - mode?: string, - isCDSearch?: boolean, - pcAvailability?: boolean, - searchInFulltextUserSelection?: boolean -} -export const searchFeatureName = 'Search'; -export const selectSearchState = createFeatureSelector(searchFeatureName); -export interface SearchState extends EntityState{ - status: LoadingStatus, - searchParams: SearchParams | null, - searchResultsMetaData: SearchMetaData | null, - selectedPageSize: number | null, - filter: {status: LoadingStatus , filters: Facet[] | null}, - searchNotificationMsg:string, - presentNotification:boolean, - isSearchAndAppendMode?: boolean, - numOfItemsToAppend?: number, - pcAvailabilityToggleValue:boolean, - searchInFullTextToggleValue: boolean -} - - -const { - selectIds, - selectEntities, - selectAll, - selectTotal -} = searchAdapter.getSelectors(selectSearchState); -export const selectAllSearchResults = selectAll; - -@Component({ - selector: 'full-display-details', - templateUrl: './full-display-details.component.html', - styleUrls: ['./full-display-details.component.scss'] -}) -export class FullDisplayDetailsComponentDist{ - imageUrl: string | undefined; - subject: string | undefined; - searchResults$: Observable; - public isConnected: boolean = false; - - @Input() private hostComponent!: any; - - constructor(public store: Store) { - this.searchResults$ = this.store.select(selectAllSearchResults); - - - } - - - ngOnInit(): void { - console.log('FullDisplayDetailsComponent ngOnInit:', this.getSubjectText()); - this.subject = this.getSubjectText(); - this.checkMmsId(); - - } - - - - private getSubjectText(): string | undefined { - if(this.hostComponent){ - // Safe access using bracket notation for 'subject' based on TypeScript's requirement - return this.hostComponent.searchResult?.pnx?.display?.['subject']?.join(', '); - }else{ - return undefined; - } - } - - - public getDesc(): string | undefined { - if(this.hostComponent){ - // Safe access using bracket notation for 'description' based on TypeScript's requirement - return this.hostComponent.searchResult?.pnx?.display?.['description']?.join(', '); - }else{ - return undefined; - } - } - - - public getTitle(): string | undefined { - if(this.hostComponent){ - // Safe access using bracket notation for 'title' based on TypeScript's requirement - return this.hostComponent.searchResult?.pnx?.display?.['title']?.join(', '); - }else{ - return undefined; - } - } - - - public getAuthor(): string | undefined { - if(this.hostComponent){ - // Safe access using bracket notation for 'author' based on TypeScript's requirement - return this.hostComponent.searchResult?.pnx?.display?.['contributor']?.join(', '); - }else{ - return undefined; - } - } - - public getCreationDate(): string | undefined { - if(this.hostComponent){ - // Safe access using bracket notation for 'creationdate' based on TypeScript's requirement - return this.hostComponent.searchResult?.pnx?.display?.['creationdate']?.join(', '); - }else{ - return undefined; - } - } - - - public getFormat(): string | undefined { - if(this.hostComponent){ - // Safe access using bracket notation for 'format' based on TypeScript's requirement - return this.hostComponent.searchResult?.pnx?.display?.['format']?.join(', '); - }else{ - return undefined; - } - } - - public getPublisher(): string | undefined { - if(this.hostComponent){ - // Safe access using bracket notation for 'publisher' based on TypeScript's requirement - return this.hostComponent.searchResult?.pnx?.display?.['publisher']?.join(', '); - }else{ - return undefined; - } - } - - public getIsPartOf(): string | undefined { - if(this.hostComponent){ - // Safe access using bracket notation for 'ispartof' based on TypeScript's requirement - return this.hostComponent.searchResult?.pnx?.display?.['ispartof']?.join(', '); - }else{ - return undefined; - } - } - - public getMmsId(): string | undefined { - if(this.hostComponent){ - //console.log('FullDisplayDetailsComponent getMmsId:', this.hostComponent.searchResult?.pnx?.control); - // Safe access using bracket notation for 'mmsid' based on TypeScript's requirement - return this.hostComponent.searchResult?.pnx?.control?.['recordid']?.join(', '); - }else{ - return undefined; - } - } - - private checkMmsId(): void { - console.log('FullDisplayDetailsComponent checkMmsId:', window.location.href); - - // Parse the query string manually - const params = new URLSearchParams(window.location.search); - const docid = params.get('docid'); - const mmsId = this.getMmsId(); - - console.log('MmsId:', mmsId, 'DocId:', docid); - this.isConnected = (docid === mmsId); - } - -} diff --git a/src/app/models/search.model.ts b/src/app/models/search.model.ts deleted file mode 100644 index 52731341..00000000 --- a/src/app/models/search.model.ts +++ /dev/null @@ -1,409 +0,0 @@ -import {LoadingStatus} from "../state/state.const"; - -export type stringBoolean= "N" | "Y"; -export interface SearchParams { - q: string, - scope: string, - skipDelivery?: stringBoolean, - offset?: number, - limit?: number, - sort?: string, - inst?: string, - refEntryActive?: boolean, - disableCache?: boolean, - newspapersActive?: boolean, - qInclude?: string[], - qExclude?: string[], - multiFacets?: string[], - pfilter?: string, - tab?: string, - mode?: string, - isCDSearch?: boolean, - pcAvailability?: boolean, - searchInFulltextUserSelection?: boolean -} - -export interface SearchParamsWithStrParams extends Omit { - qInclude?: string; // Change qInclude to a string - qExclude?: string; // Change qInclude to a string -} - -export type SearchMetaData = Omit; -export interface SearchData { - beaconO22: string; - info: Info; - highlights: Highlights; - docs: Doc[]; - facets?: Facet[]; - timelog: Timelog; - did_u_mean?: string; -} - -export interface FullDisplayQueryParams { - docid: string; - context?: Context; - adaptor?: Adaptor; - isFrbr?: boolean; - search_scope?: string; - isHighlightedRecord?: boolean; - tab?: string; - vid?: string; - state?: string; -} - -export interface FullDisplayParams { - docid: string; - context?: Context; - adaptor?: Adaptor; - isFrbr?: boolean; - scope?: string; - isHighlightedRecord?: boolean; -} - -export interface Doc { - context: Context; - adaptor: Adaptor; - "@id": string; - pnx: Pnx; - extras?: Extras; - enrichment?: Enrichment; - thumbnailForCD?: ThumbnailForCD; - unpaywallStatus?: LoadingStatus; - delivery?: DocDelivery; - expired?: boolean; // indicates the record should be reloaded -} - -export enum Adaptor { - LocalSearchEngine = "Local Search Engine", - PrimoCentral = "Primo Central", - PrimoVeDeepSearch = "Primo VE Deep Search", - EbscoLocal = "EbscoLocal", - WorldCatLocal = 'WorldCatLocal', - SummonLocal = 'SummonLocal', - SearchWebhook = 'SearchWebhook', - WebHook = 'WEBHOOK', -} - -export enum Context { - L = "L", - PC = "PC", - SP = "SP", - U = "U" -} - -export interface ThumbnailForCD { - link?: DeliveryLink[]; - hasD?: boolean; -} - -export interface IEDeliveryRecord { - recId: string; - sharedDigitalCandidates: string[] | null; -} - - -export interface MergedDelivery { - docDelivery: DocDelivery; - recordId: string; -} - -export interface ElectronicService { - adaptorid: string - ilsApiId: string - serviceUrl: string - licenceExist: string - packageName: string - availiability: string - authNote: string - publicNote: string - hasAccess: boolean - serviceType: string - registrationRequired: boolean - numberOfFiles: number - cdlItemAvailable: boolean - cdl: boolean - parsedAvailability: string[] - licenceUrl: string - relatedTitle: string; - serviceDescription?: string; - deniedNote?: string; - fileType?: string; - firstFileSize?: string; - representationEntityType? : string - contextServiceId? : string - publicAccessModel?: string -} - -export interface AdditionalElectronicService { - OpenURL: ElectronicService[] - LinktorsrcOA: ElectronicService[] - LinktorsrcNonOA: ElectronicService[] - RelatedServices: ElectronicService[] -} - - -export interface DocDelivery { - link?: DeliveryLink[]; - deliveryCategory: string[]; - availability: string[]; - availabilityLinks?: string[]; - availabilityLinksUrl?: string[]; - displayLocation: boolean; - additionalLocations: boolean; - physicalItemTextCodes: string; - feDisplayOtherLocations: boolean; - displayedAvailability: string; - holding?: Location[]; - almaOpenurl: string; - electronicServices?: ElectronicService[]; - additionalElectronicServices?: AdditionalElectronicService - recordInstitutionCode: string; - sharedDigitalCandidates: string[]; - hasD?: boolean; - digitalAuxiliaryMode?: boolean; - bestlocation?: Location; - serviceMode?: string[]; - consolidatedCoverage?: string; - isFilteredHoldings?: boolean; - physicalServiceId?: string; - recordOwner?: string; - GetIt1: GetIt1[]; - hideResourceSharing: boolean; - almaInstitutionsList?: AlmaInstitutionsList[]; - hasFilteredServices?: string; - electronicContextObjectId?: string; -} - -export interface AlmaInstitutionsList { - availabilityStatus: string; - envURL: string; - getitLink: string[]; - instCode: string; - instId: string; - instName: string; -} - -export interface Location { - organization: string; - libraryCode: string; - mainLocation: string; - subLocation: string; - callNumber: string; - availabilityStatus: string; - ilsApiId?: string; - isValidUser?: boolean; - subLocationCode: string; - matchForHoldings?: MatchForHolding[]; - holdId: string; - holKey: string; - stackMapUrl?: string; - relatedTitle?: string; -} - -export interface MatchForHolding { - matchOn: string; - holdingRecord: string; -} - -export interface Extras { - citationTrails: CitationTrails; - timesCited: TimesCited; -} - -export interface DeliveryLink { - displayLabel?: string; - linkType?: string; - linkURL?: string; - '@id'?: string; - publicNote?: string -} -export interface CitationTrails { - citing: string[]; - citedby: string[]; -} - -export interface TimesCited { - scopus?: Scopus; - wos?: WebOfScience; -} - -export interface Scopus { - citedRedId?: string; - extensionVal?: string; -} - -export interface WebOfScience { - citedRedId?: string; - extensionVal?: string; - wosFinalLink?: string; -} - -export interface Pnx { - display: { [key: string]: string[] }; - control: Control; - addata: { [key: string]: string[] }; - sort: Sort; - facets: { [key: string]: string[] }; - links?: Links; - search?: { [key: string]: string[] }; - delivery?: PnxDelivery; -} - -export interface Control { - sourcerecordid: string[]; - recordid: string[]; - sourceid: string[] | string; - originalsourceid: string[]; - gtiid?: string[]; - sourcesystem: Sourcesystem[]; - sourceformat: Sourceformat[]; - score: Array; - isDedup?: boolean; - save_score?: number[]; - recordtype?: string[]; - sourcetype?: string[]; - pqid?: string[]; - addsrcrecordid?: string[]; - jstorid?: string[]; - galeid?: string[]; - attribute?: string[]; - rapidosourcerecordid? : string; - networklinkedrecordid? : string; - colldiscovery?: string[]; -} - -export enum Sourceformat { - Marc21 = "MARC21", - XML = "XML", - ESPLORO = 'ESPLORO' -} - -export enum Sourcesystem { - Ils = "ILS", - Other = "Other", -} - -export interface PnxDelivery { - fulltext: string[]; - delcategory: string[]; - availabilityLinkUrl: string; -} - -export interface Links { - openurl: string[]; - linktorsrc?: string[]; - thumbnail: string[]; - linktohtml: string[]; - openurlfulltext: string[]; - linktopdf?: string[]; - backlink?: string[]; - linktorsrcadditional?: string[]; - openurladditional?: string[]; - unpaywalllink?: string[]; -} - -export interface GetItLinks { - '@id': string, - adaptorid: string, - displayText: string | null, - getItTabText: string, - ilsApiId: string, - inst4opac: string, - isLinktoOnline: boolean, - link: string -} - -export interface GetIt1 { - category: string, - links: GetItLinks[] -} - -export interface RecordMainDetailsIfc { - pnx: Pnx; -} - -export interface Sort { - title: string[]; - author?: string[]; - creationdate: string[]; -} - -export interface Facets { - beaconO22: string; - facets: Facet[]; -} - -export interface Facet { - name: string; - values: FacetValue[]; -} - -export interface FacetValue { - value: string; - count: number; -} - -export interface Highlights { - general: string[]; - creator: string[]; - contributor: string[]; - subject: string[]; - title: string[]; - addtitle: string[]; - alttitle: string[]; - vertitle: string[]; - termsUnion: string[]; - snippet: string[]; -} - -export interface Info { - totalResultsLocal: number; - totalResultsPC: number; - total: number; - first: number; - last: number; -} - -export interface Timelog { - BUILD_RESULTS_RETRIVE_FROM_DB: string; - CALL_SOLR_GET_IDS_LIST: string; - RETRIVE_FROM_DB_COURSE_INFO: string; - RETRIVE_FROM_DB_RECORDS: string; - RETRIVE_FROM_DB_RELATIONS: string; - PRIMA_LOCAL_INFO_FACETS_BUILD_DOCS_HIGHLIGHTS: string; - PRIMA_LOCAL_SEARCH_TOTAL: string; - PC_SEARCH_CALL_TIME: string; - PC_BUILD_JSON_AND_HIGLIGHTS: string; - PC_SEARCH_TIME_TOTAL: string; - BUILD_BLEND_AND_CACHE_RESULTS: number; - BUILD_COMBINED_RESULTS_MAP: number; - COMBINED_SEARCH_TIME: number; - PROCESS_COMBINED_RESULTS: number; - FEATURED_SEARCH_TIME: number; -} - -export interface Enrichment { - virtualBrowseObject: VirtualBrowseObject; - bibVirtualBrowseObject: VirtualBrowseObject; -} - -export interface VirtualBrowseObject { - isVirtualBrowseEnabled: boolean; - callNumber: string; - callNumberBrowseField: string; -} - -export type IgnoreMapSimpleString = { - [key: string]: string; -} - -export type IgnoreMapSimpleBoolean = { - [key: string]: boolean; -} - -export type IgnoreMapMulti = { - [key: string]: number | string | string[] | undefined | null; -} - - - diff --git a/src/app/models/view-config.model.ts b/src/app/models/view-config.model.ts deleted file mode 100644 index 3c7e622d..00000000 --- a/src/app/models/view-config.model.ts +++ /dev/null @@ -1,619 +0,0 @@ -/* eslint-disable */ -export interface ViewConfigData { - beaconO22: string; - vid: string - "primo-view": PrimoView; - tiles: Tiles; - "system-configuration": SystemConfiguration; - "mapping-tables": MappingTables; - authentication: Authentication[]; - "scopes-context-map": ScopesContextMap; - backend_system: string; - customization: Customization; - UIComponents: UIComponents; - queryTerms: { [key: string]: string[] }; - "bx-enable": boolean; - "tab-to-tiles": TabToTiles; - searchWithinJournalConfig: SearchWithinJournalConfig; - journal_tab: string; - "institution-base-url": string; - fieldsWithUseTranslation: any[]; - summon_over_alma: boolean; - rapido_sa_enabled: boolean; - "syndeticunbound-enable": boolean; - enableSingleLogout: boolean; - enableExtendSession: boolean; - enableExtendSessionToMax: boolean; - enableUserSettingForExtendSession: boolean; - useEsploroFullAssetPage: boolean; - useEsploroSearchPage: boolean; - "feature-flags": { [key: string]: boolean }; - "country-codes": string[]; - discovery_services_page: boolean; - discovery_local_no_login: boolean; - discovery_with_external_no_login: boolean; -} - -export interface UIComponents { - "583209347UI": The1100315795_UI; - "1641229997UI": The1100315795_UI; - "1759181046UI": The1100315795_UI; - drStartYear: The1100315795_UI; - boolOperator: The1100315795_UI; - drStartDay: The1100315795_UI; - "947577188UI": The1100315795_UI; - "3169448UI": The1100315795_UI; - drEndMonth: The1100315795_UI; - "377269842UI": The1100315795_UI; - "888840311UI": The1100315795_UI; - "1763123372UI": The1100315795_UI; - "1990929722UI": The1100315795_UI; - "1410115621UI": The1100315795_UI; - "2047526908UI": The1100315795_UI; - "1616829328UI": The1100315795_UI; - "1405368152UI": The1100315795_UI; - "957309741UI": The1100315795_UI; - "1321677582UI": The1100315795_UI; - "1376024419UI": The1100315795_UI; - drEndDay: The1100315795_UI; - "2003928281UI": The1100315795_UI; - "1951029823UI": The1100315795_UI; - "613131687UI": The1100315795_UI; - drStartMonth: The1100315795_UI; - drEndYear: The1100315795_UI; - "2015330391UI": The1100315795_UI; - "1969837079UI": The1100315795_UI; - "922931513UI": The1100315795_UI; - "1100315795UI": The1100315795_UI; - "1673426514UI": The1100315795_UI; - "1916938621UI": The1100315795_UI; - "1218266844UI": The1100315795_UI; - "42295145UI": The1100315795_UI; - "918184044UI": The1100315795_UI; - "444888963UI": The1100315795_UI; - "1706526186UI": The1100315795_UI; - freeText: FreeText; - "1275939264UI": The1100315795_UI; - "1219342078UI": The1100315795_UI; - "731082736UI": The1100315795_UI; - "1945191404UI": The1100315795_UI; - "1862591784UI": The1100315795_UI; - "2133281440UI": The1100315795_UI; -} - -export interface The1100315795_UI { - indexFields: IndexField[]; - type: Type; - defaultOption: string; - displayOptions: string[]; - options: string[]; -} - -export enum IndexField { - And = "AND", - Any = "any", - BeginsWith = "begins_with", - Cdate = "cdate", - Contains = "contains", - Creator = "creator", - Equals = "equals", - Exact = "exact", - Issn = "issn", - Lang = "lang", - Not = "NOT", - Or = "OR", - Rtype = "rtype", - Sub = "sub", - Title = "title", - UserTags = "user_tags", -} - -export interface Type { - _string: string; -} - -export interface FreeText { - indexFields: IndexField[]; - type: AdditionalLocationIcons; - defaultOption: string; - displayOptions: any[]; - options: any[]; -} - -export interface AdditionalLocationIcons { -} - -export interface Authentication { - "profile-name": string; - "authentication-system": string; - "silent-login-enabled": string; -} - -export interface Customization { - resourceIcons: Record; - additionalLocationIcons: AdditionalLocationIcons; - staticHtml: AdditionalLocationIcons; -} - -export interface MappingTables { - "Citation Linker Definitions": MappingTable[]; - "Request (Hold and Booking) Optional Parameters": MappingTable[]; - "Prima Direct Login To Other Institutions": any[]; - "Library Level List": AlmaViewItConfig[]; - "Personalize Your Results Disciplines Fields": MappingTable[]; - "Personal Setting Fields": MappingTable[]; - "Photocopy Request Detailed Display": MappingTable[]; - "Call Slip Optional Request Parameters": MappingTable[]; - "Requests Brief Display": MappingTable[]; - "My Account Menu Configuration - OvP": MappingTable[]; - "Report a Problem": any[]; - "Resource Recommender Config": MappingTable[]; - "Alma ViewIt Config": AlmaViewItConfig[]; - "My Account Links": any[]; - sort_fields_config: MappingTable[]; - "Institution Properties": AlmaViewItConfig[]; - "View Properties": MappingTable[]; - "Resource Sharing Request Parameters": MappingTable[]; - "Featured newspapers": MappingTable[]; - "Controlled Digital Lending Request Detailed Display": MappingTable[]; - "Digitization Optional Request Parameters": MappingTable[]; - "Purchase Request Optional Parameters": MappingTable[]; - "Share Action Configuration": AlmaViewItConfig[]; - "Loans Detailed Display": MappingTable[]; - "Actions List": MappingTable[]; - "Recent Searches Configuration": AlmaViewItConfig[]; - "Hypertext Linking Definitions": MappingTable[]; - "Browse Lists": MappingTable[]; - "Holdings Display In Locations List": HoldingsDisplayInLocationsList[]; - "Loans Brief Display": MappingTable[]; - "ILL Optional Request Parameters": MappingTable[]; - "Voice Languages": MappingTable[]; - "Bulk Definition": AlmaViewItConfig[]; - "Items Brief Display": MappingTable[]; - "Photocopy Optional Request Parameters": MappingTable[]; - "User Login Links": UserLoginLink[]; - "Acquisition Request Detailed Display": MappingTable[]; - primo_central_institutions_unique_ids: AlmaViewItConfig[]; - "Fines Detailed Display": MappingTable[]; - "ILL Request Detailed Display": MappingTable[]; - "Personal Details Configuration": AlmaViewItConfig[]; - "Prima Filter Bar Resource Types": MappingTable[]; - "Call Slip Request Detailed Display": MappingTable[]; - "Featured Results": MappingTable[]; - "Fines Brief Display": MappingTable[]; - "Hold Optional Request Parameters": MappingTable[]; - "Location Item content": MappingTable[]; - "Short Loan and Booking Request Detailed Display": MappingTable[]; - "Voice Search Languages Activation": any[]; - "General Configuration": AlmaViewItConfig[]; - "consortia member codes": any[]; - "get it prefilter locations": any[]; - "Auto Complete Configuration": MappingTable[]; - "Main Menu URLs for the New UI": any[]; - "direct linking config": MappingTable[]; - "Citation styles": AlmaViewItConfig[]; - "Export RIS encodings": AlmaViewItConfig[]; - "Recall Optional Request Parameters": MappingTable[]; - "Hold/Recall Request Detailed Display": MappingTable[]; - "Holdings Record Configuration": MappingTable[]; - "Institution Base URLs": MappingTable[]; -} - -export interface MappingTable { - target: string; - source1: string; - source2?: string; - source3?: string; - source4?: string; - source5?: string; - source6?: string; -} - -export interface AlmaViewItConfig { - target: string; - source1: string; -} - -export interface HoldingsDisplayInLocationsList { - target: string; - source2: string; -} - -export interface UserLoginLink { - source1: string; -} - -export interface PrimoView { - "available-tabs": string[]; - institution: Institution; - "pc-availability-tab-scopes-map": TabScopesMap; - "view-org-level": ViewOrgLevel; - "attributes-map": AttributesMap; - "auto-complete-enabled-map": AutoCompleteEnabledMap; - scopes: Scope[]; - "cdi-ft-search-tab-scopes-map": TabScopesMap; - timeout: Timeout; - "is-union-catalog-view": boolean; - "display-unpaywall-links": boolean; - display_quick_links: string; -} - -export interface AttributesMap { - tabsRemote: string; - css: string; - sessionTimeoutURL: string; - interfaceLanguageOptions: string; - threeLettersLanguagesOptions: string; - libCard: string; - defaultUserInstitution: string; - customerCode: string; - layout: string; - bulkSizeOptions: string; - institution: string; - bulkSize: string; - supportedDocumentsLanguageOptions: string; - interfaceLanguage: string; - institutionCode: string; - mobileCss: string; - ownerInstituionCode: string; - citationTrailsEnabled: boolean; - citationTrailsFilterByAvailability: boolean; - selectedFacetLocation: string; - personalizationEnabled: boolean; - moreLikeCourse: boolean; - moreLikeCollection: boolean; - collectionDiscoveryEnabled: boolean; - displayNewspapersLink: boolean; - displayFeaturedNewspapers: boolean; - refEntryActive: boolean; - relatedItemsActive: boolean; - legantoURLTemplate: string; - multilingualConfigurationEnabled: boolean; - journalCategoriesTree: boolean; - newspaperSearchFilterByAvailability: boolean; - displayVoiceSearch: boolean; - displayLibraryNameLocationFacet: boolean; - virtualBrowseType: string; - editMyLibraryCard: boolean; - mayAlsoBeHeldByEnabled: boolean; -} - -export interface AutoCompleteEnabledMap { - CentralIndex: boolean; - MyInst_and_CI: boolean; - DeepSearch: boolean; - WorldCat: boolean; - jsearch_scope: boolean; - Ebsco: boolean; - Webhook: boolean; - Research: boolean; - MyInstitution: boolean; -} - -export interface TabScopesMap { - Everything: Everything; - CentralIndex: CentralIndex; -} - -export interface CentralIndex { - CentralIndex: string; -} - -export interface Everything { - MyInst_and_CI: string; -} - -export interface Institution { - description: string; - id: number; - "org-fields": ViewOrgLevel; - "is-org-fields-set": boolean; - "institution-code": string; - "institution-name": string; - "last-modified-time-stamp": string; - "updated-by": string; - "newspapers-search": boolean; -} - -export interface ViewOrgLevel { - "customer-code": string; - "customer-id": number; - "institution-id": number; -} - -export interface Scope { - "scope-id": string; - locations: string; - types: string; - tab: string; - "tab-id-for-scope-matching": string; - "contains-central-index-scope": boolean; -} - -export interface Timeout { - "guest-ui-timeout": string; -} - -export interface ScopesContextMap { - CentralIndex: string; - MyInst_and_CI: string; - DeepSearch: string; - WorldCat: string; - jsearch_scope: string; - Ebsco: string; - Webhook: string; - Research: string; - MyInstitution: string; -} - -export interface SearchWithinJournalConfig { - tab: string; - scope: string; -} - -export interface SystemConfiguration { - "Session Timeout": string; - Auto_Complete_Server_URL: string; - "FE UI - Scrolling Threshold": string; - Auto_Complete_Feature_Enabled: string; - "Use local fields 30-39 as lateral links": string; - showICPLicenseFooter: string; - manualAlternativeEmailRS: boolean; - GATHER_SEARCH_STAT: string; - GATHER_PAGE_STAT: string; - "Show More (replaces scrolling) Threshold": string; - RUM_URL: string; - Alma_Version: string; - disable_cache: boolean; - skip_delivery: boolean; - skip_delivery_for_collection_discovery: boolean; - skip_relations_delivery: boolean; - split_mms_query: boolean; - split_facets_max_wait: number; - split_facets_wait_interval: number; - Proxy_Server: string; - "Show ICP License Footer": string; - "request item availability check timeout": string; - hostLB: string; - unionViewScopeSuffix: string; - ngrs_enabled: boolean; - ngrs_implementation_mode: boolean; - cdi_enable_global_title_catalog: boolean; - ngrs_enable_best_offer_local_records: boolean; - ngrs_pickup_anywhere: boolean; - temp_rapido_locate_serial_multivolume_offers: boolean; - rapido_lender_supply_directly_to_patron: boolean; - activeAccessModelEnabled: boolean; - number_of_representations: string; - use_facet_in_creator_hyperlink: boolean; - tmp_enable_results_per_page: boolean; - number_of_results_per_page_series: string; - activate_suspend_watchers_for_browser: string; - disable_suspend_watchers_for_x_results: string; - rapido_hide_how_to_get_it_section: boolean; - delivery_bulk_from_brief: boolean; - brief_results_journal_coverage: boolean; - view_it_show_all_results: boolean; - facet_alphanumeric_icelandic_sort: boolean; - use_expanded_db_label: boolean; - use_rapido_functionality: boolean; - allow_self_registration: boolean; - hide_rapido_expand_link_map: HideRapidoExpandLinkMap; - subjects_alphabetical_sort_fullDisplay: boolean; - "Activate Captcha [Y/N]": string; - "Public Captcha Key": string; - async_brief_result_delivery: boolean; - display_holdings_without_waiting: boolean; - enable_direct_linking_in_record_full_view: boolean; - hide_rapido_offers_tiles: boolean; - rapido_hide_section_when_user_not_logged_in: boolean; - rapido_hide_get_it_user_groups: AdditionalLocationIcons; - default_user_search_history_off: boolean; - equals_search_operator_hypertext_linking_enabled: boolean; - allow_start_with_for_call_number: boolean; - allow_activity_on_transferred_finesfees: boolean; - display_person_info_card: boolean; - primoVE_remove_duplicate_records_in_virtual_browse: boolean; - rapido_show_physical_journal_offer: boolean; - primo_ve_enable_browse_search_paging: boolean; - direct_login_transfer_all_parameters: boolean; - default_sort_newspaper_by_date_newest: boolean; - alphabetical_sort_pickup_inst_lib: boolean; - primoVE_my_account_number_of_requests: string; -} - -export interface HideRapidoExpandLinkMap { - Everything: boolean; - CentralIndex: boolean; - SearchWebhook: boolean; - DeepSearch: boolean; - WorldCat: boolean; - Ebsco: boolean; - Research: boolean; - CourseReserves: boolean; - LibraryCatalog: boolean; -} - -export interface TabToTiles { - Everything: string[]; - CentralIndex: string[]; - jsearch_slot: string[]; - SearchWebhook: string[]; - DeepSearch: string[]; - WorldCat: string[]; - Ebsco: string[]; - Research: string[]; - LibraryCatalog: string[]; -} - -export interface Tiles { - HeaderTileInterface: AdditionalLocationIcons; - FacetTileInterface: { [key: string]: FacetTileInterface }; - KeepingItemTileInterface: KeepingItemTileInterface; - MainMenuTileInterface: Record; - StaticHTMLTileInterface: StaticHTMLTileInterface; - SearchTileInterface: { [key: string]: SearchTileInterface }; - ResultFullTileInterface: { [key: string]: ResultFullTileInterface }; - ResultTileInterface: { [key: string]: ResultTileInterface }; - LocationsTileInterface: { [key: string]: LocationsTileInterface }; -} - -export interface FacetTileInterface { - toplevelfacet: boolean; - toplevelsidefacet: boolean; - generalpageactions: boolean; - facetview: Facetview[]; - relatedfacetview: AdditionalLocationIcons; - id: string; -} - -export interface Facetview { - display: boolean; - viewinstsort: boolean; - instsort: boolean; - valid: boolean; - count: number; - sort: Sort; - id: string; - useTranslations: boolean; -} - -export interface Sort { - _string: Rta; - _int: number; -} - -export enum Rta { - AlphaNumeric = "alpha_numeric", - BySize = "by_size", - None = "none", -} - -export interface KeepingItemTileInterface { - "TRAINING_1_INST:AUTO1.KeepingItemTileInterface": TRAINING1_INSTAUTO1KeepingItemTileInterface; -} - -export interface TRAINING1_INSTAUTO1KeepingItemTileInterface { - keepingitemfunctionview: any[]; - id: string; -} - -export interface LocationsTileInterface { - viewinstsort: boolean; - rta: Rta; - displayholdingsfilters: boolean; - filtersop: string; - instsort: boolean; - id: string; -} - -export interface MainMenuTileInterface { - mainview: Mainview[]; - id: string; -} - -export interface Mainview { - url: string; - label: string; - target: string; -} - -export interface ResultFullTileInterface { - eshelf: boolean; - delimiter: Delimiter; - getitbutton: boolean; - resultlinks: Resultlink[]; - resultitemview: Resultitemview[]; - id: string; -} - -export enum Delimiter { - Delimiter = ";", - Empty = "; ", -} - -export interface Resultitemview { - items: string; - displayInViewer: boolean; -} - -export interface Resultlink { - links: string; -} - -export interface ResultTileInterface { - ilsapi: boolean; - bulksize: number; - eshelf: boolean; - showsnip: boolean; - resultview: Resultview[]; - facebookenabled: boolean; - linkabletitle: string; - sortby: Sortby; - frbrdisplay: number; - frbrsortby: Frbrsortby; - tabsorder: Tabsorder; - getall: boolean; - showsnipifnotfound: boolean; - boostinst: boolean; - numofresults: number; - id: string; - displaysigninmsg: boolean; - groupmessage: number; -} - -export enum Frbrsortby { - DateD = "date_d", -} - -export interface Resultview { - items: Items; - delimiter: Delimiter; -} - -export enum Items { - Creationdate = "creationdate", - CreatorContributor = "creator,contributor", - Ispartof = "ispartof", - VertitleTitle = "vertitle,title", -} - -export enum Sortby { - RankDateDDateATitleAuthor = "rank,date_d,date_a,title,author", - TitleRank = "title,rank", -} - -export interface Tabsorder { - items: string; -} - -export interface SearchTileInterface { - qtvinstance: Qtvinstance[]; - prefiltersenable: boolean; - indexedPrefiltersenable: boolean; - resourcetypePrefiltersenable: boolean; - alphabeticLanguagesSort: boolean; -} - -export interface Qtvinstance { - qtvid: string; -} - -export interface StaticHTMLTileInterface { - "TRAINING_1_INST:AUTO1.StaticHTMLTileInterface": TRAINING1_INSTAUTO1StaticHTMLTileInterface; -} - -export interface TRAINING1_INSTAUTO1StaticHTMLTileInterface { - news: string; - featured: string; - signinTips: string; - ideasFull: string; - atoz: string; - footer: string; - service: string; - signin: string; - noResults: string; - header: string; - ideasBrief: string; - browse: string; -} diff --git a/src/app/state/state.const.ts b/src/app/state/state.const.ts deleted file mode 100644 index aae6b9ed..00000000 --- a/src/app/state/state.const.ts +++ /dev/null @@ -1,10 +0,0 @@ -export const SUCCESS: "success" = 'success'; -export const FAIL: "fail" = 'fail'; -export const LOADING: "loading" = 'loading'; -export const PENDING: "pending" = 'pending'; -export type LoadingStatus = typeof PENDING | typeof LOADING | typeof SUCCESS| typeof FAIL; -export const USER: "user" = 'user'; -export const TIMEOUT: "timeout" = 'timeout'; -export type LogoutReason = typeof USER | typeof TIMEOUT; -export const MAX_STATE_ACTIONS_IN_HISTORY = 25; -export const MAX_STACK_FRAMES_IN_HISTORY = 25; diff --git a/src/app/test-after/test-after.component.html b/src/app/test-after/test-after.component.html deleted file mode 100644 index b19848d7..00000000 --- a/src/app/test-after/test-after.component.html +++ /dev/null @@ -1,4 +0,0 @@ -

test-after works! {{ subject }}

-

subject: {{ subject }}

-

image:CustomModule Waving and Winking

- diff --git a/src/app/test-after/test-after.component.scss b/src/app/test-after/test-after.component.scss deleted file mode 100644 index 019e4687..00000000 --- a/src/app/test-after/test-after.component.scss +++ /dev/null @@ -1,9 +0,0 @@ -img { - width: 20%; /* Makes the image 20% of its original size */ - height: auto; /* Maintains aspect ratio */ -} - -p { - color: green; /* Changes text color to green */ - font-weight: bold; /* Makes text bold */ -} \ No newline at end of file diff --git a/src/app/test-after/test-after.component.spec.ts b/src/app/test-after/test-after.component.spec.ts deleted file mode 100644 index 02e770e1..00000000 --- a/src/app/test-after/test-after.component.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { TestAfterComponent } from './test-after.component'; - -describe('TestAfterComponent', () => { - let component: TestAfterComponent; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestAfterComponent] - }); - fixture = TestBed.createComponent(TestAfterComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/test-after/test-after.component.ts b/src/app/test-after/test-after.component.ts deleted file mode 100644 index 814290eb..00000000 --- a/src/app/test-after/test-after.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, Inject, Input, Optional } from '@angular/core'; -declare const __webpack_public_path__: string; - -@Component({ - selector: 'custom-test-after', - templateUrl: './test-after.component.html', - styleUrls: ['./test-after.component.scss'] -}) -export class TestAfterComponent { - subject: string | undefined; - imageUrl = __webpack_public_path__ + 'assets/images/CustomModule_Waving_Winking.jpeg'; - @Input() private hostComponent!: any; - - constructor( ) { } - ngOnInit(): void { - this.subject = this.getSubjectText(); - console.log('TestAfterComponent ngOnInit:', this.subject); - } - - private getSubjectText(): string | undefined { - console.log('TestAfterComponent getSubjectText:', this.hostComponent); - return this.hostComponent.searchResult?.pnx?.display?.['subject']?.join(', '); - } -} diff --git a/src/app/test-before/test-before.component.html b/src/app/test-before/test-before.component.html deleted file mode 100644 index 2da5031a..00000000 --- a/src/app/test-before/test-before.component.html +++ /dev/null @@ -1 +0,0 @@ -

test-before works!

diff --git a/src/app/test-before/test-before.component.scss b/src/app/test-before/test-before.component.scss deleted file mode 100644 index 8103225b..00000000 --- a/src/app/test-before/test-before.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -p { - color: blueviolet; /* Changes text color to green */ - font-weight: bold; /* Makes text bold */ -} \ No newline at end of file diff --git a/src/app/test-before/test-before.component.spec.ts b/src/app/test-before/test-before.component.spec.ts deleted file mode 100644 index d6f8b61f..00000000 --- a/src/app/test-before/test-before.component.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { TestBeforeComponent } from './test-before.component'; - -describe('TestBeforeComponent', () => { - let component: TestBeforeComponent; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestBeforeComponent] - }); - fixture = TestBed.createComponent(TestBeforeComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/test-before/test-before.component.ts b/src/app/test-before/test-before.component.ts deleted file mode 100644 index 42df2fcc..00000000 --- a/src/app/test-before/test-before.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'custom-test-before', - templateUrl: './test-before.component.html', - styleUrls: ['./test-before.component.scss'] -}) -export class TestBeforeComponent { - -} diff --git a/src/app/test-bottom/test-bottom.component.html b/src/app/test-bottom/test-bottom.component.html deleted file mode 100644 index 9ce19148..00000000 --- a/src/app/test-bottom/test-bottom.component.html +++ /dev/null @@ -1 +0,0 @@ -

test-bottom works!

diff --git a/src/app/test-bottom/test-bottom.component.scss b/src/app/test-bottom/test-bottom.component.scss deleted file mode 100644 index fb3a5cf4..00000000 --- a/src/app/test-bottom/test-bottom.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -p { - color: blue; /* Changes text color to green */ - font-weight: bold; /* Makes text bold */ -} \ No newline at end of file diff --git a/src/app/test-bottom/test-bottom.component.spec.ts b/src/app/test-bottom/test-bottom.component.spec.ts deleted file mode 100644 index 01bd9f0a..00000000 --- a/src/app/test-bottom/test-bottom.component.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { TestBottomComponent } from './test-bottom.component'; - -describe('TestBottomComponent', () => { - let component: TestBottomComponent; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestBottomComponent] - }); - fixture = TestBed.createComponent(TestBottomComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/test-bottom/test-bottom.component.ts b/src/app/test-bottom/test-bottom.component.ts deleted file mode 100644 index e79fab46..00000000 --- a/src/app/test-bottom/test-bottom.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'custom-test-bottom', - templateUrl: './test-bottom.component.html', - styleUrls: ['./test-bottom.component.scss'] -}) -export class TestBottomComponent { - -} diff --git a/src/app/test-top/test-top.component.html b/src/app/test-top/test-top.component.html deleted file mode 100644 index 9c334049..00000000 --- a/src/app/test-top/test-top.component.html +++ /dev/null @@ -1 +0,0 @@ -

test-top works!

diff --git a/src/app/test-top/test-top.component.scss b/src/app/test-top/test-top.component.scss deleted file mode 100644 index 06162d25..00000000 --- a/src/app/test-top/test-top.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -p { - color: red; /* Changes text color to green */ - font-weight: bold; /* Makes text bold */ -} \ No newline at end of file diff --git a/src/app/test-top/test-top.component.spec.ts b/src/app/test-top/test-top.component.spec.ts deleted file mode 100644 index 852f66c6..00000000 --- a/src/app/test-top/test-top.component.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { TestTopComponent } from './test-top.component'; - -describe('TestTopComponent', () => { - let component: TestTopComponent; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestTopComponent] - }); - fixture = TestBed.createComponent(TestTopComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/test-top/test-top.component.ts b/src/app/test-top/test-top.component.ts deleted file mode 100644 index 4427c761..00000000 --- a/src/app/test-top/test-top.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'custom-test-top', - templateUrl: './test-top.component.html', - styleUrls: ['./test-top.component.scss'] -}) -export class TestTopComponent { - -} diff --git a/src/assets/js/custom.js b/src/assets/js/custom.js new file mode 100644 index 00000000..f1731792 --- /dev/null +++ b/src/assets/js/custom.js @@ -0,0 +1 @@ +console.log('Hello from custom.js'); \ No newline at end of file From 8a6e07711f703ce2372e9b302b7b18b77e968c7c Mon Sep 17 00:00:00 2001 From: "shoul.manevitz" Date: Thu, 20 Mar 2025 09:20:35 +0200 Subject: [PATCH 17/61] update custom theming example --- src/app/styles/_customized-theme.scss | 128 +------------------------- 1 file changed, 3 insertions(+), 125 deletions(-) diff --git a/src/app/styles/_customized-theme.scss b/src/app/styles/_customized-theme.scss index 319466ae..5b5327bc 100644 --- a/src/app/styles/_customized-theme.scss +++ b/src/app/styles/_customized-theme.scss @@ -1,130 +1,8 @@ - @use '@angular/material' as mat; @use 'generate-pallete-color-vars' as nde-mixins; - -// Be sure that you only ever include this mixin once! -@include mat.core(); - -// Define your theme with color palettes, typography and density - -//$mat-theme-primary-palette: map-merge(mat.$cyan-palette, ( contrast: (100: #150c4a,))); -//$mat-theme-primary: mat.define-palette( -// $mat-theme-primary-palette, -// $default: 100, -// $lighter: 100, -// $darker: 700, -// $text: 500 -//); -// -//$mat-theme-accent-palette: map-merge(mat.$teal-palette, ( 501: #4d77b6,contrast: (501: white,A100: white,A200: white,))); -//$mat-theme-accent: mat.define-palette( -// $mat-theme-accent-palette, -// $default: 501, -// $lighter: A100, -// $darker: A200, -// $text: 600 -//); -// -//$mat-theme-warn-palette: map-merge(mat.$pink-palette, ( )); -//$mat-theme-warn: mat.define-palette( -// $mat-theme-warn-palette, -// $default: A200, -// $lighter: 500, -// $darker: 500, -// $text: A700 -//); -// -//$mat-dark-theme-primary-palette: map-merge(mat.$lime-palette, ( contrast: (200: #030844,A100: rgba(0,0,0, 0.87),A700: rgba(0,0,0, 0.87),))); -//$mat-dark-theme-primary: mat.define-palette( -// $mat-dark-theme-primary-palette, -// $default: 200, -// $lighter: A100, -// $darker: A700, -// $text: 700 -//); -// -//$mat-dark-theme-accent-palette: map-merge(mat.$green-palette, ( contrast: (A200: black,50: black,A400: black,))); -//$mat-dark-theme-accent: mat.define-palette( -// $mat-dark-theme-accent-palette, -// $default: A200, -// $lighter: 50, -// $darker: A400, -// $text: A100 -//); -// -//$mat-dark-theme-warn-palette: map-merge(mat.$pink-palette, ( contrast: (A100: black,100: white,))); -//$mat-dark-theme-warn: mat.define-palette( -// $mat-dark-theme-warn-palette, -// $default: A100, -// $lighter: 100, -// $darker: A700, -// $text: 100 -//); -// -//@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@300&display=swap'); -// -//$mat-typography: mat.define-typography-config( -// $font-family: 'Rubik', -// $display-4: mat.define-typography-level($font-size: 96px, $font-weight: 300, $font-family: Rubik), -// $display-3: mat.define-typography-level($font-size: 60px, $font-weight: 500, $font-family: Rubik), -// $display-2: mat.define-typography-level($font-size: 48px, $font-weight: 500, $font-family: Rubik), -// $display-1: mat.define-typography-level($font-size: 34px, $font-weight: 500, $font-family: Rubik), -// $headline: mat.define-typography-level($font-size: 24px, $font-weight: 500, $font-family: Rubik), -// $title: mat.define-typography-level($font-size: 20px, $font-weight: 500, $font-family: Rubik), -// $subheading-2: mat.define-typography-level($font-size: 18px, $font-weight: 500, $font-family: Rubik), -// $subheading-1: mat.define-typography-level($font-size: 20px, $font-weight: 500, $font-family: Rubik), -// $body-2: mat.define-typography-level($font-size: 16px, $font-weight: 400, $font-family: Rubik), -// $body-1: mat.define-typography-level($font-size: 18px, $font-weight: 400, $font-family: Rubik), -// $caption: mat.define-typography-level($font-size: 16px, $font-weight: Medium, $font-family: Rubik), -// $button: mat.define-typography-level($font-size: 16px, $font-weight: 500, $font-family: Rubik), -// // Line-height must be unit-less fraction of the font-size. -// $input: mat.define-typography-level($font-size: inherit, $line-height: 1.125, $font-weight: 500, $font-family: Rubik), -//); -// -//$mat-density: 0; -//// @include mat.elevation( -//// $zValue: 12, -//// $color: #000, -//// $opacity: 0.5 -//// ); -// -//$mat-core-theme: mat.define-light-theme(( -// color: ( -// primary: $mat-theme-primary, -// accent: $mat-theme-accent, -// warn: $mat-theme-warn -// ), -// typography: $mat-typography, -// density: $mat-density -//)); -// -//$mat-dark-theme: mat.define-dark-theme(( -// color: ( -// primary: $mat-dark-theme-primary, -// accent: $mat-dark-theme-accent, -// warn: $mat-dark-theme-warn, -// ) -//)); -$primary-palette: mat.m2-define-palette(mat.$m2-pink-palette, 500); -$accent-palette: mat.m2-define-palette(mat.$m2-amber-palette, A200, A100, A400); -$warn-palette: mat.m2-define-palette(mat.$m2-red-palette, 500); - -$mat-custom-theme: mat.m2-define-light-theme(( - color: ( - primary: $primary-palette, - accent: $accent-palette, - warn: $warn-palette - ), - typography: mat.m2-define-typography-config(), - density: 0 -)); +@use 'm3-theme'; .custom-nde-theme{ - @include nde-mixins.generate-color-variables($primary-palette, $accent-palette, $warn-palette); - @include mat.all-component-themes($mat-custom-theme); + @include mat.all-component-colors(m3-theme.$light-theme); + @include mat.system-level-colors(m3-theme.$light-theme); } - - -//.dark-theme { -// @include mat.all-component-colors($mat-dark-theme); -//} From d6bb2f7f8104ee078c1c1e03410ab41fc47277e4 Mon Sep 17 00:00:00 2001 From: Shoul Manevitz Date: Thu, 20 Mar 2025 10:58:41 +0200 Subject: [PATCH 18/61] Update README.md --- README.md | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 1427cd83..35e1e08d 100644 --- a/README.md +++ b/README.md @@ -64,22 +64,16 @@ The NDE Customization package is currently available exclusively to Primo custom ## Code Scaffolding and Customization ### Step 3: Add Custom Components -1. Create custom components within the `custom1-module` module by running: +1. Create custom components by running: ```bash - ng generate component --module custom1-module + ng generate component ``` Example: ```bash - ng generate component RecommendationsComponent --module custom1-module - ``` - -2. To add components before and after a target component, use: - ```bash - ng generate component -before --module custom1-module - ng generate component -after --module custom1-module - ``` + ng generate component RecommendationsComponent + ``` -3. Update `selectorComponentMap` in `app.module.ts` to connect the newly created components: +2. Update `selectorComponentMap` in `customComponentMappings.ts` to connect the newly created components: ```typescript export const selectorComponentMap = new Map([ ['nde-recommendations-before', RecommendationsComponentBefore], @@ -89,7 +83,7 @@ The NDE Customization package is currently available exclusively to Primo custom ]); ``` -4. Customize the component’s `.html`, `.ts`, and `.scss` files as needed: +3. Customize the component’s `.html`, `.ts`, and `.scss` files as needed: - `src/app/recommendations-component/recommendations-component.component.html` - `src/app/recommendations-component/recommendations-component.component.ts` - `src/app/recommendations-component/recommendations-component.component.scss` From 8663f73078c5c4c9494fd6a7c30f8b613d4eca84 Mon Sep 17 00:00:00 2001 From: Shoul Manevitz Date: Thu, 20 Mar 2025 11:02:16 +0200 Subject: [PATCH 19/61] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 35e1e08d..b84015fc 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ The NDE Customization package offers options to enhance and extend the functionality of Primo’s New Discovery Experience (NDE). You can add and develop your own components, customize theme templates, and tailor the discovery interface to your specific needs. **Note:** -This branch includes updates to Angular 18 and other improvements that will be compatible with future version of the NDE. Probably January 2025 release. We will merge this branch to the main one when it is compatible with released version of NDE. +This branch includes updates and other improvements that will be compatible with the April 2025 release of NDE. We will merge this branch to the main one when it is compatible with released version of NDE. **Note:** The NDE Customization package is currently available exclusively to Primo customers who have early access to the New Discovery Experience (NDE). Further availability will be announced in upcoming releases. From add132e363a80a22f60251933138727676cafb98 Mon Sep 17 00:00:00 2001 From: "david.bendavid" Date: Thu, 20 Mar 2025 13:57:16 +0200 Subject: [PATCH 20/61] WIP: work in progress --- prebuild.js | 38 ++++++++------- src/app/app.module.ts | 8 +++- src/app/app.module.ts.bak | 49 ++++++++++++++++++++ src/app/services/asset-base.service.spec.ts | 16 +++++++ src/app/services/asset-base.service.ts | 16 +++++++ src/app/services/auto-asset-src.directive.ts | 36 ++++++++++++++ src/app/state/asset-base.generated.ts | 1 + src/app/state/state.const.ts | 10 ++++ 8 files changed, 156 insertions(+), 18 deletions(-) create mode 100644 src/app/app.module.ts.bak create mode 100644 src/app/services/asset-base.service.spec.ts create mode 100644 src/app/services/asset-base.service.ts create mode 100644 src/app/services/auto-asset-src.directive.ts create mode 100644 src/app/state/asset-base.generated.ts create mode 100644 src/app/state/state.const.ts diff --git a/prebuild.js b/prebuild.js index 602f4abd..28f6d62c 100644 --- a/prebuild.js +++ b/prebuild.js @@ -5,6 +5,7 @@ const envFilePath = path.resolve(__dirname, 'build-settings.env'); const bootstrapPath = path.resolve(__dirname, 'src/bootstrap.ts'); const mainPath = path.resolve(__dirname, 'src/main.ts'); const webpackConfigPath = path.resolve(__dirname, 'webpack.config.js'); +const assetBaseOutPath = path.resolve(__dirname, 'src/app/state/asset-base.generated.ts'); if (!fs.existsSync(envFilePath)) { console.error("Error: build-settings.env file not found!"); @@ -18,39 +19,44 @@ if (match) { const addonName = match[1].trim(); const newBootstrapPath = path.resolve(__dirname, `src/bootstrap${addonName}.ts`); + // Restore bootstrap.ts from previous version if needed + if (!fs.existsSync(bootstrapPath) && fs.existsSync(newBootstrapPath)) { + fs.copyFileSync(newBootstrapPath, bootstrapPath); + console.log(`Restored bootstrap.ts from bootstrap${addonName}.ts`); + } + // Rename bootstrap.ts if not already renamed if (fs.existsSync(bootstrapPath) && !fs.existsSync(newBootstrapPath)) { fs.renameSync(bootstrapPath, newBootstrapPath); console.log(`Renamed bootstrap.ts to bootstrap${addonName}.ts`); } - // Modify import in main.ts + // Update main.ts import let mainContent = fs.readFileSync(mainPath, 'utf8'); mainContent = mainContent.replace( - /import\(['"]\.\/bootstrap['"]\)/g, + /import\(['"]\.\/bootstrap.*?['"]\)/g, `import('./bootstrap${addonName}')` ); fs.writeFileSync(mainPath, mainContent); console.log(`Updated main.ts to import('./bootstrap${addonName}')`); - // Modify webpack.config.js + // Update webpack.config.js let webpackConfig = fs.readFileSync(webpackConfigPath, 'utf8'); - - // Replace name: "customModule" with name: "{ADDON_NAME}" - webpackConfig = webpackConfig.replace( - /name:\s*["']customModule["']/, - `name: "${addonName}"` - ); - - // Replace './custom-module': './src/bootstrap.ts' with './{ADDON_NAME}': './src/bootstrap{ADDON_NAME}.ts' - webpackConfig = webpackConfig.replace( - /'\.\/custom-module':\s*'\.\/src\/bootstrap.ts'/, - `'./${addonName}': './src/bootstrap${addonName}.ts'` - ); - + webpackConfig = webpackConfig.replace(/name:\s*["'][^"']+["']/, `name: "${addonName}"`); + webpackConfig = webpackConfig.replace(/'\.\/[^']+':\s*'\.\/src\/bootstrap[^']*'/, `'./${addonName}': './src/bootstrap${addonName}.ts'`); fs.writeFileSync(webpackConfigPath, webpackConfig); console.log(`Updated webpack.config.js for addon: ${addonName}`); } else { console.log("ADDON_NAME not found in build-settings.env. Skipping renaming."); } + +// --- Handle ASSET_BASE_URL --- +const assetBaseMatch = envContent.match(/^ASSET_BASE_URL=(.*)$/m); +const assetBaseUrl = assetBaseMatch ? assetBaseMatch[1].trim() : ''; + +console.log('ENV content:\n', envContent); +console.log('Extracted ASSET_BASE_URL:', assetBaseUrl); + +fs.writeFileSync(assetBaseOutPath, `export const assetBaseUrl = '${assetBaseUrl}';\n`); +console.log(`✔ Written to ${assetBaseOutPath}:\nexport const assetBaseUrl = '${assetBaseUrl}';`); diff --git a/src/app/app.module.ts b/src/app/app.module.ts index a1b3e13a..cdca9f46 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -5,15 +5,19 @@ import {createCustomElement, NgElementConstructor} from "@angular/elements"; import {Router} from "@angular/router"; import {selectorComponentMap} from "./custom1-module/customComponentMappings"; import {TranslateModule} from "@ngx-translate/core"; - +import { CommonModule } from '@angular/common'; +import { AutoAssetSrcDirective } from './services/auto-asset-src.directive'; export const AppModule = ({providers}: {providers:any}) => { @NgModule({ declarations: [ - AppComponent + AppComponent, + AutoAssetSrcDirective ], + exports: [AutoAssetSrcDirective], imports: [ BrowserModule, + CommonModule, TranslateModule.forRoot({}) ], providers: providers, diff --git a/src/app/app.module.ts.bak b/src/app/app.module.ts.bak new file mode 100644 index 00000000..acdc7728 --- /dev/null +++ b/src/app/app.module.ts.bak @@ -0,0 +1,49 @@ +import {ApplicationRef, DoBootstrap, Injector, ModuleWithProviders, NgModule} from '@angular/core'; +import {BrowserModule} from '@angular/platform-browser'; +import {AppComponent} from './app.component'; +import {createCustomElement, NgElementConstructor} from "@angular/elements"; +import {Router} from "@angular/router"; +import {selectorComponentMap} from "./custom1-module/customComponentMappings"; +import {TranslateModule} from "@ngx-translate/core"; +import { CommonModule } from '@angular/common'; +import { AutoAssetSrcDirective } from './services/auto-asset-src.directive'; + +export const AppModule = ({providers}: {providers:any}) => { + @NgModule({ + declarations: [ + AppComponent, + AutoAssetSrcDirective + ], + imports: [ + BrowserModule, + CommonModule, + TranslateModule.forRoot({}) + ], + providers: providers, + bootstrap: [] + }) + class AppModule implements DoBootstrap{ + private webComponentSelectorMap = new Map>(); + + constructor(private injector: Injector, private router: Router) { + router.dispose(); //this prevents the router from being initialized and interfering with the shell app router + } + + ngDoBootstrap(appRef: ApplicationRef) { + for (const [key, value] of selectorComponentMap) { + const customElement = createCustomElement(value, {injector: this.injector}); + this.webComponentSelectorMap.set(key, customElement); + } + } + + /** + * Use componentMapping, selectorComponentMap + * @param componentName + */ + public getComponentRef(componentName:string) { + return this.webComponentSelectorMap.get(componentName); + } + } + return AppModule +} + diff --git a/src/app/services/asset-base.service.spec.ts b/src/app/services/asset-base.service.spec.ts new file mode 100644 index 00000000..3b6f1dae --- /dev/null +++ b/src/app/services/asset-base.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AssetBaseService } from './asset-base.service'; + +describe('AssetBaseService', () => { + let service: AssetBaseService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AssetBaseService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/asset-base.service.ts b/src/app/services/asset-base.service.ts new file mode 100644 index 00000000..16fde4e9 --- /dev/null +++ b/src/app/services/asset-base.service.ts @@ -0,0 +1,16 @@ +// asset-base.service.ts +import { Injectable } from '@angular/core'; +import { assetBaseUrl } from '../state/asset-base.generated'; + +@Injectable({ + providedIn: 'root' +}) +export class AssetBaseService { + private readonly base = assetBaseUrl; + + resolveAssetUrl(relativePath: string): string { + if (!relativePath) return ''; + if (/^(https?:)?\/\//.test(relativePath)) return relativePath; + return `${this.base}/${relativePath.replace(/^\/+/, '')}`; + } +} diff --git a/src/app/services/auto-asset-src.directive.ts b/src/app/services/auto-asset-src.directive.ts new file mode 100644 index 00000000..b3115581 --- /dev/null +++ b/src/app/services/auto-asset-src.directive.ts @@ -0,0 +1,36 @@ +// auto-asset-src.directive.ts +import { + Directive, + ElementRef, + Input, + OnInit, + Renderer2 + } from '@angular/core'; + import { AssetBaseService } from './asset-base.service'; + + @Directive({ + selector: '[autoAssetSrc]' // + }) + export class AutoAssetSrcDirective implements OnInit { + @Input() src: string = ''; + + constructor( + private el: ElementRef, + private renderer: Renderer2, + private assetService: AssetBaseService + ) {} + + ngOnInit(): void { + console.log('autoAssetSrc activated for', this.el.nativeElement); + const tag = this.el.nativeElement.tagName.toLowerCase(); + const resolved = this.assetService.resolveAssetUrl(this.src); + + if (tag === 'img' || tag === 'script' || tag === 'iframe' || tag === 'video' || tag === 'source') { + this.renderer.setAttribute(this.el.nativeElement, 'src', resolved); + } else { + // fallback for background-image + this.renderer.setStyle(this.el.nativeElement, 'background-image', `url(${resolved})`); + } + } + } + \ No newline at end of file diff --git a/src/app/state/asset-base.generated.ts b/src/app/state/asset-base.generated.ts new file mode 100644 index 00000000..5aaf8bc6 --- /dev/null +++ b/src/app/state/asset-base.generated.ts @@ -0,0 +1 @@ +export const assetBaseUrl = 'http://il-urm08.corp.exlibrisgroup.com:4202'; diff --git a/src/app/state/state.const.ts b/src/app/state/state.const.ts new file mode 100644 index 00000000..aae6b9ed --- /dev/null +++ b/src/app/state/state.const.ts @@ -0,0 +1,10 @@ +export const SUCCESS: "success" = 'success'; +export const FAIL: "fail" = 'fail'; +export const LOADING: "loading" = 'loading'; +export const PENDING: "pending" = 'pending'; +export type LoadingStatus = typeof PENDING | typeof LOADING | typeof SUCCESS| typeof FAIL; +export const USER: "user" = 'user'; +export const TIMEOUT: "timeout" = 'timeout'; +export type LogoutReason = typeof USER | typeof TIMEOUT; +export const MAX_STATE_ACTIONS_IN_HISTORY = 25; +export const MAX_STACK_FRAMES_IN_HISTORY = 25; From 9691331dfe2d76da9d1aaeaa7c1e1797e6751e1c Mon Sep 17 00:00:00 2001 From: "david.bendavid" Date: Thu, 20 Mar 2025 14:36:06 +0200 Subject: [PATCH 21/61] WIP: work in progress --- README.md | 104 ++++++++++++++++++++++++++ src/app/state/asset-base.generated.ts | 2 +- 2 files changed, 105 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b84015fc..3e90a650 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,110 @@ There are two options for setting up your local development environment: configu ``` - This setup allows for real-time testing and development that closely mirrors live environment conditions. +## Optional Configuration with `build-settings.env` + +The `build-settings.env` file allows you to configure additional options to tailor the build output and behavior of the custom module. + +### Supported Environment Variables + +#### `ADDON_NAME` + +This option allows renaming the internal bootstrap and output files to distinguish different add-on modules. + + + + + + + +Example: +```env +ADDON_NAME=thirdpartyaddon +``` + + + + + +When set: +- `bootstrap.ts` → `bootstrapthirdpartyaddon.ts` +- `main.ts` dynamically loads: `import('./bootstrapthirdpartyaddon')` +- Webpack exposes: + + + + + ```ts + exposes: { + './thirdpartyaddon': './src/bootstrapthirdpartyaddon.ts' + } + ``` + +> 💡 Use this to create multiple federated modules or differentiate builds for different consumers. + +#### `ASSET_BASE_URL` + +Defines the base URL for assets. + +Example: +```env +ASSET_BASE_URL=http://il-urm08.corp.exlibrisgroup.com:4202/ + +``` + +Generated: +```ts +// src/app/state/asset-base.generated.ts +export const assetBaseUrl = 'http://il-urm08.corp.exlibrisgroup.com:4202/'; +``` + +Use in code: +```ts +import { assetBaseUrl } from 'src/app/state/asset-base.generated'; +const img = `${assetBaseUrl}images/logo.png`; +``` + +--- + + + + + + + + + + + +## Using the `autoAssetSrc` Directive + +The `autoAssetSrc` directive automatically prepends `ASSET_BASE_URL` to your `[src]` attribute. + +### Example: +```html + +``` + +With: +```env +ASSET_BASE_URL=http://il-urm08.corp.exlibrisgroup.com:4202/ +``` + +Results in: +```html + +``` + +### Supported Elements: +- `` +- `` +- `