From 41e65a9b6627fb4fb0ce2dad1ff9a77e1b972b28 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Wed, 27 Aug 2025 15:04:22 +0200 Subject: [PATCH 01/30] build: fix syntax of npmrc --- .npmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.npmrc b/.npmrc index 89334cf8a..a1d091312 100644 --- a/.npmrc +++ b/.npmrc @@ -1,4 +1,4 @@ -// .npmrc +;// .npmrc registry=https://registry.npmjs.org/ ;@dlr-eoc:registry=https://npm.pkg.github.com From 761af9993f44117ab04e2980900a616ed96a394a Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 15:02:52 +0200 Subject: [PATCH 02/30] docs: update tutorial for ng new with custom cli version --- TUTORIALS.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/TUTORIALS.md b/TUTORIALS.md index 06504fa71..1cb3a1e41 100644 --- a/TUTORIALS.md +++ b/TUTORIALS.md @@ -17,6 +17,13 @@ npm install -g @angular/cli@ ``` ng new project-tutorial-map --style=scss --standalone=true --routing=false ``` + +or locally installed `@angular/cli` with `npx` + +``` +npx @angular/cli@ new project-tutorial-map --style=scss --standalone=true --routing=false +``` + - We do not need angular routing, so decline the prompt with `N` ### 2. Move into the directory From f6e4e10257736aa17a52bcc1dd9b70b42ed4af25 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 15:16:43 +0200 Subject: [PATCH 03/30] feat (map-ol): remove dependency on CDs #267 --- .../route-map4.component.ts | 11 +++++++--- projects/map-ol/package.json | 1 - projects/map-ol/src/lib/map-ol.component.ts | 21 +++++++------------ 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/projects/demo-maps/src/app/route-components/route-example-custom-layers/route-map4.component.ts b/projects/demo-maps/src/app/route-components/route-example-custom-layers/route-map4.component.ts index 0f9f170d7..2a313b3ea 100644 --- a/projects/demo-maps/src/app/route-components/route-example-custom-layers/route-map4.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-custom-layers/route-map4.component.ts @@ -31,11 +31,11 @@ import { ExampleGroupActionComponent } from '../../components/example-group-acti import { TablePopupComponent } from '../../components/table-popup/table-popup.component'; import { Popup2Component } from '../../components/popup2/popup2.component'; -import { ClarityIcons, layersIcon, paperclipIcon } from '@cds/core/icon'; +import { ClarityIcons, layersIcon, paperclipIcon, worldIcon } from '@cds/core/icon'; import { MapOlComponent } from '@dlr-eoc/map-ol'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; import { LayerControlComponent } from '@dlr-eoc/layer-control'; -ClarityIcons.addIcons(...[layersIcon, paperclipIcon]); +ClarityIcons.addIcons(...[layersIcon, paperclipIcon, worldIcon]); @Component({ @@ -57,10 +57,15 @@ export class RouteMap4Component implements OnInit, AfterViewInit { public mapSvc: MapOlService ) { + const icon = document.createElement('spawn'); + icon.innerHTML = ''; + this.controls = { attribution: true, scaleLine: true, - overviewMap: true + overviewMap: { + label: icon + } }; } diff --git a/projects/map-ol/package.json b/projects/map-ol/package.json index 423b4b855..946b85660 100644 --- a/projects/map-ol/package.json +++ b/projects/map-ol/package.json @@ -14,7 +14,6 @@ "peerDependencies": { "@angular/common": "^19.2.12", "@angular/core": "^19.2.12", - "@cds/core": "^6.15.1", "rxjs": "~7.8.2" }, "dependencies": { diff --git a/projects/map-ol/src/lib/map-ol.component.ts b/projects/map-ol/src/lib/map-ol.component.ts index 4b3b87059..de2609112 100644 --- a/projects/map-ol/src/lib/map-ol.component.ts +++ b/projects/map-ol/src/lib/map-ol.component.ts @@ -42,28 +42,24 @@ import { applyStyle } from 'ol-mapbox-style'; import { collectionItemSetIndex, layerOrGroupSetOpacity, layerOrGroupSetVisible, layerOrGroupSetZIndex } from '@dlr-eoc/utils-maps'; import { defaults as defaultInteractions } from 'ol/interaction/defaults'; -import { ClarityIcons, worldIcon } from '@cds/core/icon'; import VectorSource from 'ol/source/Vector'; -ClarityIcons.addIcons(...[worldIcon]); - + /** @see (control options object) https://github.com/openlayers/openlayers/tree/main/src/ol/control */ export interface IMapControls { - /** @see (Attribution options) https://github.com/openlayers/openlayers/blob/v6.2.1/src/ol/control/Attribution.js#L13 */ + /** for icon replacement use - label | collapseLabel */ attribution?: boolean | object; - /** @see (ScaleLine options) https://github.com/openlayers/openlayers/blob/v6.2.1/src/ol/control/ScaleLine.js#L39 */ scaleLine?: boolean | object; - /** @see (Zoom options) https://github.com/openlayers/openlayers/blob/v6.2.1/src/ol/control/Zoom.js#L11 */ + /** for icon replacement use - zoomInLabel | zoomOutLabel */ zoom?: boolean | object; crosshair?: boolean; - /** @see (FullScreen options) https://github.com/openlayers/openlayers/blob/v6.2.1/src/ol/control/FullScreen.js#L13 */ + /** for icon replacement use - label | labelActive */ fullScreen?: boolean | object; - /** @see (MousePosition options) https://github.com/openlayers/openlayers/blob/v6.2.1/src/ol/control/MousePosition.js#L25 */ mousePosition?: boolean | object; - /** @see (OverviewMap options) https://github.com/openlayers/openlayers/blob/v6.2.1/src/ol/control/OverviewMap.js#L46 */ + /** for icon replacement use - label | collapseLabel */ overviewMap?: boolean | object; - /** @see (Rotate options) https://github.com/openlayers/openlayers/blob/v6.2.1/src/ol/control/Rotate.js#L11 */ + /** for icon replacement use - label */ rotate?: boolean | object; } @@ -605,13 +601,10 @@ export class MapOlComponent implements OnInit, AfterViewInit, AfterViewChecked, tempControls.push(fullScreen); } if (this.controls.overviewMap) { - const icon = document.createElement('spawn'); - icon.innerHTML = ''; let overviewMapOptions = { layers: [new olTileLayer({ source: new olOSM() - })], - label: icon + })] }; if (typeof this.controls.overviewMap === 'object') { overviewMapOptions = Object.assign(overviewMapOptions, this.controls.overviewMap); From 42a21b1085d3fa6462370064b96c1cc415c1429f Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 17:02:58 +0200 Subject: [PATCH 04/30] feat (ngx-ukis-utilities): new library for angular utilities #267 --- CHANGELOG.md | 5 + angular.json | 31 +++++ package.json | 3 +- projects/ngx-ukis-utilities/README.md | 63 ++++++++++ projects/ngx-ukis-utilities/karma.conf.js | 44 +++++++ projects/ngx-ukis-utilities/ng-package.json | 7 ++ projects/ngx-ukis-utilities/package.json | 25 ++++ .../dynamic-component.spec.ts | 23 ++++ .../dynamic-component/dynamic-component.ts | 118 ++++++++++++++++++ .../src/lib/ngx-ukis-utilities.spec.ts | 23 ++++ .../src/lib/ngx-ukis-utilities.ts | 15 +++ .../src/lib/pipes/array-reverse.pipe.ts | 17 +++ .../ngx-ukis-utilities/src/lib/pipes/index.ts | 2 + .../src/lib/pipes/obj-type.pipe.ts | 25 ++++ projects/ngx-ukis-utilities/src/public-api.ts | 7 ++ projects/ngx-ukis-utilities/src/test.ts | 15 +++ projects/ngx-ukis-utilities/tsconfig.lib.json | 16 +++ .../ngx-ukis-utilities/tsconfig.lib.prod.json | 11 ++ .../ngx-ukis-utilities/tsconfig.spec.json | 18 +++ 19 files changed, 467 insertions(+), 1 deletion(-) create mode 100644 projects/ngx-ukis-utilities/README.md create mode 100644 projects/ngx-ukis-utilities/karma.conf.js create mode 100644 projects/ngx-ukis-utilities/ng-package.json create mode 100644 projects/ngx-ukis-utilities/package.json create mode 100644 projects/ngx-ukis-utilities/src/lib/dynamic-component/dynamic-component.spec.ts create mode 100644 projects/ngx-ukis-utilities/src/lib/dynamic-component/dynamic-component.ts create mode 100644 projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.spec.ts create mode 100644 projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.ts create mode 100644 projects/ngx-ukis-utilities/src/lib/pipes/array-reverse.pipe.ts create mode 100644 projects/ngx-ukis-utilities/src/lib/pipes/index.ts create mode 100644 projects/ngx-ukis-utilities/src/lib/pipes/obj-type.pipe.ts create mode 100644 projects/ngx-ukis-utilities/src/public-api.ts create mode 100644 projects/ngx-ukis-utilities/src/test.ts create mode 100644 projects/ngx-ukis-utilities/tsconfig.lib.json create mode 100644 projects/ngx-ukis-utilities/tsconfig.lib.prod.json create mode 100644 projects/ngx-ukis-utilities/tsconfig.spec.json diff --git a/CHANGELOG.md b/CHANGELOG.md index f94fbd96a..53441a073 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,11 @@ ### Features - Remove `standalone: true` Angular directives, components and pipes are now standalone by default since version 19. + +* **@dlr-eoc/ngx-ukis-utilities:** +- New UKIS library for angular utilities was added. +- Export `DynamicComponent` which have been in `@dlr-eoc/core-ui` +- Export some pipes which have been in `@dlr-eoc/layer-control` * **@dlr-eoc/services-layers:** - Add `properties` attribute to Layer type diff --git a/angular.json b/angular.json index b90620936..61fdd0fae 100644 --- a/angular.json +++ b/angular.json @@ -790,6 +790,37 @@ } } } + }, + "ngx-ukis-utilities": { + "projectType": "library", + "root": "projects/ngx-ukis-utilities", + "sourceRoot": "projects/ngx-ukis-utilities/src", + "prefix": "ngx", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:ng-packagr", + "options": { + "project": "projects/utilities/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "projects/ngx-ukis-utilities/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "projects/ngx-ukis-utilities/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "projects/ngx-ukis-utilities/src/test.ts", + "tsConfig": "projects/ngx-ukis-utilities/tsconfig.spec.json", + "karmaConfig": "projects/ngx-ukis-utilities/karma.conf.js" + } + } + } } }, "schematics": { diff --git a/package.json b/package.json index 9dec14a6c..d276ccd29 100644 --- a/package.json +++ b/package.json @@ -136,7 +136,8 @@ "projects/shared-assets", "projects/map-cesium", "projects/utilities", - "projects/map-maplibre" + "projects/map-maplibre", + "projects/ngx-ukis-utilities" ], "engines": { "node": ">= 20.15.1", diff --git a/projects/ngx-ukis-utilities/README.md b/projects/ngx-ukis-utilities/README.md new file mode 100644 index 000000000..1b57ff6cb --- /dev/null +++ b/projects/ngx-ukis-utilities/README.md @@ -0,0 +1,63 @@ +# NgxUkisUtilities + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build ngx-ukis-utilities +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/ngx-ukis-utilities + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/projects/ngx-ukis-utilities/karma.conf.js b/projects/ngx-ukis-utilities/karma.conf.js new file mode 100644 index 000000000..429d62960 --- /dev/null +++ b/projects/ngx-ukis-utilities/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, '../../coverage/utilities'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/projects/ngx-ukis-utilities/ng-package.json b/projects/ngx-ukis-utilities/ng-package.json new file mode 100644 index 000000000..9af460285 --- /dev/null +++ b/projects/ngx-ukis-utilities/ng-package.json @@ -0,0 +1,7 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/ngx-ukis-utilities", + "lib": { + "entryFile": "src/public-api.ts" + } +} \ No newline at end of file diff --git a/projects/ngx-ukis-utilities/package.json b/projects/ngx-ukis-utilities/package.json new file mode 100644 index 000000000..271f0a01d --- /dev/null +++ b/projects/ngx-ukis-utilities/package.json @@ -0,0 +1,25 @@ +{ + "name": "@dlr-eoc/ngx-ukis-utilities", + "version": "16.0.0-next.0", + "description": "Angular utilities for @dlr-eoc ukis frontends", + "keywords": [ + "angular", + "utilities" + ], + "license": "Apache-2.0", + "author": "Team UKIS", + "type": "commonjs", + "main": "src/public-api", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "devDependencies": {}, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12" + }, + "sideEffects": false +} diff --git a/projects/ngx-ukis-utilities/src/lib/dynamic-component/dynamic-component.spec.ts b/projects/ngx-ukis-utilities/src/lib/dynamic-component/dynamic-component.spec.ts new file mode 100644 index 000000000..3ec19d450 --- /dev/null +++ b/projects/ngx-ukis-utilities/src/lib/dynamic-component/dynamic-component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DynamicComponent } from './dynamic-component'; + +describe('DynamicComponent', () => { + let component: DynamicComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [DynamicComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(DynamicComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); \ No newline at end of file diff --git a/projects/ngx-ukis-utilities/src/lib/dynamic-component/dynamic-component.ts b/projects/ngx-ukis-utilities/src/lib/dynamic-component/dynamic-component.ts new file mode 100644 index 000000000..91401190d --- /dev/null +++ b/projects/ngx-ukis-utilities/src/lib/dynamic-component/dynamic-component.ts @@ -0,0 +1,118 @@ +import { + Component, OnInit, ViewChild, ComponentRef, OnDestroy, Input, SimpleChanges, OnChanges, + EventEmitter, Directive, ViewContainerRef, Type, Output +} from '@angular/core'; +import { Subscription } from 'rxjs'; + +export interface IDynamicComponent { + component: Type; + inputs?: { [input: string]: any }; + outputs?: { [inputChange: string]: (value: any) => void }; +} + +@Directive({ + selector: '[ukisAddHost]' +}) +export class ViewRefDirective { + constructor(public viewContainerRef: ViewContainerRef) { } +} + +@Component({ + selector: 'ngx-ukis-dynamic-component', + template: ``, + imports: [ViewRefDirective] +}) +export class DynamicComponent implements OnInit, OnDestroy, OnChanges { + @Input() dynamicComponent!: IDynamicComponent; + @Output() dynamicComponentChange = new EventEmitter(); + @ViewChild(ViewRefDirective, { static: true }) ukisAddHost!: ViewRefDirective; + + componentRef!: ComponentRef; + viewContainerRef!: ViewContainerRef; + subs: Subscription[] = []; + constructor() { } + + // TODO: check if this can be enhanced https://angular.dev/api/core/createComponent#createComponent_0 + loadComponent() { + if (this.dynamicComponent) { + this.viewContainerRef = this.ukisAddHost.viewContainerRef; + this.viewContainerRef.clear(); + this.componentRef = this.viewContainerRef.createComponent(this.dynamicComponent.component); + this.setInputOutputs(); + } + } + + /** + * Set's the inputs defined in IDynamicComponent + * + * To subscribe to the outputs of the IDynamicComponent.component use 'Change' as output name in your component. + * e.g. + * @Input() set value()... + * get value()... + * @Output() valueChange = new EventEmitter(); + * + * + * To reset the Inputs after ngOnInit, change to Object binding for the input 'dynamicComponent' in the parent which creates the dynamic component. + * e.g. + * this.Comp.inputs.test = 'value'; + * CustomLayer.action = this.Comp = Object.assign({}, this.Comp); + */ + setInputOutputs() { + if (this.componentRef && this.dynamicComponent.inputs) { + const inputs = Object.keys(this.dynamicComponent.inputs); + inputs.map(i => { + const inputname = i; + if (this.dynamicComponent.inputs) { + this.componentRef.instance[inputname] = this.dynamicComponent.inputs[inputname]; + const outupName = `${inputname}Change`; + /** subscribe to output for same name as input */ + if (this.componentRef.instance[outupName] && this.componentRef.instance[outupName] instanceof EventEmitter) { + const sub = this.componentRef.instance[outupName].subscribe((val: any) => { + if (this.dynamicComponent.inputs) { + this.dynamicComponent.inputs[inputname] = val; + /** if outputs are defined on IDynamicComponent pass the value to there functions */ + } + if (this.dynamicComponent.outputs) { + if (this.dynamicComponent.outputs[outupName]) { + this.dynamicComponent.outputs[outupName](val); + } + } + this.dynamicComponentChange.emit(this.dynamicComponent); + }); + this.subs.push(sub); + } + } + }); + } + } + + ngOnChanges(changes: SimpleChanges) { + if (changes.dynamicComponent) { + if (Array.isArray(this.subs)) { + this.subs.map(s => s.unsubscribe()); + } + // unsub befor new sub on changes + this.subs.map(s => s.unsubscribe()); + this.subs = []; + this.setInputOutputs(); + } + } + + + ngOnInit(): void { + this.loadComponent(); + } + + ngOnDestroy(): void { + if (this.componentRef) { + this.subs.map(s => s.unsubscribe()); + this.componentRef.destroy(); + this.componentRef = null as any; + } + if (this.viewContainerRef) { + this.viewContainerRef.clear(); + this.viewContainerRef = null as any; + } + } +} + diff --git a/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.spec.ts b/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.spec.ts new file mode 100644 index 000000000..bf6c458e3 --- /dev/null +++ b/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NgxUkisUtilities } from './ngx-ukis-utilities'; + +describe('NgxUkisUtilities', () => { + let component: NgxUkisUtilities; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [NgxUkisUtilities] + }) + .compileComponents(); + + fixture = TestBed.createComponent(NgxUkisUtilities); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.ts b/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.ts new file mode 100644 index 000000000..267bd3d64 --- /dev/null +++ b/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.ts @@ -0,0 +1,15 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-ngx-ukis-utilities', + imports: [], + template: ` +

+ ngx-ukis-utilities works! +

+ `, + styles: `` +}) +export class NgxUkisUtilities { + +} diff --git a/projects/ngx-ukis-utilities/src/lib/pipes/array-reverse.pipe.ts b/projects/ngx-ukis-utilities/src/lib/pipes/array-reverse.pipe.ts new file mode 100644 index 000000000..c81a97f20 --- /dev/null +++ b/projects/ngx-ukis-utilities/src/lib/pipes/array-reverse.pipe.ts @@ -0,0 +1,17 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'reverse', + pure: false +}) +export class ReversePipe implements PipeTransform { + transform(input: any): any { + if (typeof input === 'string') { + return input + .split('') + .reverse() + .join(''); + } + return Array.isArray(input) ? input.slice().reverse() : input; + } +} diff --git a/projects/ngx-ukis-utilities/src/lib/pipes/index.ts b/projects/ngx-ukis-utilities/src/lib/pipes/index.ts new file mode 100644 index 000000000..5e6a2739e --- /dev/null +++ b/projects/ngx-ukis-utilities/src/lib/pipes/index.ts @@ -0,0 +1,2 @@ +export * from './array-reverse.pipe'; +export * from './obj-type.pipe'; \ No newline at end of file diff --git a/projects/ngx-ukis-utilities/src/lib/pipes/obj-type.pipe.ts b/projects/ngx-ukis-utilities/src/lib/pipes/obj-type.pipe.ts new file mode 100644 index 000000000..b827c8709 --- /dev/null +++ b/projects/ngx-ukis-utilities/src/lib/pipes/obj-type.pipe.ts @@ -0,0 +1,25 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'type', pure: false +}) +export class ObjTypePipe implements PipeTransform { + transform(observations: any[], type: string): any[] { + /* TODO: check layerlist for purity console.log("reevaluated"); */ + return observations.filter((o) => o.type === type); + } +} + +/** + * e.g. usage @for(item of items | itemsfilter: callbackfn) + */ +@Pipe({ + name: 'itemsfilter', pure: false +}) +export class ItemsFilterPipe implements PipeTransform { + transform(items: any[], callbackfn?: (value: any, index: number, array: any[]) => boolean): any[] { + /* TODO: check layerlist for purity console.log("reevaluated"); */ + return items.filter(callbackfn); + } +} + diff --git a/projects/ngx-ukis-utilities/src/public-api.ts b/projects/ngx-ukis-utilities/src/public-api.ts new file mode 100644 index 000000000..51a66fffa --- /dev/null +++ b/projects/ngx-ukis-utilities/src/public-api.ts @@ -0,0 +1,7 @@ +/* + * Public API Surface of ngx-ukis-utilities + */ + +export * from './lib/ngx-ukis-utilities'; +export * from './lib/pipes'; +export * from './lib/dynamic-component/dynamic-component'; diff --git a/projects/ngx-ukis-utilities/src/test.ts b/projects/ngx-ukis-utilities/src/test.ts new file mode 100644 index 000000000..438083679 --- /dev/null +++ b/projects/ngx-ukis-utilities/src/test.ts @@ -0,0 +1,15 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js'; +import 'zone.js/testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting(), +); diff --git a/projects/ngx-ukis-utilities/tsconfig.lib.json b/projects/ngx-ukis-utilities/tsconfig.lib.json new file mode 100644 index 000000000..3879b4cd0 --- /dev/null +++ b/projects/ngx-ukis-utilities/tsconfig.lib.json @@ -0,0 +1,16 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [] + }, + "exclude": [ + "src/test.ts", + "**/*.spec.ts" + ] +} diff --git a/projects/ngx-ukis-utilities/tsconfig.lib.prod.json b/projects/ngx-ukis-utilities/tsconfig.lib.prod.json new file mode 100644 index 000000000..9215caac4 --- /dev/null +++ b/projects/ngx-ukis-utilities/tsconfig.lib.prod.json @@ -0,0 +1,11 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} diff --git a/projects/ngx-ukis-utilities/tsconfig.spec.json b/projects/ngx-ukis-utilities/tsconfig.spec.json new file mode 100644 index 000000000..0d10fb5a5 --- /dev/null +++ b/projects/ngx-ukis-utilities/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} From 5c09ab865077a222cd1988e263128c24587a232f Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 17:06:38 +0200 Subject: [PATCH 05/30] BREAKING CHANGE: remove DynamicComponent from core-ui #267 --- CHANGELOG.md | 4 + .../dynamic-component.component.spec.ts | 25 ---- .../dynamic-component.component.ts | 118 ------------------ projects/core-ui/src/public-api.ts | 1 - 4 files changed, 4 insertions(+), 144 deletions(-) delete mode 100644 projects/core-ui/src/lib/dynamic-component/dynamic-component.component.spec.ts delete mode 100644 projects/core-ui/src/lib/dynamic-component/dynamic-component.component.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 53441a073..ab259afc2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ - Update three.js from `^0.137.5` to `^0.176.0` see [three releases](https://github.com/mrdoob/three.js/releases) for all changes. - Update [@cesium/engine](https://github.com/CesiumGS/cesium/tree/main/packages/engine) from `^10.1.0` to `^17.0.0` and [@cesium/widgets](https://github.com/CesiumGS/cesium/tree/main/packages/widgets) from `^7.1.0` to `^12.0.0` (cesium from `1.120` to `1.129`) see [cesium changelog](https://github.com/CesiumGS/cesium/blob/1.129/CHANGES.md) for all changes. + * **@dlr-eoc/core-ui:** + - Removed `DynamicComponent` and moved it to new library `@dlr-eoc/ngx-ukis-utilities` [Issue #267](https://github.com/dlr-eoc/ukis-frontend-libraries/issues/267). + + ### Bug Fixes * **@dlr-eoc/services-ogc:** * **@dlr-eoc/utils-ogc:** diff --git a/projects/core-ui/src/lib/dynamic-component/dynamic-component.component.spec.ts b/projects/core-ui/src/lib/dynamic-component/dynamic-component.component.spec.ts deleted file mode 100644 index 3a714420c..000000000 --- a/projects/core-ui/src/lib/dynamic-component/dynamic-component.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { DynamicComponentComponent } from './dynamic-component.component'; - -describe('DynamicComponentComponent', () => { - let component: DynamicComponentComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [DynamicComponentComponent] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(DynamicComponentComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/core-ui/src/lib/dynamic-component/dynamic-component.component.ts b/projects/core-ui/src/lib/dynamic-component/dynamic-component.component.ts deleted file mode 100644 index af001b7b0..000000000 --- a/projects/core-ui/src/lib/dynamic-component/dynamic-component.component.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { - Component, OnInit, ViewChild, ComponentRef, OnDestroy, Input, SimpleChanges, OnChanges, - EventEmitter, Directive, ViewContainerRef, Type, Output -} from '@angular/core'; -import { Subscription } from 'rxjs'; - - -export interface IDynamicComponent { - component: Type; - inputs?: { [input: string]: any }; - outputs?: { [inputChange: string]: (value: any) => void }; -} - -@Directive({ - selector: '[ukisAddHost]' -}) -export class ViewRefDirective { - constructor(public viewContainerRef: ViewContainerRef) { } -} - -@Component({ - selector: 'ukis-dynamic-component', - template: ``, - imports: [ViewRefDirective] -}) -export class DynamicComponentComponent implements OnInit, OnDestroy, OnChanges { - @Input() dynamicComponent!: IDynamicComponent; - @Output() dynamicComponentChange = new EventEmitter(); - @ViewChild(ViewRefDirective, { static: true }) ukisAddHost!: ViewRefDirective; - - componentRef!: ComponentRef; - viewContainerRef!: ViewContainerRef; - subs: Subscription[] = []; - constructor() { } - - // TODO: check if this can be enhanced https://angular.dev/api/core/createComponent#createComponent_0 - loadComponent() { - if (this.dynamicComponent) { - this.viewContainerRef = this.ukisAddHost.viewContainerRef; - this.viewContainerRef.clear(); - this.componentRef = this.viewContainerRef.createComponent(this.dynamicComponent.component); - this.setInputOutputs(); - } - } - - /** - * Set's the inputs defined in IDynamicComponent - * - * To subscribe to the outputs of the IDynamicComponent.component use 'Change' as output name in your component. - * e.g. - * @Input() set value()... - * get value()... - * @Output() valueChange = new EventEmitter(); - * - * - * To reset the Inputs after ngOnInit, change to Object binding for the input 'dynamicComponent' in the parent which creates the dynamic component. - * e.g. - * this.Comp.inputs.test = 'value'; - * CustomLayer.action = this.Comp = Object.assign({}, this.Comp); - */ - setInputOutputs() { - if (this.componentRef && this.dynamicComponent.inputs) { - const inputs = Object.keys(this.dynamicComponent.inputs); - inputs.map(i => { - const inputname = i; - if (this.dynamicComponent.inputs) { - this.componentRef.instance[inputname] = this.dynamicComponent.inputs[inputname]; - const outupName = `${inputname}Change`; - /** subscribe to output for same name as input */ - if (this.componentRef.instance[outupName] && this.componentRef.instance[outupName] instanceof EventEmitter) { - const sub = this.componentRef.instance[outupName].subscribe((val: any) => { - if (this.dynamicComponent.inputs) { - this.dynamicComponent.inputs[inputname] = val; - /** if outputs are defined on IDynamicComponent pass the value to there functions */ - } - if (this.dynamicComponent.outputs) { - if (this.dynamicComponent.outputs[outupName]) { - this.dynamicComponent.outputs[outupName](val); - } - } - this.dynamicComponentChange.emit(this.dynamicComponent); - }); - this.subs.push(sub); - } - } - }); - } - } - - ngOnChanges(changes: SimpleChanges) { - if (changes.dynamicComponent) { - if (Array.isArray(this.subs)) { - this.subs.map(s => s.unsubscribe()); - } - // unsub befor new sub on changes - this.subs.map(s => s.unsubscribe()); - this.subs = []; - this.setInputOutputs(); - } - } - - - ngOnInit(): void { - this.loadComponent(); - } - - ngOnDestroy(): void { - if (this.componentRef) { - this.subs.map(s => s.unsubscribe()); - this.componentRef.destroy(); - this.componentRef = null as any; - } - if (this.viewContainerRef) { - this.viewContainerRef.clear(); - this.viewContainerRef = null as any; - } - } -} diff --git a/projects/core-ui/src/public-api.ts b/projects/core-ui/src/public-api.ts index 92ff1445a..cc210fefc 100644 --- a/projects/core-ui/src/public-api.ts +++ b/projects/core-ui/src/public-api.ts @@ -8,4 +8,3 @@ export * from './lib/global-alert/global-alert.component'; export * from './lib/global-alert/alert.service'; export * from './lib/header/header.component'; export * from './lib/icons/ukis'; -export * from './lib/dynamic-component/dynamic-component.component'; From c23d26948a3eae2fa078bb5f6f87d65af7e34b8e Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 17:11:06 +0200 Subject: [PATCH 06/30] BREAKING CHANGE: remove exported pipes from layer-control #267 --- CHANGELOG.md | 2 ++ .../src/lib/utils/array-reverse.pipe.ts | 17 ------------- .../src/lib/utils/obj-type.pipe.ts | 25 ------------------- projects/layer-control/src/public-api.ts | 2 -- 4 files changed, 2 insertions(+), 44 deletions(-) delete mode 100644 projects/layer-control/src/lib/utils/array-reverse.pipe.ts delete mode 100644 projects/layer-control/src/lib/utils/obj-type.pipe.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index ab259afc2..9253743ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ * **@dlr-eoc/core-ui:** - Removed `DynamicComponent` and moved it to new library `@dlr-eoc/ngx-ukis-utilities` [Issue #267](https://github.com/dlr-eoc/ukis-frontend-libraries/issues/267). + * **@dlr-eoc/layer-control:** + - Removed `pipes` and moved it to new library `@dlr-eoc/ngx-ukis-utilities` [Issue #267](https://github.com/dlr-eoc/ukis-frontend-libraries/issues/267). ### Bug Fixes * **@dlr-eoc/services-ogc:** diff --git a/projects/layer-control/src/lib/utils/array-reverse.pipe.ts b/projects/layer-control/src/lib/utils/array-reverse.pipe.ts deleted file mode 100644 index c81a97f20..000000000 --- a/projects/layer-control/src/lib/utils/array-reverse.pipe.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Pipe, PipeTransform } from '@angular/core'; - -@Pipe({ - name: 'reverse', - pure: false -}) -export class ReversePipe implements PipeTransform { - transform(input: any): any { - if (typeof input === 'string') { - return input - .split('') - .reverse() - .join(''); - } - return Array.isArray(input) ? input.slice().reverse() : input; - } -} diff --git a/projects/layer-control/src/lib/utils/obj-type.pipe.ts b/projects/layer-control/src/lib/utils/obj-type.pipe.ts deleted file mode 100644 index b827c8709..000000000 --- a/projects/layer-control/src/lib/utils/obj-type.pipe.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Pipe, PipeTransform } from '@angular/core'; - -@Pipe({ - name: 'type', pure: false -}) -export class ObjTypePipe implements PipeTransform { - transform(observations: any[], type: string): any[] { - /* TODO: check layerlist for purity console.log("reevaluated"); */ - return observations.filter((o) => o.type === type); - } -} - -/** - * e.g. usage @for(item of items | itemsfilter: callbackfn) - */ -@Pipe({ - name: 'itemsfilter', pure: false -}) -export class ItemsFilterPipe implements PipeTransform { - transform(items: any[], callbackfn?: (value: any, index: number, array: any[]) => boolean): any[] { - /* TODO: check layerlist for purity console.log("reevaluated"); */ - return items.filter(callbackfn); - } -} - diff --git a/projects/layer-control/src/public-api.ts b/projects/layer-control/src/public-api.ts index ea716e275..9a08d6d86 100644 --- a/projects/layer-control/src/public-api.ts +++ b/projects/layer-control/src/public-api.ts @@ -4,7 +4,5 @@ export * from './lib/layer-control/layer-control.component'; export * from './lib/base-layer-control/base-layer-control.component'; -export * from './lib/utils/obj-type.pipe'; -export * from './lib/utils/array-reverse.pipe'; export * from './lib/layerentry/layerentry.component'; export * from './lib/layerentry-group/layerentry-group.component'; From b3132d0324a0aeb54af68808cd48f7ea9f7277db Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 17:14:09 +0200 Subject: [PATCH 07/30] refactor: replace things from core-ui with ngx-ukis-utilities #267 --- projects/layer-control/ng-package.json | 2 +- projects/layer-control/package.json | 2 +- .../base-layer-control.component.spec.ts | 2 +- .../base-layer-control/base-layer-control.component.ts | 2 +- .../src/lib/layer-control/layer-control.component.spec.ts | 4 +--- .../src/lib/layer-control/layer-control.component.ts | 3 +-- .../lib/layerentry-group/layerentry-group.component.html | 8 ++++---- .../layerentry-group/layerentry-group.component.spec.ts | 3 +-- .../lib/layerentry-group/layerentry-group.component.ts | 6 ++---- .../src/lib/layerentry/layerentry.component.html | 8 ++++---- .../src/lib/layerentry/layerentry.component.ts | 4 ++-- 11 files changed, 19 insertions(+), 25 deletions(-) diff --git a/projects/layer-control/ng-package.json b/projects/layer-control/ng-package.json index c78c9c3ba..97e2afe2d 100644 --- a/projects/layer-control/ng-package.json +++ b/projects/layer-control/ng-package.json @@ -8,7 +8,7 @@ "tslib", "@dlr-eoc/services-layers", "@dlr-eoc/services-map-state", - "@dlr-eoc/core-ui", + "@dlr-eoc/ngx-ukis-utilities", "@angular/cdk" ] } diff --git a/projects/layer-control/package.json b/projects/layer-control/package.json index 9dcdc9a45..496faa8dd 100644 --- a/projects/layer-control/package.json +++ b/projects/layer-control/package.json @@ -26,7 +26,7 @@ "dependencies": { "@dlr-eoc/services-layers": "16.0.0-next.0", "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/core-ui": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", "@angular/cdk": "^19.2.12", "tslib": "^2.6.3" }, diff --git a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.spec.ts b/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.spec.ts index d3bf56e0d..456e720aa 100644 --- a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.spec.ts +++ b/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.spec.ts @@ -1,7 +1,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { BaseLayerControlComponent } from './base-layer-control.component'; -import { ReversePipe } from '../utils/array-reverse.pipe'; +import { ReversePipe } from '@dlr-eoc/ngx-ukis-utilities'; import { LayersService } from '@dlr-eoc/services-layers'; diff --git a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.ts b/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.ts index dc60faf02..b2ed2e2ed 100644 --- a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.ts +++ b/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.ts @@ -7,7 +7,7 @@ import { Subscription } from 'rxjs'; import { LayerentryGroupComponent } from '../layerentry-group/layerentry-group.component'; import { LayerentryComponent } from '../layerentry/layerentry.component'; -import { ReversePipe } from '../utils/array-reverse.pipe'; +import { ReversePipe } from '@dlr-eoc/ngx-ukis-utilities'; @Component({ selector: 'ukis-base-layer-control', diff --git a/projects/layer-control/src/lib/layer-control/layer-control.component.spec.ts b/projects/layer-control/src/lib/layer-control/layer-control.component.spec.ts index 8f275e4f5..843988785 100644 --- a/projects/layer-control/src/lib/layer-control/layer-control.component.spec.ts +++ b/projects/layer-control/src/lib/layer-control/layer-control.component.spec.ts @@ -7,11 +7,9 @@ import { LayerentryComponent } from '../layerentry/layerentry.component'; import { ClarityModule } from '@clr/angular'; import { FormsModule } from '@angular/forms'; -// import { Layer, LayerGroup } from '@dlr-eoc/services-layers'; -import { ObjTypePipe, ItemsFilterPipe } from '../utils/obj-type.pipe'; import { LayersService } from '@dlr-eoc/services-layers'; import { MapStateService } from '@dlr-eoc/services-map-state'; -import { ReversePipe } from '../utils/array-reverse.pipe'; +import { ReversePipe, ObjTypePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; import { DragDropModule } from '@angular/cdk/drag-drop'; describe('LayerControlComponent', () => { diff --git a/projects/layer-control/src/lib/layer-control/layer-control.component.ts b/projects/layer-control/src/lib/layer-control/layer-control.component.ts index 20b5c6777..6b237373c 100644 --- a/projects/layer-control/src/lib/layer-control/layer-control.component.ts +++ b/projects/layer-control/src/lib/layer-control/layer-control.component.ts @@ -9,8 +9,7 @@ import { CdkDragDrop, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/d import { LayerentryGroupComponent } from '../layerentry-group/layerentry-group.component'; import { LayerentryComponent } from '../layerentry/layerentry.component'; -import { ItemsFilterPipe } from '../utils/obj-type.pipe'; -import { ReversePipe } from '../utils/array-reverse.pipe'; +import { ReversePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; @Component({ selector: 'ukis-layer-control', diff --git a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.html b/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.html index 3f739dcae..07b48a395 100644 --- a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.html +++ b/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.html @@ -78,7 +78,7 @@ @if (group.description && activeTabs.description) {
@if (checkIsComponentItem(group,'description')) { - + } @else { } @@ -88,8 +88,8 @@ @if (group.action && activeTabs.settings) {
@if (checkIsComponentItem(group, 'action');) { - - + + }
} @@ -97,7 +97,7 @@ @if (group.legendImg && activeTabs.legend) {
@if (checkIsComponentItem(group,'legendImg')) { - + } @else { } diff --git a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.spec.ts b/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.spec.ts index 10ef74801..8eddaa30e 100644 --- a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.spec.ts +++ b/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.spec.ts @@ -7,9 +7,8 @@ import { ClarityModule } from '@clr/angular'; import { FormsModule } from '@angular/forms'; import { Layer, LayerGroup, LayersService } from '@dlr-eoc/services-layers'; -import { ReversePipe } from '../utils/array-reverse.pipe'; import { MapStateService } from '@dlr-eoc/services-map-state'; -import { ItemsFilterPipe } from '../utils/obj-type.pipe'; +import { ReversePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; import { DragDropModule } from '@angular/cdk/drag-drop'; describe('LayerentryGroupComponent', () => { diff --git a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.ts b/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.ts index 29bd877c9..668242e30 100644 --- a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.ts +++ b/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.ts @@ -6,14 +6,12 @@ import { LayerGroup, Layer } from '@dlr-eoc/services-layers'; import { MapStateService } from '@dlr-eoc/services-map-state'; import { LayersService } from '@dlr-eoc/services-layers'; import { CdkDragDrop, moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop'; -import { IDynamicComponent, DynamicComponentComponent } from '@dlr-eoc/core-ui'; +import { IDynamicComponent, DynamicComponent, ReversePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; import { ClarityIcons, folderIcon, folderOpenIcon, arrowIcon, eyeIcon, eyeHideIcon, cogIcon, imageIcon, infoStandardIcon, detailsIcon, zoomInIcon, trashIcon } from '@cds/core/icon'; import { ClrIconModule, ClrCommonFormsModule } from '@clr/angular'; import { NgClass } from '@angular/common'; import { LayerentryComponent } from '../layerentry/layerentry.component'; -import { ItemsFilterPipe } from '../utils/obj-type.pipe'; -import { ReversePipe } from '../utils/array-reverse.pipe'; ClarityIcons.addIcons(...[folderIcon, folderOpenIcon, arrowIcon, eyeIcon, eyeHideIcon, cogIcon, imageIcon, infoStandardIcon, detailsIcon, zoomInIcon, trashIcon]); @@ -28,7 +26,7 @@ type TactiveTabs = keyof typeof EactiveTabs; selector: 'ukis-layerentry-group', templateUrl: './layerentry-group.component.html', styleUrls: ['./layerentry-group.component.scss'], - imports: [ClrIconModule, NgClass, ClrCommonFormsModule, CdkDropList, CdkDrag, LayerentryComponent, CdkDragHandle, ItemsFilterPipe, ReversePipe, DynamicComponentComponent] + imports: [ClrIconModule, NgClass, ClrCommonFormsModule, CdkDropList, CdkDrag, LayerentryComponent, CdkDragHandle, ItemsFilterPipe, ReversePipe, DynamicComponent] }) export class LayerentryGroupComponent implements OnInit { @HostBinding('class.group-visible') get visible() { return this.group.visible; } diff --git a/projects/layer-control/src/lib/layerentry/layerentry.component.html b/projects/layer-control/src/lib/layerentry/layerentry.component.html index ad776b286..9b4063fe6 100644 --- a/projects/layer-control/src/lib/layerentry/layerentry.component.html +++ b/projects/layer-control/src/lib/layerentry/layerentry.component.html @@ -104,8 +104,8 @@ } @if (checkIsComponentItem(layer, 'action');) { - - + + }
} @@ -113,7 +113,7 @@ @if (activeTabs.legend && layer.legendImg) {
@if (checkIsComponentItem(layer,'legendImg')) { - + } @else { } @@ -123,7 +123,7 @@ @if (activeTabs.description && layer.description) {
@if (checkIsComponentItem(layer,'description')) { - + } @else { } diff --git a/projects/layer-control/src/lib/layerentry/layerentry.component.ts b/projects/layer-control/src/lib/layerentry/layerentry.component.ts index 67f38204b..2af0862b5 100644 --- a/projects/layer-control/src/lib/layerentry/layerentry.component.ts +++ b/projects/layer-control/src/lib/layerentry/layerentry.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Input, Output, EventEmitter, HostBinding } from '@angular/core'; -import { IDynamicComponent, DynamicComponentComponent } from '@dlr-eoc/core-ui'; +import { IDynamicComponent, DynamicComponent } from '@dlr-eoc/ngx-ukis-utilities'; // imports only for typings... import { @@ -24,7 +24,7 @@ type TactiveTabs = keyof typeof EactiveTabs; selector: 'ukis-layerentry', templateUrl: './layerentry.component.html', styleUrls: ['./layerentry.component.scss'], - imports: [NgClass, ClrIconModule, NgStyle, ClrCommonFormsModule, ClrRangeModule, FormsModule, ClrSelectModule, DynamicComponentComponent] + imports: [NgClass, ClrIconModule, NgStyle, ClrCommonFormsModule, ClrRangeModule, FormsModule, ClrSelectModule, DynamicComponent] }) export class LayerentryComponent implements OnInit { @HostBinding('class.layer-visible') get visible() { return this.layer.visible; } From ebe34ceb23987e69ef19e641f2e2cfaa10c953fc Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 17:15:17 +0200 Subject: [PATCH 08/30] refactor (services-layers): replace things from core-ui with ngx-ukis-utilities #267 --- projects/services-layers/package.json | 2 +- .../services-layers/src/lib/types/LayerGroup.ts | 2 +- projects/services-layers/src/lib/types/Layers.ts | 14 +++++--------- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/projects/services-layers/package.json b/projects/services-layers/package.json index bb211d6c5..e4d23b7f5 100644 --- a/projects/services-layers/package.json +++ b/projects/services-layers/package.json @@ -20,7 +20,7 @@ "devDependencies": { "zone.js": "~0.15.0", "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/core-ui": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", "@dlr-eoc/shared-assets": "16.0.0-next.0" }, "dependencies": { diff --git a/projects/services-layers/src/lib/types/LayerGroup.ts b/projects/services-layers/src/lib/types/LayerGroup.ts index d720bf3dc..6261e0329 100644 --- a/projects/services-layers/src/lib/types/LayerGroup.ts +++ b/projects/services-layers/src/lib/types/LayerGroup.ts @@ -1,5 +1,5 @@ import { Layer, TGeoExtent, TFiltertypes, ILayerExpanded } from './Layers'; -import { IDynamicComponent } from '@dlr-eoc/core-ui'; +import { IDynamicComponent } from '@dlr-eoc/ngx-ukis-utilities'; /** * LayerGroups diff --git a/projects/services-layers/src/lib/types/Layers.ts b/projects/services-layers/src/lib/types/Layers.ts index bf83c97ad..7a50771d4 100644 --- a/projects/services-layers/src/lib/types/Layers.ts +++ b/projects/services-layers/src/lib/types/Layers.ts @@ -1,18 +1,10 @@ import { Type } from '@angular/core'; +import { IDynamicComponent } from '@dlr-eoc/ngx-ukis-utilities'; export interface IAnyObject { [k: string]: any; } -/** - * When using dynamic components for layers you should keep in mind to handle the state (with a service or object binding) if needed, - * because `legendIng` or `action` are placed inside `@if` directives in the template and are destroyed when they are hidden. - */ -interface IDynamicComponent { - component: Type; - inputs?: { [input: string]: any }; - outputs?: { [inputChange: string]: (value) => void }; -} export interface ILayerContent extends IAnyObject { /** MIME type of the Content */ @@ -160,6 +152,10 @@ export interface ILayerExpanded { expanded?: boolean; } +/** + * When using dynamic components for layers you should keep in mind to handle the state (with a service or object binding) if needed, + * because `legendImg` or `action` are placed inside `@if` directives in the template and are destroyed when they are hidden. + */ export interface ILayerOptions { name: string; id: string; From d35bda7be3e7cc8884a30d729c7c4d7bb739fa68 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 17:16:43 +0200 Subject: [PATCH 09/30] docs: add missing change for map-ol #267 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9253743ae..d7f8cd7a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,10 @@ - New UKIS library for angular utilities was added. - Export `DynamicComponent` which have been in `@dlr-eoc/core-ui` - Export some pipes which have been in `@dlr-eoc/layer-control` + +* **@dlr-eoc/map-ol:** +- Remove dependency on @cds/core [Issue #267](https://github.com/dlr-eoc/ukis-frontend-libraries/issues/267). + * **@dlr-eoc/services-layers:** - Add `properties` attribute to Layer type From b70ad4d262fc9ecb7f281b75d35163a6de5889a7 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 17:28:25 +0200 Subject: [PATCH 10/30] ci: use map-ol to check for npm tag not core-ui #267 --- .github/actions/check-tag-on-npm/action.yml | 2 +- .github/actions/check-tag-on-npm/index.sh | 2 +- .github/workflows/package-main-release.yml | 4 ++-- .github/workflows/package-pre-release.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/actions/check-tag-on-npm/action.yml b/.github/actions/check-tag-on-npm/action.yml index a618866bc..486f9daee 100644 --- a/.github/actions/check-tag-on-npm/action.yml +++ b/.github/actions/check-tag-on-npm/action.yml @@ -4,7 +4,7 @@ inputs: npmPackageName: # id of input description: "The npm package to get the latest version from the npm registry." required: false - default: "@dlr-eoc/core-ui" + default: "@dlr-eoc/map-ol" npmPackageTags: description: "A List of tags. Use this instead of npmPackageName if you can't get the tags from the package." required: false diff --git a/.github/actions/check-tag-on-npm/index.sh b/.github/actions/check-tag-on-npm/index.sh index 11fbbfe16..f9dee4dbd 100755 --- a/.github/actions/check-tag-on-npm/index.sh +++ b/.github/actions/check-tag-on-npm/index.sh @@ -5,7 +5,7 @@ # chmod +x index.sh or git update-index --chmod=+x index.sh -#NPM_PACKAGE_NAME=@dlr-eoc/core-ui +#NPM_PACKAGE_NAME=@dlr-eoc/map-ol #PACKAGE_PATH="./package.json" #TAG="v7.3.1" #NPM_PACKAGE_TAGS="v0.4.0-next.1 , v0.4.0-next.2 , v0.9.0, v1.0.0, v1.0.1, v1.0.2, v1.0.3" diff --git a/.github/workflows/package-main-release.yml b/.github/workflows/package-main-release.yml index bd3f0166d..213524045 100644 --- a/.github/workflows/package-main-release.yml +++ b/.github/workflows/package-main-release.yml @@ -55,7 +55,7 @@ jobs: outputs: VERSION_TAG: ${{ steps.get-tag.outputs.result }} - # check if the tag is already published - uses @dlr-eoc/core-ui for test + # check if the tag is already published - uses @dlr-eoc/map-ol for test checkTagOnNpm: runs-on: ubuntu-latest needs: checkTitelTag @@ -72,7 +72,7 @@ jobs: - run: rm -f .npmrc - uses: ./.github/actions/check-tag-on-npm with: - npmPackageName: "@dlr-eoc/core-ui" + npmPackageName: "@dlr-eoc/map-ol" tag: ${{ needs.checkTitelTag.outputs.VERSION_TAG }} # check out the tag, build packages and store them as artifacts diff --git a/.github/workflows/package-pre-release.yml b/.github/workflows/package-pre-release.yml index ea6dfaead..721a71a99 100644 --- a/.github/workflows/package-pre-release.yml +++ b/.github/workflows/package-pre-release.yml @@ -20,7 +20,7 @@ jobs: - run: rm -f .npmrc - uses: ./.github/actions/check-tag-on-npm with: - npmPackageName: "@dlr-eoc/core-ui" + npmPackageName: "@dlr-eoc/map-ol" tag: "${{ github.ref }}" # create Release on tag push https://github.com/softprops/action-gh-release From 0812637376ef24b3eed9eb2a602d9bd99b7d95f7 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 17:30:01 +0200 Subject: [PATCH 11/30] docs: remove core-ui from readme --- projects/base-layers-raster/README.md | 2 +- projects/cookie-alert/README.md | 2 +- projects/demo-auth/src/app/components/header/README.md | 2 +- projects/layer-control/README.md | 2 +- projects/map-cesium/README.md | 2 +- projects/map-maplibre/README.md | 2 +- projects/map-ol/README.md | 2 +- projects/map-tools/README.md | 2 +- projects/services-layers/README.md | 2 +- projects/services-map-state/README.md | 2 +- projects/services-util-store/README.md | 2 +- projects/user-info/README.md | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/projects/base-layers-raster/README.md b/projects/base-layers-raster/README.md index 1fa3a8aaf..03b03e360 100644 --- a/projects/base-layers-raster/README.md +++ b/projects/base-layers-raster/README.md @@ -2,7 +2,7 @@ This project includes a few often used layers in ukis mapping applications e.g. eoc_litemap, osm, ... -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project For examples [see demo maps](../demo-maps/README.md) diff --git a/projects/cookie-alert/README.md b/projects/cookie-alert/README.md index 010f8bdfc..3f1bb8bcf 100644 --- a/projects/cookie-alert/README.md +++ b/projects/cookie-alert/README.md @@ -3,7 +3,7 @@ This project contains a component that displays a pop-up for the use of cookies on your website. Agreement is stored in the localStorage of your browser with the key *cookie-agree-${host}* -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project For a example [see demo auth](../demo-auth/README.md) diff --git a/projects/demo-auth/src/app/components/header/README.md b/projects/demo-auth/src/app/components/header/README.md index fb6a0cd19..27c34cbbb 100644 --- a/projects/demo-auth/src/app/components/header/README.md +++ b/projects/demo-auth/src/app/components/header/README.md @@ -4,7 +4,7 @@ angular Content Projection and ng-content. For further information what items can be used see [Clarity Header](https://clarity.design/documentation/header) - you can also set the Header title with [ukis-title]="title" -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project For examples [see demo maps](../demo-maps/README.md) diff --git a/projects/layer-control/README.md b/projects/layer-control/README.md index 1791183d8..4154820fa 100644 --- a/projects/layer-control/README.md +++ b/projects/layer-control/README.md @@ -1,6 +1,6 @@ # @dlr-eoc/layer-control -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project For examples [see demo maps](../demo-maps/README.md) diff --git a/projects/map-cesium/README.md b/projects/map-cesium/README.md index 0f44f346c..c434cff5d 100644 --- a/projects/map-cesium/README.md +++ b/projects/map-cesium/README.md @@ -1,7 +1,7 @@ # @dlr-eoc/map-cesium This library enables the UKIS frontend to display content on a 3D virtual globe using [CesiumJS](https://github.com/CesiumGS/cesium). It uses the same toolsets as the 2D mapping libraries and adds additional 3D capabilities. In the most basic version, map-cesium is displaying 2D maps on a 3D globe without explicit 3D content. -### How to use this in a ukis-angular (@dlr-eoc/core-ui) project +### How to use this in a ukis-angular project First, install and setupt UKIS core, like described in the [Tutorial](../../TUTORIALS.md#setting-up-ukis-core-ui). #### Add the following dependencies to the package.json diff --git a/projects/map-maplibre/README.md b/projects/map-maplibre/README.md index 6fe0b3e54..396c99f85 100644 --- a/projects/map-maplibre/README.md +++ b/projects/map-maplibre/README.md @@ -1,6 +1,6 @@ # @dlr-eoc/map-maplibre -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project For examples [see demo maps](../demo-maps/README.md) diff --git a/projects/map-ol/README.md b/projects/map-ol/README.md index 1f99e6a36..ac2768512 100644 --- a/projects/map-ol/README.md +++ b/projects/map-ol/README.md @@ -1,6 +1,6 @@ # @dlr-eoc/map-ol -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project For examples [see demo maps](../demo-maps/README.md) diff --git a/projects/map-tools/README.md b/projects/map-tools/README.md index 79edb13b9..59920657d 100644 --- a/projects/map-tools/README.md +++ b/projects/map-tools/README.md @@ -1,6 +1,6 @@ # @dlr-eoc/map-tools -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project This repository contains 3 ui components: diff --git a/projects/services-layers/README.md b/projects/services-layers/README.md index 619f7b562..ef96d9961 100644 --- a/projects/services-layers/README.md +++ b/projects/services-layers/README.md @@ -9,7 +9,7 @@ The conversion from our generalized layers to the map specific should be impleme ![The idea of the layerService](assets/TheIdeaOfTheUkisLayerService.svg) -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project ``` import { LayersService } from '@dlr-eoc/services-layers'; ``` diff --git a/projects/services-map-state/README.md b/projects/services-map-state/README.md index 95a4fd32e..50f562d7c 100644 --- a/projects/services-map-state/README.md +++ b/projects/services-map-state/README.md @@ -2,7 +2,7 @@ The `MapStateService` should be an interface to handle `zoom`, `center`, `extent`, `view angle`, `rotation` and `time` of maps. The idea is similar to `@dlr-eoc/services-layers`. -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project ``` import { MapStateService } from '@dlr-eoc/services-map-state'; diff --git a/projects/services-util-store/README.md b/projects/services-util-store/README.md index 7f7151cfc..7fccb476f 100644 --- a/projects/services-util-store/README.md +++ b/projects/services-util-store/README.md @@ -1,6 +1,6 @@ # @dlr-eoc/services-util-store -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project ``` import { UtilStoreService } from '@dlr-eoc/services-util-store'; diff --git a/projects/user-info/README.md b/projects/user-info/README.md index 56260c047..1a9a5223d 100644 --- a/projects/user-info/README.md +++ b/projects/user-info/README.md @@ -1,7 +1,7 @@ # @dlr-eoc/user-info -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project +### how to use this in a ukis-angular project For a example [see demo auth](../demo-auth/README.md) From 98005600f0fab2b5b38fec4a441fded66a201b64 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 2 Sep 2025 18:18:38 +0200 Subject: [PATCH 12/30] build: new npm lock --- package-lock.json | 13346 +++++++++++---------- package.json | 6 +- projects/core-ui/package.json | 2 +- projects/ngx-ukis-utilities/package.json | 2 +- scripts/library/package.json | 2 +- 5 files changed, 6779 insertions(+), 6579 deletions(-) diff --git a/package-lock.json b/package-lock.json index 430e8de68..86164aa97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,8 @@ "projects/shared-assets", "projects/map-cesium", "projects/utilities", - "projects/map-maplibre" + "projects/map-maplibre", + "projects/ngx-ukis-utilities" ], "dependencies": { "@angular-devkit/core": "^19.2.13", @@ -49,7 +50,7 @@ "@clr/ui": "^17.10.0", "@fontsource/metropolis": "^5.2.5", "@fontsource/noto-sans": "^5.2.7", - "@schematics/angular": "^19.2.12", + "@schematics/angular": "^19.2.13", "@webcomponents/webcomponentsjs": "^2.5.0", "jsonix": "^3.0.0", "luxon": "^3.6.1", @@ -66,8 +67,8 @@ "@angular-devkit/architect": "^0.1902.13", "@angular-devkit/build-angular": "^19.2.13", "@angular/cli": "^19.2.13", - "@angular/compiler-cli": "^19.2.12", - "@angular/language-service": "^19.2.12", + "@angular/compiler-cli": "^19.2.13", + "@angular/language-service": "^19.2.13", "@compodoc/compodoc": "1.1.26", "@types/geojson": "^7946.0.16", "@types/jasmine": "^5.1.8", @@ -120,12 +121,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1902.13", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1902.13.tgz", - "integrity": "sha512-ZMj+PjK22Ph2U8usG6L7LqEfvWlbaOvmiWXSrEt9YiC9QJt6rsumCkOgUIsmHQtucm/lK+9CMtyYdwH2fYycjg==", + "version": "0.1902.15", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1902.15.tgz", + "integrity": "sha512-RbqhStc6ZoRv57ZqLB36VOkBkAdU3nNezCvIs0AJV5V4+vLPMrb0hpIB0sF+9yMlMjWsolnRsj0/Fil+zQG3bw==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.2.13", + "@angular-devkit/core": "19.2.15", "rxjs": "7.8.1" }, "engines": { @@ -144,17 +145,17 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "19.2.13", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.2.13.tgz", - "integrity": "sha512-MrNpwrCq6COszhxyD/u2LE0yygTEjIAlaKaIvvDi9nurzUoKRc1vIJWeB2VkGgmUEjj6OTEeM/6zbo02s88EzA==", + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.2.15.tgz", + "integrity": "sha512-mqudAcyrSp/E7ZQdQoHfys0/nvQuwyJDaAzj3qL3HUStuUzb5ULNOj2f6sFBo+xYo+/WT8IzmzDN9DCqDgvFaA==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1902.13", - "@angular-devkit/build-webpack": "0.1902.13", - "@angular-devkit/core": "19.2.13", - "@angular/build": "19.2.13", + "@angular-devkit/architect": "0.1902.15", + "@angular-devkit/build-webpack": "0.1902.15", + "@angular-devkit/core": "19.2.15", + "@angular/build": "19.2.15", "@babel/core": "7.26.10", "@babel/generator": "7.26.10", "@babel/helper-annotate-as-pure": "7.25.9", @@ -165,7 +166,7 @@ "@babel/preset-env": "7.26.9", "@babel/runtime": "7.26.10", "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "19.2.13", + "@ngtools/webpack": "19.2.15", "@vitejs/plugin-basic-ssl": "1.2.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.20", @@ -202,7 +203,7 @@ "tslib": "2.8.1", "webpack": "5.98.0", "webpack-dev-middleware": "7.4.2", - "webpack-dev-server": "5.2.0", + "webpack-dev-server": "5.2.2", "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, @@ -219,7 +220,7 @@ "@angular/localize": "^19.0.0 || ^19.2.0-next.0", "@angular/platform-server": "^19.0.0 || ^19.2.0-next.0", "@angular/service-worker": "^19.0.0 || ^19.2.0-next.0", - "@angular/ssr": "^19.2.13", + "@angular/ssr": "^19.2.15", "@web/test-runner": "^0.20.0", "browser-sync": "^3.0.2", "jest": "^29.5.0", @@ -269,582 +270,24 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", - "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.10", - "@babel/types": "^7.26.10", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular-devkit/build-angular/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, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.0.tgz", - "integrity": "sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-android-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.0.tgz", - "integrity": "sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.0.tgz", - "integrity": "sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-darwin-x64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.0.tgz", - "integrity": "sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.0.tgz", - "integrity": "sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.0.tgz", - "integrity": "sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.0.tgz", - "integrity": "sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.0.tgz", - "integrity": "sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.0.tgz", - "integrity": "sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.0.tgz", - "integrity": "sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.0.tgz", - "integrity": "sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.0.tgz", - "integrity": "sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.0.tgz", - "integrity": "sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.0.tgz", - "integrity": "sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.0.tgz", - "integrity": "sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.0.tgz", - "integrity": "sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.0.tgz", - "integrity": "sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.0.tgz", - "integrity": "sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.0.tgz", - "integrity": "sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz", - "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.21.3" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/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, - "license": "MIT" - }, - "node_modules/@angular-devkit/build-angular/node_modules/postcss": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", - "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rollup": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.0.tgz", - "integrity": "sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/estree": "1.0.7" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.41.0", - "@rollup/rollup-android-arm64": "4.41.0", - "@rollup/rollup-darwin-arm64": "4.41.0", - "@rollup/rollup-darwin-x64": "4.41.0", - "@rollup/rollup-freebsd-arm64": "4.41.0", - "@rollup/rollup-freebsd-x64": "4.41.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.41.0", - "@rollup/rollup-linux-arm-musleabihf": "4.41.0", - "@rollup/rollup-linux-arm64-gnu": "4.41.0", - "@rollup/rollup-linux-arm64-musl": "4.41.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.41.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.41.0", - "@rollup/rollup-linux-riscv64-gnu": "4.41.0", - "@rollup/rollup-linux-riscv64-musl": "4.41.0", - "@rollup/rollup-linux-s390x-gnu": "4.41.0", - "@rollup/rollup-linux-x64-gnu": "4.41.0", - "@rollup/rollup-linux-x64-musl": "4.41.0", - "@rollup/rollup-win32-arm64-msvc": "4.41.0", - "@rollup/rollup-win32-ia32-msvc": "4.41.0", - "@rollup/rollup-win32-x64-msvc": "4.41.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/vite": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", - "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.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 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/vite/node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1902.13", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1902.13.tgz", - "integrity": "sha512-upb+cKWkuXwmKyppSwZf3ryHWPm4aS6sJkQu0TWh4RoMRp1WCYVxUfgZ28fTMqcBF3eoFy2XPjdOfkJDRb6Hrg==", + "version": "0.1902.15", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1902.15.tgz", + "integrity": "sha512-pIfZeizWsViXx8bsMoBLZw7Tl7uFf7bM7hAfmNwk0bb0QGzx5k1BiW6IKWyaG+Dg6U4UCrlNpIiut2b78HwQZw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1902.13", + "@angular-devkit/architect": "0.1902.15", "rxjs": "7.8.1" }, "engines": { @@ -868,9 +311,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "19.2.13", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.13.tgz", - "integrity": "sha512-iq73hE5Uvms1w3uMUSk4i4NDXDMQ863VAifX8LOTadhG6U0xISjNJ11763egVCxQmaKmg7zbG4rda88wHJATzA==", + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.15.tgz", + "integrity": "sha512-pU2RZYX6vhd7uLSdLwPnuBcr0mXJSjp3EgOXKsrlQFQZevc+Qs+2JdXgIElnOT/aDqtRtriDmLlSbtdE8n3ZbA==", "license": "MIT", "dependencies": { "ajv": "8.17.1", @@ -904,12 +347,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "19.2.13", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.13.tgz", - "integrity": "sha512-NhSPz3lI9njEo8eMUlZVGtlXl12UcNZv5lWTBZY/FGWUu6P5ciD/9iJINbc1jiaDH5E/DLEicUNuai0Q91X4Nw==", + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.15.tgz", + "integrity": "sha512-kNOJ+3vekJJCQKWihNmxBkarJzNW09kP5a9E1SRNiQVNOUEeSwcRR0qYotM65nx821gNzjjhJXnAZ8OazWldrg==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.2.13", + "@angular-devkit/core": "19.2.15", "jsonc-parser": "3.3.1", "magic-string": "0.30.17", "ora": "5.4.1", @@ -921,15 +364,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -940,9 +374,9 @@ } }, "node_modules/@angular/animations": { - "version": "19.2.12", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.2.12.tgz", - "integrity": "sha512-PEONFwzhUzeAMFW2ehfL+uGnkeVsikoEOJ3RJVdHWH7W8GUgdN2ubogw6umu939/MqL1MsItImXQcBA7aWfzSg==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.2.14.tgz", + "integrity": "sha512-xhl8fLto5HHJdVj8Nb6EoBEiTAcXuWDYn1q5uHcGxyVH3kiwENWy/2OQXgCr2CuWo2e6hNUGzSLf/cjbsMNqEA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -951,19 +385,19 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.2.12", - "@angular/core": "19.2.12" + "@angular/common": "19.2.14", + "@angular/core": "19.2.14" } }, "node_modules/@angular/build": { - "version": "19.2.13", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.2.13.tgz", - "integrity": "sha512-ABcwhAB9DpsvXY7joRFSKiQCHJmCokVJK1Liuz0/AI9Xlp7spqaWqJcC1DVWO0645tUk4HhYmUh5a68REK1Q1A==", + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.2.15.tgz", + "integrity": "sha512-iE4fp4d5ALu702uoL6/YkjM2JlGEXZ5G+RVzq3W2jg/Ft6ISAQnRKB6mymtetDD6oD7i87e8uSu9kFVNBauX2w==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1902.13", + "@angular-devkit/architect": "0.1902.15", "@babel/core": "7.26.10", "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", @@ -1003,7 +437,7 @@ "@angular/localize": "^19.0.0 || ^19.2.0-next.0", "@angular/platform-server": "^19.0.0 || ^19.2.0-next.0", "@angular/service-worker": "^19.0.0 || ^19.2.0-next.0", - "@angular/ssr": "^19.2.13", + "@angular/ssr": "^19.2.15", "karma": "^6.4.0", "less": "^4.2.0", "ng-packagr": "^19.0.0 || ^19.2.0-next.0", @@ -1041,90 +475,6 @@ } } }, - "node_modules/@angular/build/node_modules/@babel/core": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", - "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.10", - "@babel/types": "^7.26.10", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular/build/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, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular/build/node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz", - "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.21.3" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/@angular/build/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, - "license": "MIT" - }, - "node_modules/@angular/build/node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/@angular/build/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular/build/node_modules/vite": { "version": "6.2.7", "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.7.tgz", @@ -1197,25 +547,39 @@ } } }, - "node_modules/@angular/build/node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "node_modules/@angular/build/node_modules/vite/node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">= 14.6" + "node": "^10 || ^12 || >=14" } }, "node_modules/@angular/cdk": { - "version": "19.2.17", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.2.17.tgz", - "integrity": "sha512-3jG33S+5+kqymCRwQlcSEWlY5rYwkKxe0onln+NXxT0/kteR02vWvv1+Li4/QqSr5JvsGHEhAFsZaR9QtOzbdA==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.2.19.tgz", + "integrity": "sha512-PCpJagurPBqciqcq4Z8+3OtKLb7rSl4w/qBJoIMua8CgnrjvA1i+SWawhdtfI1zlY8FSwhzLwXV0CmWWfFzQPg==", "license": "MIT", "dependencies": { "parse5": "^7.1.2", @@ -1228,17 +592,17 @@ } }, "node_modules/@angular/cli": { - "version": "19.2.13", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.2.13.tgz", - "integrity": "sha512-dDRCS73/lrItWx9j4SmwHR56GiZsW8ObNi2q9l/1ny813CG9K43STYFG/wJvGS7ZF3y5hvjIiJOwBx2YIouOIw==", + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.2.15.tgz", + "integrity": "sha512-YRIpARHWSOnWkHusUWTQgeUrPWMjWvtQrOkjWc6stF36z2KUzKMEng6EzUvH6sZolNSwVwOFpODEP0ut4aBkvQ==", "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1902.13", - "@angular-devkit/core": "19.2.13", - "@angular-devkit/schematics": "19.2.13", + "@angular-devkit/architect": "0.1902.15", + "@angular-devkit/core": "19.2.15", + "@angular-devkit/schematics": "19.2.15", "@inquirer/prompts": "7.3.2", "@listr2/prompt-adapter-inquirer": "2.0.18", - "@schematics/angular": "19.2.13", + "@schematics/angular": "19.2.15", "@yarnpkg/lockfile": "1.1.0", "ini": "5.0.0", "jsonc-parser": "3.3.1", @@ -1260,31 +624,10 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/ini": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", - "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@angular/cli/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular/common": { - "version": "19.2.12", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.2.12.tgz", - "integrity": "sha512-oE2KLvU+YUyq2pUPS8nBWxkPGj29JzslaFcS9vQgvuKZgBTIwAgKm8QHBsitiZ0V+kX8Agwnl5YSdxdtuV2gQQ==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.2.14.tgz", + "integrity": "sha512-NcNklcuyqaTjOVGf7aru8APX9mjsnZ01gFZrn47BxHozhaR0EMRrotYQTdi8YdVjPkeYFYanVntSLfhyobq/jg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1293,14 +636,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.2.12", + "@angular/core": "19.2.14", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "19.2.12", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.2.12.tgz", - "integrity": "sha512-OXfnkrtPQ1n64zWv3I0Zhk4U+Xtsbc7Utc15vqc+9sYewFjH0Fdb7bsNZ31+unpn+icWlYELtGINh+ld/rqKQQ==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.2.14.tgz", + "integrity": "sha512-ZqJDYOdhgKpVGNq3+n/Gbxma8DVYElDsoRe0tvNtjkWBVdaOxdZZUqmJ3kdCBsqD/aqTRvRBu0KGo9s2fCChkA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1310,9 +653,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "19.2.12", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.2.12.tgz", - "integrity": "sha512-w8XMBF9ifuQoL5+1dLTdiTGKHV5mwXVrQyfQufmlBUYkmMU0qVcx7OoabHkwols0LGhYY/vcoxWgM5eyUSF41A==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.2.14.tgz", + "integrity": "sha512-e9/h86ETjoIK2yTLE9aUeMCKujdg/du2pq7run/aINjop4RtnNOw+ZlSTUa6R65lP5CVwDup1kPytpAoifw8cA==", "dev": true, "license": "MIT", "dependencies": { @@ -1334,14 +677,62 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "19.2.12", + "@angular/compiler": "19.2.14", "typescript": ">=5.5 <5.9" } }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", + "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@angular/core": { - "version": "19.2.12", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.2.12.tgz", - "integrity": "sha512-NO/EfB1er3627Y9vxEw+VjR59g3fKigAX03DMHF4nyIsjxFZVtzKYztx7hfpCQ4f4kgqKz6WKi3ueUyyyziFqQ==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.2.14.tgz", + "integrity": "sha512-EVErpW9tGqJ/wNcAN3G/ErH8pHCJ8mM1E6bsJ8UJIpDTZkpqqYjBMtZS9YWH5n3KwUd1tAkAB2w8FK125AjDUQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1355,9 +746,9 @@ } }, "node_modules/@angular/forms": { - "version": "19.2.12", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.2.12.tgz", - "integrity": "sha512-hHJ+YoofahQvGlKvKxgj2vdGwP/D6RYoDtD/MLj41ZIIok4dmk9Rlty1pa3/FfluFK+tHX+CEYqfB+oShtPeaQ==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.2.14.tgz", + "integrity": "sha512-hWtDOj2B0AuRTf+nkMJeodnFpDpmEK9OIhIv1YxcRe73ooaxrIdjgugkElO8I9Tj0E4/7m117ezhWDUkbqm1zA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1366,16 +757,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.2.12", - "@angular/core": "19.2.12", - "@angular/platform-browser": "19.2.12", + "@angular/common": "19.2.14", + "@angular/core": "19.2.14", + "@angular/platform-browser": "19.2.14", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "19.2.12", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-19.2.12.tgz", - "integrity": "sha512-eYsN/WZ1nSxkZgSONguee3AajB0fIn2C4Xv7iHEZImI0LixeIC5wIqnbk/yinrl7TEbDi7+16Tkx3yXgW82NjA==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-19.2.14.tgz", + "integrity": "sha512-XgzZdBCe/obCrck5I6GIG4qSI9UGaOtbrvNuw0QAK0DySKaW5inRm6/QwCMPRmPkJBY0wLeYUVz//rtHpEjeTQ==", "dev": true, "license": "MIT", "engines": { @@ -1383,9 +774,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "19.2.12", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.2.12.tgz", - "integrity": "sha512-R1LF7zvO2CxcJGn8tvpZQPH773iLDMVEGMZc2pRsQoehqgRmos2qjdML4DgVFF1Ismu9TxEtBfIzOiHCSOg2Zg==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.2.14.tgz", + "integrity": "sha512-hzkT5nmA64oVBQl6PRjdL4dIFT1n7lfM9rm5cAoS+6LUUKRgiE2d421Kpn/Hz3jaCJfo+calMIdtSMIfUJBmww==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1394,9 +785,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "19.2.12", - "@angular/common": "19.2.12", - "@angular/core": "19.2.12" + "@angular/animations": "19.2.14", + "@angular/common": "19.2.14", + "@angular/core": "19.2.14" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1405,9 +796,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "19.2.12", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.2.12.tgz", - "integrity": "sha512-nU7ASPG6RKtu8sBIY76VEFJ210ZCZ7lD9ANNKDe0Cjo1fI2WrZ9YpcOi4RlGZ4Zq/paF1yg37fIw+hPLZGzZMQ==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.2.14.tgz", + "integrity": "sha512-Hfz0z1KDQmIdnFXVFCwCPykuIsHPkr1uW2aY396eARwZ6PK8i0Aadcm1ZOnpd3MR1bMyDrJo30VRS5kx89QWvA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1416,16 +807,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.2.12", - "@angular/compiler": "19.2.12", - "@angular/core": "19.2.12", - "@angular/platform-browser": "19.2.12" + "@angular/common": "19.2.14", + "@angular/compiler": "19.2.14", + "@angular/core": "19.2.14", + "@angular/platform-browser": "19.2.14" } }, "node_modules/@angular/router": { - "version": "19.2.12", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.2.12.tgz", - "integrity": "sha512-T2VM8QjKukLnPVyWe4EavSIsBmt91wGVTP7AK8rpWNdMXhVjn8m4iPJGT2Ne0Bqh4kTmISOPZPDEA6A6Q78NvQ==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.2.14.tgz", + "integrity": "sha512-cBTWY9Jx7YhbmDYDb7Hqz4Q7UNIMlKTkdKToJd2pbhIXyoS+kHVQrySmyca+jgvYMjWnIjsAEa3dpje12D4mFw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1434,9 +825,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.2.12", - "@angular/core": "19.2.12", - "@angular/platform-browser": "19.2.12", + "@angular/common": "19.2.14", + "@angular/core": "19.2.14", + "@angular/platform-browser": "19.2.14", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1455,9 +846,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", - "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", "dev": true, "license": "MIT", "engines": { @@ -1465,22 +856,22 @@ } }, "node_modules/@babel/core": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", - "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", + "@babel/generator": "^7.26.10", "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.9", - "@babel/parser": "^7.26.9", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.9", - "@babel/types": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1570,18 +961,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", - "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", + "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.27.1", + "@babel/traverse": "^7.28.3", "semver": "^6.3.1" }, "engines": { @@ -1592,13 +983,13 @@ } }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", - "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -1633,13 +1024,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", - "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -1656,22 +1047,31 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", - "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", @@ -1701,15 +1101,15 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", - "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -1760,13 +1160,13 @@ } }, "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", - "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -1846,41 +1246,41 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", - "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", - "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", - "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.28.2" }, "bin": { "parser": "bin/babel-parser.js" @@ -1957,14 +1357,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", - "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -2104,9 +1504,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz", - "integrity": "sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", + "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2137,13 +1537,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", - "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { @@ -2154,18 +1554,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", - "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz", + "integrity": "sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.27.1", - "globals": "^11.1.0" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -2175,13 +1575,13 @@ } }, "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", - "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -2205,13 +1605,14 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz", - "integrity": "sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -2553,16 +1954,17 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.2.tgz", - "integrity": "sha512-AIUHD7xJ1mCrj3uPozvtngY3s0xpv7Nu7DoUSnzNY6Xam1Cy4rUznR//pvMHOhQ4AvbCexhbqXCtpxGHOGOO6g==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", + "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.1", - "@babel/plugin-transform-parameters": "^7.27.1" + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -2622,9 +2024,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", - "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", "dev": true, "license": "MIT", "dependencies": { @@ -2638,14 +2040,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "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==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2673,13 +2075,13 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", - "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -2702,9 +2104,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz", - "integrity": "sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz", + "integrity": "sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==", "dev": true, "license": "MIT", "dependencies": { @@ -2771,20 +2173,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", - "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3", - "core-js-compat": "^3.40.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -3027,37 +2415,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-private-methods": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", - "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", - "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3", - "core-js-compat": "^3.40.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -3111,33 +2468,33 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -3145,9 +2502,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -3165,9 +2522,9 @@ "optional": true }, "node_modules/@cds/core": { - "version": "6.15.1", - "resolved": "https://registry.npmjs.org/@cds/core/-/core-6.15.1.tgz", - "integrity": "sha512-XFIDynH2ye2HQglcCssdz2gZEaQC5WHENZyTwmkbjUvEGLpqiIHyIUX12U6y17lVMHO+yYzPc6YFZ7aW4bF5gQ==", + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@cds/core/-/core-6.16.1.tgz", + "integrity": "sha512-skEie8NvnSwjnY3lufKMOtKoHG5V2B5cWA8+tH7LB7zXlq8cLkK6VPeQy15Wm/3oXaVzGhN283e8Z8+cRSLQqg==", "license": "MIT", "dependencies": { "lit": "^2.1.3", @@ -3230,23 +2587,73 @@ "quickselect": "^2.0.0" } }, + "node_modules/@cesium/wasm-splats": { + "version": "0.1.0-alpha.2", + "resolved": "https://registry.npmjs.org/@cesium/wasm-splats/-/wasm-splats-0.1.0-alpha.2.tgz", + "integrity": "sha512-t9pMkknv31hhIbLpMa8yPvmqfpvs5UkUjgqlQv9SeO8VerCXOYnyP8/486BDaFrztM0A7FMbRjsXtNeKvqQghA==", + "license": "Apache-2.0" + }, "node_modules/@cesium/widgets": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-12.0.0.tgz", - "integrity": "sha512-5Re06LU8lRPEZInHrpOCGBiLoj9VNJ0JJtPrzdnw1qhIDpf3v1W75OJf59k8CCFvUYkZzuTTi8qTVbpzmcbOuw==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-12.3.0.tgz", + "integrity": "sha512-5Aa54lCrdywogY1ypOwRmRrb72LVrPvrOzOrcYeQ50DDZSs5hCxVXWecYYsq3qoeK0buA9wP/5TBWE7RlsV7OA==", "license": "Apache-2.0", "dependencies": { - "@cesium/engine": "^17.0.0", + "@cesium/engine": "^18.3.0", "nosleep.js": "^0.12.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.19.0" + } + }, + "node_modules/@cesium/widgets/node_modules/@cesium/engine": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-18.3.0.tgz", + "integrity": "sha512-ILNA1a+RX2gNsQGyF2zq27Ucaj5UMj19paYoJbKxX/U0QtxLuFUhJ2yg6wr2eBtC3X3kd475o7kAx0LpfCZxpg==", + "license": "Apache-2.0", + "dependencies": { + "@cesium/wasm-splats": "^0.1.0-alpha.2", + "@spz-loader/core": "0.1.0", + "@tweenjs/tween.js": "^25.0.0", + "@zip.js/zip.js": "^2.7.34", + "autolinker": "^4.0.0", + "bitmap-sdf": "^1.0.3", + "dompurify": "^3.0.2", + "draco3d": "^1.5.1", + "earcut": "^3.0.0", + "grapheme-splitter": "^1.0.4", + "jsep": "^1.3.8", + "kdbush": "^4.0.1", + "ktx-parse": "^1.0.0", + "lerc": "^2.0.0", + "mersenne-twister": "^1.1.0", + "meshoptimizer": "^0.24.0", + "pako": "^2.0.4", + "protobufjs": "^7.1.0", + "rbush": "^4.0.1", + "topojson-client": "^3.1.0", + "urijs": "^1.19.7" + }, + "engines": { + "node": ">=20.19.0" } }, + "node_modules/@cesium/widgets/node_modules/lerc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lerc/-/lerc-2.0.0.tgz", + "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==", + "license": "Apache-2.0" + }, + "node_modules/@cesium/widgets/node_modules/meshoptimizer": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.24.0.tgz", + "integrity": "sha512-Iq/8cM5cK2B0P0QdKHexr30zEJn5sQxjXKtQJGp6LO7r1VUPwhgxau18pvybVDnEDsKE49GdlJYwqPX9A/P9Sw==", + "license": "MIT" + }, "node_modules/@clr/angular": { - "version": "17.10.0", - "resolved": "https://registry.npmjs.org/@clr/angular/-/angular-17.10.0.tgz", - "integrity": "sha512-Rq/63XAmsReCqCQ1vbQIXQh5RgCJEmxLZtdWmtayMkI2QEjLn6KDIzYxZc5ORK9pMaMt+AAn3ijbWMm1qxtXJw==", + "version": "17.11.2", + "resolved": "https://registry.npmjs.org/@clr/angular/-/angular-17.11.2.tgz", + "integrity": "sha512-iXmPAdLLD+WXXGrglVxZKJW/J7BOeCWirNlWymQ7fuz5GJE5Q72wMGVOHoZ644SXx3fCBjRc/ek8wcMqYGyvsg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -3256,13 +2663,13 @@ "@angular/common": "15 || 16 || 17 || 18 || 19", "@angular/core": "15 || 16 || 17 || 18 || 19", "@cds/core": ">= 6.9.2", - "@clr/ui": "17.10.0" + "@clr/ui": "17.11.2" } }, "node_modules/@clr/ui": { - "version": "17.10.0", - "resolved": "https://registry.npmjs.org/@clr/ui/-/ui-17.10.0.tgz", - "integrity": "sha512-5ExEu6XaoKTuvJogBQjDLdRbikT075mpwT+J09N26Z8iNeaKSDUMe5rfBJJUTK7OtqZ5X9T5gXr2EN+6TEONGw==", + "version": "17.11.2", + "resolved": "https://registry.npmjs.org/@clr/ui/-/ui-17.11.2.tgz", + "integrity": "sha512-KbJ4XZQbq1EToIs+wnCrO5FPjHR1f/vUCaqEYsVUxHAGC33B/5zKvUttarU1UJD3rv7Tb+BNXdx2oBsklRhiog==", "license": "MIT", "peerDependencies": { "@cds/core": "^6.9.2" @@ -3448,6 +2855,23 @@ "semver": "bin/semver.js" } }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-private-methods": { + "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.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@compodoc/compodoc/node_modules/@babel/preset-env": { "version": "7.25.8", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.8.tgz", @@ -3541,6 +2965,20 @@ "semver": "bin/semver.js" } }, + "node_modules/@compodoc/compodoc/node_modules/babel-plugin-polyfill-corejs3": { + "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.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@compodoc/compodoc/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -3563,6 +3001,46 @@ "node": ">= 6" } }, + "node_modules/@compodoc/compodoc/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": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@compodoc/compodoc/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -3697,6 +3175,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@compodoc/live-server/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@compodoc/live-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/@compodoc/ngd-core": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.1.1.tgz", @@ -3774,6 +3278,10 @@ "resolved": "projects/map-tools", "link": true }, + "node_modules/@dlr-eoc/ngx-ukis-utilities": { + "resolved": "projects/ngx-ukis-utilities", + "link": true + }, "node_modules/@dlr-eoc/services-layers": { "resolved": "projects/services-layers", "link": true @@ -4258,14 +3766,14 @@ } }, "node_modules/@inquirer/checkbox": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.6.tgz", - "integrity": "sha512-62u896rWCtKKE43soodq5e/QcRsA22I+7/4Ov7LESWnKRO6BVo2A1DFLDmXL9e28TB0CfHc3YtkbPm7iwajqkg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.2.2.tgz", + "integrity": "sha512-E+KExNurKcUJJdxmjglTl141EwxWyAHplvsYJQgSwXf8qiNWkTxTuCCqmhFEmbIXd4zLaGMfQFJ6WrZ7fSeV3g==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.6", + "@inquirer/core": "^10.2.0", + "@inquirer/figures": "^1.0.13", + "@inquirer/type": "^3.0.8", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -4303,13 +3811,13 @@ } }, "node_modules/@inquirer/core": { - "version": "10.1.11", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.11.tgz", - "integrity": "sha512-BXwI/MCqdtAhzNQlBEFE7CEflhPkl/BqvAuV/aK6lW3DClIfYVDWPP/kXuXHtBWC7/EEbNqd/1BGq2BGBBnuxw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.2.0.tgz", + "integrity": "sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==", "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.6", + "@inquirer/figures": "^1.0.13", + "@inquirer/type": "^3.0.8", "ansi-escapes": "^4.3.2", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", @@ -4330,14 +3838,14 @@ } }, "node_modules/@inquirer/editor": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.11.tgz", - "integrity": "sha512-YoZr0lBnnLFPpfPSNsQ8IZyKxU47zPyVi9NLjCWtna52//M/xuL0PGPAxHxxYhdOhnvY2oBafoM+BI5w/JK7jw==", + "version": "4.2.18", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.18.tgz", + "integrity": "sha512-yeQN3AXjCm7+Hmq5L6Dm2wEDeBRdAZuyZ4I7tWSSanbxDzqM0KqzoDbKM7p4ebllAYdoQuPJS6N71/3L281i6w==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6", - "external-editor": "^3.1.0" + "@inquirer/core": "^10.2.0", + "@inquirer/external-editor": "^1.0.1", + "@inquirer/type": "^3.0.8" }, "engines": { "node": ">=18" @@ -4352,13 +3860,13 @@ } }, "node_modules/@inquirer/expand": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.13.tgz", - "integrity": "sha512-HgYNWuZLHX6q5y4hqKhwyytqAghmx35xikOGY3TcgNiElqXGPas24+UzNPOwGUZa5Dn32y25xJqVeUcGlTv+QQ==", + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.18.tgz", + "integrity": "sha512-xUjteYtavH7HwDMzq4Cn2X4Qsh5NozoDHCJTdoXg9HfZ4w3R6mxV1B9tL7DGJX2eq/zqtsFjhm0/RJIMGlh3ag==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6", + "@inquirer/core": "^10.2.0", + "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -4373,23 +3881,44 @@ } } }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.1.tgz", + "integrity": "sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==", + "license": "MIT", + "dependencies": { + "chardet": "^2.1.0", + "iconv-lite": "^0.6.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, "node_modules/@inquirer/figures": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz", - "integrity": "sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.13.tgz", + "integrity": "sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@inquirer/input": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.10.tgz", - "integrity": "sha512-kV3BVne3wJ+j6reYQUZi/UN9NZGZLxgc/tfyjeK3mrx1QI7RXPxGp21IUTv+iVHcbP4ytZALF8vCHoxyNSC6qg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.2.2.tgz", + "integrity": "sha512-hqOvBZj/MhQCpHUuD3MVq18SSoDNHy7wEnQ8mtvs71K8OPZVXJinOzcvQna33dNYLYE4LkA9BlhAhK6MJcsVbw==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6" + "@inquirer/core": "^10.2.0", + "@inquirer/type": "^3.0.8" }, "engines": { "node": ">=18" @@ -4404,13 +3933,13 @@ } }, "node_modules/@inquirer/number": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.13.tgz", - "integrity": "sha512-IrLezcg/GWKS8zpKDvnJ/YTflNJdG0qSFlUM/zNFsdi4UKW/CO+gaJpbMgQ20Q58vNKDJbEzC6IebdkprwL6ew==", + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.18.tgz", + "integrity": "sha512-7exgBm52WXZRczsydCVftozFTrrwbG5ySE0GqUd2zLNSBXyIucs2Wnm7ZKLe/aUu6NUg9dg7Q80QIHCdZJiY4A==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6" + "@inquirer/core": "^10.2.0", + "@inquirer/type": "^3.0.8" }, "engines": { "node": ">=18" @@ -4425,13 +3954,13 @@ } }, "node_modules/@inquirer/password": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.13.tgz", - "integrity": "sha512-NN0S/SmdhakqOTJhDwOpeBEEr8VdcYsjmZHDb0rblSh2FcbXQOr+2IApP7JG4WE3sxIdKytDn4ed3XYwtHxmJQ==", + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.18.tgz", + "integrity": "sha512-zXvzAGxPQTNk/SbT3carAD4Iqi6A2JS2qtcqQjsL22uvD+JfQzUrDEtPjLL7PLn8zlSNyPdY02IiQjzoL9TStA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6", + "@inquirer/core": "^10.2.0", + "@inquirer/type": "^3.0.8", "ansi-escapes": "^4.3.2" }, "engines": { @@ -4476,13 +4005,13 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.1.tgz", - "integrity": "sha512-VBUC0jPN2oaOq8+krwpo/mf3n/UryDUkKog3zi+oIi8/e5hykvdntgHUB9nhDM78RubiyR1ldIOfm5ue+2DeaQ==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.6.tgz", + "integrity": "sha512-KOZqa3QNr3f0pMnufzL7K+nweFFCCBs6LCXZzXDrVGTyssjLeudn5ySktZYv1XiSqobyHRYYK0c6QsOxJEhXKA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6", + "@inquirer/core": "^10.2.0", + "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -4498,14 +4027,14 @@ } }, "node_modules/@inquirer/search": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.13.tgz", - "integrity": "sha512-9g89d2c5Izok/Gw/U7KPC3f9kfe5rA1AJ24xxNZG0st+vWekSk7tB9oE+dJv5JXd0ZSijomvW0KPMoBd8qbN4g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.1.1.tgz", + "integrity": "sha512-TkMUY+A2p2EYVY3GCTItYGvqT6LiLzHBnqsU1rJbrpXUijFfM6zvUx0R4civofVwFCmJZcKqOVwwWAjplKkhxA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.6", + "@inquirer/core": "^10.2.0", + "@inquirer/figures": "^1.0.13", + "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -4521,14 +4050,14 @@ } }, "node_modules/@inquirer/select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.2.1.tgz", - "integrity": "sha512-gt1Kd5XZm+/ddemcT3m23IP8aD8rC9drRckWoP/1f7OL46Yy2FGi8DSmNjEjQKtPl6SV96Kmjbl6p713KXJ/Jg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.3.2.tgz", + "integrity": "sha512-nwous24r31M+WyDEHV+qckXkepvihxhnyIaod2MG7eCE6G0Zm/HUF6jgN8GXgf4U7AU6SLseKdanY195cwvU6w==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.6", + "@inquirer/core": "^10.2.0", + "@inquirer/figures": "^1.0.13", + "@inquirer/type": "^3.0.8", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -4545,9 +4074,9 @@ } }, "node_modules/@inquirer/type": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.6.tgz", - "integrity": "sha512-/mKVCtVpyBu3IDarv0G+59KC4stsD5mDsGpYh+GKs1NZT88Jh52+cuoA1AtLk2Q0r/quNl+1cSUyLRHBFeD0XA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.8.tgz", + "integrity": "sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==", "license": "MIT", "engines": { "node": ">=18" @@ -4561,6 +4090,29 @@ } } }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -4578,43 +4130,16 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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==", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, "engines": { "node": ">=12" }, "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": { @@ -4657,17 +4182,13 @@ } }, "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==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -4679,19 +4200,10 @@ "node": ">=6.0.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==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, "license": "MIT", "dependencies": { @@ -4700,15 +4212,15 @@ } }, "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==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, "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==", + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -4732,17 +4244,75 @@ "tslib": "2" } }, + "node_modules/@jsonjoy.com/buffers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.0.0.tgz", + "integrity": "sha512-NDigYR3PHqCnQLXYyoLbnEdzMMvzeiCWo1KOut7Q0CoIqg9tUAPKJ1iq/2nFhc5kZtexzutNY0LFjdwWL3Dw3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@jsonjoy.com/json-pack": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.2.0.tgz", - "integrity": "sha512-io1zEbbYcElht3tdlqEOFxZ0dMTYrHz9iMf0gqn1pPjZFTCgM5R4R5IMA20Chb2UPYYsxjzs8CgZ7Nb5n2K2rA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.11.0.tgz", + "integrity": "sha512-nLqSTAYwpk+5ZQIoVp7pfd/oSKNWlEdvTq2LzVA4r2wtWZg6v+5u0VgBOaDJuUfNOuw/4Ysq6glN5QKSrOCgrA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.1", + "@jsonjoy.com/util": "^1.9.0", "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" }, "engines": { "node": ">=10.0" @@ -4756,11 +4326,15 @@ } }, "node_modules/@jsonjoy.com/util": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.6.0.tgz", - "integrity": "sha512-sw/RMbehRhN68WRtcKCpQOPfnH6lLP4GJfqzi3iYej8tnzpZUDr6UkZYJjcjjC0FWEJOJbyM3PTIwxucUmDG2A==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, "engines": { "node": ">=10.0" }, @@ -4816,9 +4390,9 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", - "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", + "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==", "license": "BSD-3-Clause" }, "node_modules/@lit/reactive-element": { @@ -4927,6 +4501,18 @@ "geojson-rewind": "geojson-rewind" } }, + "node_modules/@mapbox/geojson-rewind/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", @@ -4936,15 +4522,15 @@ } }, "node_modules/@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-1.1.0.tgz", + "integrity": "sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==", "license": "ISC" }, "node_modules/@mapbox/tiny-sdf": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", - "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.7.tgz", + "integrity": "sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==", "license": "BSD-2-Clause" }, "node_modules/@mapbox/togeojson": { @@ -4968,12 +4554,14 @@ "license": "BSD-2-Clause" }, "node_modules/@mapbox/vector-tile": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-2.0.4.tgz", + "integrity": "sha512-AkOLcbgGTdXScosBWwmmD7cDlvOjkg/DetGva26pIRiZPdeJYjYKarIlb4uxVzi6bwHO6EWH82eZ5Nuv4T5DUg==", "license": "BSD-3-Clause", "dependencies": { - "@mapbox/point-geometry": "~0.1.0" + "@mapbox/point-geometry": "~1.1.0", + "@types/geojson": "^7946.0.16", + "pbf": "^4.0.1" } }, "node_modules/@mapbox/whoots-js": { @@ -5005,6 +4593,21 @@ "gl-style-validate": "dist/gl-style-validate.mjs" } }, + "node_modules/@maplibre/vt-pbf": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@maplibre/vt-pbf/-/vt-pbf-4.0.3.tgz", + "integrity": "sha512-YsW99BwnT+ukJRkseBcLuZHfITB4puJoxnqPVjo72rhW/TaawVYsgQHcqWLzTxqknttYoDpgyERzWSa/XrETdA==", + "license": "MIT", + "dependencies": { + "@mapbox/point-geometry": "^1.1.0", + "@mapbox/vector-tile": "^2.0.4", + "@types/geojson-vt": "3.2.5", + "@types/supercluster": "^7.1.3", + "geojson-vt": "^4.0.2", + "pbf": "^4.0.1", + "supercluster": "^8.0.1" + } + }, "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", @@ -5090,9 +4693,9 @@ ] }, "node_modules/@napi-rs/nice": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz", - "integrity": "sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.1.1.tgz", + "integrity": "sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==", "dev": true, "license": "MIT", "optional": true, @@ -5104,28 +4707,29 @@ "url": "https://github.com/sponsors/Brooooooklyn" }, "optionalDependencies": { - "@napi-rs/nice-android-arm-eabi": "1.0.1", - "@napi-rs/nice-android-arm64": "1.0.1", - "@napi-rs/nice-darwin-arm64": "1.0.1", - "@napi-rs/nice-darwin-x64": "1.0.1", - "@napi-rs/nice-freebsd-x64": "1.0.1", - "@napi-rs/nice-linux-arm-gnueabihf": "1.0.1", - "@napi-rs/nice-linux-arm64-gnu": "1.0.1", - "@napi-rs/nice-linux-arm64-musl": "1.0.1", - "@napi-rs/nice-linux-ppc64-gnu": "1.0.1", - "@napi-rs/nice-linux-riscv64-gnu": "1.0.1", - "@napi-rs/nice-linux-s390x-gnu": "1.0.1", - "@napi-rs/nice-linux-x64-gnu": "1.0.1", - "@napi-rs/nice-linux-x64-musl": "1.0.1", - "@napi-rs/nice-win32-arm64-msvc": "1.0.1", - "@napi-rs/nice-win32-ia32-msvc": "1.0.1", - "@napi-rs/nice-win32-x64-msvc": "1.0.1" + "@napi-rs/nice-android-arm-eabi": "1.1.1", + "@napi-rs/nice-android-arm64": "1.1.1", + "@napi-rs/nice-darwin-arm64": "1.1.1", + "@napi-rs/nice-darwin-x64": "1.1.1", + "@napi-rs/nice-freebsd-x64": "1.1.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", + "@napi-rs/nice-linux-arm64-gnu": "1.1.1", + "@napi-rs/nice-linux-arm64-musl": "1.1.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", + "@napi-rs/nice-linux-s390x-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-musl": "1.1.1", + "@napi-rs/nice-openharmony-arm64": "1.1.1", + "@napi-rs/nice-win32-arm64-msvc": "1.1.1", + "@napi-rs/nice-win32-ia32-msvc": "1.1.1", + "@napi-rs/nice-win32-x64-msvc": "1.1.1" } }, "node_modules/@napi-rs/nice-android-arm-eabi": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz", - "integrity": "sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz", + "integrity": "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==", "cpu": [ "arm" ], @@ -5140,9 +4744,9 @@ } }, "node_modules/@napi-rs/nice-android-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz", - "integrity": "sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz", + "integrity": "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==", "cpu": [ "arm64" ], @@ -5157,9 +4761,9 @@ } }, "node_modules/@napi-rs/nice-darwin-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz", - "integrity": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==", "cpu": [ "arm64" ], @@ -5174,9 +4778,9 @@ } }, "node_modules/@napi-rs/nice-darwin-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz", - "integrity": "sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz", + "integrity": "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==", "cpu": [ "x64" ], @@ -5191,9 +4795,9 @@ } }, "node_modules/@napi-rs/nice-freebsd-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz", - "integrity": "sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz", + "integrity": "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==", "cpu": [ "x64" ], @@ -5208,9 +4812,9 @@ } }, "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz", - "integrity": "sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==", "cpu": [ "arm" ], @@ -5225,9 +4829,9 @@ } }, "node_modules/@napi-rs/nice-linux-arm64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz", - "integrity": "sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==", "cpu": [ "arm64" ], @@ -5242,9 +4846,9 @@ } }, "node_modules/@napi-rs/nice-linux-arm64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz", - "integrity": "sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==", "cpu": [ "arm64" ], @@ -5259,9 +4863,9 @@ } }, "node_modules/@napi-rs/nice-linux-ppc64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz", - "integrity": "sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz", + "integrity": "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==", "cpu": [ "ppc64" ], @@ -5276,9 +4880,9 @@ } }, "node_modules/@napi-rs/nice-linux-riscv64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz", - "integrity": "sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz", + "integrity": "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==", "cpu": [ "riscv64" ], @@ -5293,9 +4897,9 @@ } }, "node_modules/@napi-rs/nice-linux-s390x-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz", - "integrity": "sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz", + "integrity": "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==", "cpu": [ "s390x" ], @@ -5310,9 +4914,9 @@ } }, "node_modules/@napi-rs/nice-linux-x64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz", - "integrity": "sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==", "cpu": [ "x64" ], @@ -5327,9 +4931,9 @@ } }, "node_modules/@napi-rs/nice-linux-x64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz", - "integrity": "sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==", "cpu": [ "x64" ], @@ -5343,10 +4947,27 @@ "node": ">= 10" } }, + "node_modules/@napi-rs/nice-openharmony-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz", + "integrity": "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@napi-rs/nice-win32-arm64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz", - "integrity": "sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz", + "integrity": "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==", "cpu": [ "arm64" ], @@ -5361,9 +4982,9 @@ } }, "node_modules/@napi-rs/nice-win32-ia32-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz", - "integrity": "sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==", "cpu": [ "ia32" ], @@ -5378,9 +4999,9 @@ } }, "node_modules/@napi-rs/nice-win32-x64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz", - "integrity": "sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==", "cpu": [ "x64" ], @@ -5395,9 +5016,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "19.2.13", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.2.13.tgz", - "integrity": "sha512-9dYfLsqWFTn1YVUiWydSp2bboaSW+byeZRFx8qeR7lsOkDGbm/idG68IXFHybHtZ3ptJ5fEeuw89RL47SQ61oA==", + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.2.15.tgz", + "integrity": "sha512-H37nop/wWMkSgoU2VvrMzanHePdLRRrX52nC5tT2ZhH3qP25+PrnMyw11PoLDLv3iWXC68uB1AiKNIT+jiQbuQ==", "dev": true, "license": "MIT", "engines": { @@ -5502,15 +5123,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@npmcli/git/node_modules/ini": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", - "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, "node_modules/@npmcli/git/node_modules/isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", @@ -5657,9 +5269,9 @@ } }, "node_modules/@npmcli/promise-spawn": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz", - "integrity": "sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.3.tgz", + "integrity": "sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==", "license": "ISC", "dependencies": { "which": "^5.0.0" @@ -6075,9 +5687,9 @@ "optional": true }, "node_modules/@petamoriken/float16": { - "version": "3.8.7", - "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.7.tgz", - "integrity": "sha512-/Ri4xDDpe12NT6Ex/DRgHzLlobiQXEW/hmG08w1wj/YU7hLemk97c+zHQFp0iZQ9r7YqgLEXZR2sls4HxBf9NA==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz", + "integrity": "sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==", "license": "MIT" }, "node_modules/@pkgjs/parseargs": { @@ -6176,9 +5788,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.2.0.tgz", + "integrity": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==", "dev": true, "license": "MIT", "dependencies": { @@ -6366,6 +5978,21 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.0.tgz", + "integrity": "sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.34.8", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", @@ -6381,9 +6008,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.0.tgz", - "integrity": "sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.0.tgz", + "integrity": "sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==", "cpu": [ "riscv64" ], @@ -6437,6 +6064,21 @@ "linux" ] }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.0.tgz", + "integrity": "sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "peer": true + }, "node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.34.8", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", @@ -6480,13 +6122,13 @@ ] }, "node_modules/@rollup/wasm-node": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.41.0.tgz", - "integrity": "sha512-G+y2Uj8XvsPWMA+kVfKPcrhOWtcwKaCCr8KNZPiADfJV4+g4HUeJKuT8Fz71F7PNVD3t+xqX8rlpIULAlAJ+sQ==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.50.0.tgz", + "integrity": "sha512-mCzoNeR8ynLTHJ5VQ9J/GzSKPJjEC4/nCmGw2y3NSCZoc4sbSVdNe5x4S7+bda6QIEUrk6lR1FE7FEDo+p/u1Q==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.7" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -6499,21 +6141,14 @@ "fsevents": "~2.3.2" } }, - "node_modules/@rollup/wasm-node/node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@schematics/angular": { - "version": "19.2.13", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.2.13.tgz", - "integrity": "sha512-SOpK4AwH0isXo7Y2SkgXLyGLMw4GxWPAun6sCLiprmop4KlqKGGALn4xIW0yjq0s5GS0Vx0FFjz8bBfPkgnawA==", + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.2.15.tgz", + "integrity": "sha512-dz/eoFQKG09POSygpEDdlCehFIMo35HUM2rVV8lx9PfQEibpbGwl1NNQYEbqwVjTyCyD/ILyIXCWPE+EfTnG4g==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.2.13", - "@angular-devkit/schematics": "19.2.13", + "@angular-devkit/core": "19.2.15", + "@angular-devkit/schematics": "19.2.15", "jsonc-parser": "3.3.1" }, "engines": { @@ -6544,9 +6179,9 @@ } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.4.2.tgz", - "integrity": "sha512-F2ye+n1INNhqT0MW+LfUEvTUPc/nS70vICJcxorKl7/gV9CO39+EDCw+qHNKEqvsDWk++yGVKCbzK1qLPvmC8g==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.4.3.tgz", + "integrity": "sha512-fk2zjD9117RL9BjqEwF7fwv7Q/P9yGsMV4MUJZ/DocaQJ6+3pKr+syBq1owU5Q5qGw5CUbXzm+4yJ2JVRDQeSA==", "license": "Apache-2.0", "engines": { "node": "^18.17.0 || >=20.5.0" @@ -6616,21 +6251,45 @@ "dev": true, "license": "MIT" }, + "node_modules/@spz-loader/core": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@spz-loader/core/-/core-0.1.0.tgz", + "integrity": "sha512-atqn/DLy0xNkqRgz3l/5CD12y1M44JdjTmAFQYDKvzf0pIyj+NlJ/PeCRlSJQfXmZ2JndNOCpcGOFVldANf/EA==", + "license": "Apache-2.0", + "engines": { + "node": ">=16", + "pnpm": ">=8" + } + }, "node_modules/@thednp/event-listener": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@thednp/event-listener/-/event-listener-2.0.6.tgz", - "integrity": "sha512-6u55ydv4+2VHwHU8EJaJXa40QzZ7XOXVo74MMPnGCSzbl0q3yqHfQh8r0Sw/50rutHxecLVQBM/C9Fr0c+m+ew==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@thednp/event-listener/-/event-listener-2.0.10.tgz", + "integrity": "sha512-TH7YVKmoKg6GBLqZB+ETXObofcqJ/Tp5ycheolvYZMjLbMpzYf6MmOWTcBtx8+zrhWy8deV0hYkPvDFioDXdVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16", + "pnpm": ">=8.6.0" + } + }, + "node_modules/@thednp/position-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@thednp/position-observer/-/position-observer-1.1.0.tgz", + "integrity": "sha512-WgldP6Dltp2hJkSwp3+IVu05ClK/2IF33iftiQLb7UHcuO6eydjXiIUeOCClgCy3FDCGau2l/LRVg3oOO3Ytcg==", "dev": true, "license": "MIT", + "dependencies": { + "@thednp/shorty": "^2.0.11" + }, "engines": { "node": ">=16", "pnpm": ">=8.6.0" } }, "node_modules/@thednp/shorty": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@thednp/shorty/-/shorty-2.0.4.tgz", - "integrity": "sha512-7iMeqgiHOTjAWLcl/rbWHgquHnvfawT2gExdAa1TLjZMGcFjx00FZkg6CHuMjLh9ayBnlgabC4Dsx0DV+h9yqQ==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@thednp/shorty/-/shorty-2.0.11.tgz", + "integrity": "sha512-D+rLHt1l7c608yCuzXYJ75aDNWeMVbor+m1HO/XibhiWRbCpD8r6TUv3ayJI+feVfCnBNfrH+p6LSDn9l99uBA==", "dev": true, "license": "MIT", "engines": { @@ -6710,9 +6369,9 @@ "license": "MIT" }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "dev": true, "license": "MIT", "dependencies": { @@ -6751,17 +6410,10 @@ "@types/node": "*" } }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", "dev": true, "license": "MIT", "dependencies": { @@ -6791,16 +6443,16 @@ } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, "node_modules/@types/express": { - "version": "4.17.22", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.22.tgz", - "integrity": "sha512-eZUmSnhRX9YRSkplpz0N+k6NljUUn5l3EWZIKZvYzhvMphEuNiyyy1viH/ejgt66JWgALwC/gtSUAeQKtSwW/w==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6811,19 +6463,6 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { "version": "4.19.6", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", @@ -6852,9 +6491,9 @@ } }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "dev": true, "license": "MIT" }, @@ -6869,9 +6508,9 @@ } }, "node_modules/@types/jasmine": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.8.tgz", - "integrity": "sha512-u7/CnvRdh6AaaIzYjCgUuVbREFgulhX05Qtf6ZtW+aOcjCKKVvKgpkPYJBFTZSHtFBYimzU4zP0V2vrEsq9Wcg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.9.tgz", + "integrity": "sha512-8t4HtkW4wxiPVedMpeZ63n3vlWxEIquo/zc1Tm8ElU+SqVV7+D3Na2PWaJUp179AzTragMWVwkMv7mvty0NfyQ==", "dev": true, "license": "MIT" }, @@ -6892,23 +6531,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/mapbox__point-geometry": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", - "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==", - "license": "MIT" - }, - "node_modules/@types/mapbox__vector-tile": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", - "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", - "license": "MIT", - "dependencies": { - "@types/geojson": "*", - "@types/mapbox__point-geometry": "*", - "@types/pbf": "*" - } - }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", @@ -6923,18 +6545,18 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.15.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.21.tgz", - "integrity": "sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==", + "version": "22.18.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.0.tgz", + "integrity": "sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" } }, "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", "dev": true, "license": "MIT", "dependencies": { @@ -6954,12 +6576,6 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "license": "MIT" }, - "node_modules/@types/pbf": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", - "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==", - "license": "MIT" - }, "node_modules/@types/q": { "version": "0.0.32", "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", @@ -7002,9 +6618,9 @@ "license": "MIT" }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", "dev": true, "license": "MIT", "dependencies": { @@ -7023,9 +6639,9 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", "dev": true, "license": "MIT", "dependencies": { @@ -7076,60 +6692,110 @@ "@types/node": "*" } }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz", + "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + } + }, "node_modules/@vue/compiler-core": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", - "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.21.tgz", + "integrity": "sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.12", + "@babel/parser": "^7.28.3", + "@vue/shared": "3.5.21", "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" + "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", - "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.21.tgz", + "integrity": "sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-core": "3.5.21", + "@vue/shared": "3.5.21" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz", - "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==", + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.21.tgz", + "integrity": "sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@vue/compiler-core": "3.5.21", + "@vue/compiler-dom": "3.5.21", + "@vue/compiler-ssr": "3.5.21", + "@vue/shared": "3.5.21", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.18", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/magic-string": { + "version": "0.30.18", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz", + "integrity": "sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.12", - "@vue/compiler-dom": "3.5.12", - "@vue/compiler-ssr": "3.5.12", - "@vue/shared": "3.5.12", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.47", - "source-map-js": "^1.2.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz", - "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==", + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.21.tgz", + "integrity": "sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.12", - "@vue/shared": "3.5.12" + "@vue/compiler-dom": "3.5.21", + "@vue/shared": "3.5.21" } }, "node_modules/@vue/shared": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", - "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==", + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.21.tgz", + "integrity": "sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==", "license": "MIT" }, "node_modules/@webassemblyjs/ast": { @@ -7300,9 +6966,9 @@ "license": "BSD-3-Clause" }, "node_modules/@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", + "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -7329,9 +6995,9 @@ "license": "BSD-2-Clause" }, "node_modules/@zip.js/zip.js": { - "version": "2.7.52", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.52.tgz", - "integrity": "sha512-+5g7FQswvrCHwYKNMd/KFxZSObctLSsQOgqBSi0LzwHo3li9Eh1w5cF5ndjQw9Zbr3ajVnd2+XyiX85gAetx1Q==", + "version": "2.7.73", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.73.tgz", + "integrity": "sha512-I2UP8/rdQE5hTtVVL08B7P8XuwXiKuuMUPjNuFOVL/9b+8IsExR9S5jz2H58u0rJjU4M1BikLgqEMG8gZJZVBw==", "license": "BSD-3-Clause", "engines": { "bun": ">=0.7.0", @@ -7362,10 +7028,43 @@ "node": ">= 0.6" } }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -7415,9 +7114,9 @@ } }, "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "license": "MIT", "engines": { "node": ">= 14" @@ -7517,25 +7216,30 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", + "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { @@ -7724,12 +7428,15 @@ } }, "node_modules/autolinker": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-4.0.0.tgz", - "integrity": "sha512-fl5Kh6BmEEZx+IWBfEirnRUU5+cOiV0OK7PEt0RBKvJMJ8GaRseIOeDU3FKf4j3CE5HVefcjHmhYPOcaVt0bZw==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-4.1.5.tgz", + "integrity": "sha512-vEfYZPmvVOIuE567XBVCsx8SBgOYtjB2+S1iAaJ+HgH+DNjAcrHem2hmAeC9yaNGWayicv4yR+9UaJlkF3pvtw==", "license": "MIT", "dependencies": { - "tslib": "^2.3.0" + "tslib": "^2.8.1" + }, + "engines": { + "pnpm": ">=10.10.0" } }, "node_modules/autoprefixer": { @@ -7816,14 +7523,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "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==", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { @@ -7841,27 +7548,27 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "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==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "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==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" + "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -7960,39 +7667,6 @@ "node": ">=14.0.0" } }, - "node_modules/beasties/node_modules/entities": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", - "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/beasties/node_modules/htmlparser2": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", - "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.2.1", - "entities": "^6.0.0" - } - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -8084,6 +7758,19 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8123,14 +7810,15 @@ "license": "ISC" }, "node_modules/bootstrap.native": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/bootstrap.native/-/bootstrap.native-5.0.13.tgz", - "integrity": "sha512-SiiTxaK3LjuOjPaXEnDBQNY3w0t28Qdx6I8drortuFg6Ch3q6cWoOxlFHThcGOPewziVarQAA4WPE00GFQmbWQ==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/bootstrap.native/-/bootstrap.native-5.1.5.tgz", + "integrity": "sha512-sQdFng2Szpseyo1TlpG5pV+se4nbGeQWFXBemsPSnrVzd82ps9F6hti+lHFwcGgS80oIc54dY5ycOYJwUpQn3A==", "dev": true, "license": "MIT", "dependencies": { - "@thednp/event-listener": "^2.0.4", - "@thednp/shorty": "^2.0.0" + "@thednp/event-listener": "^2.0.10", + "@thednp/position-observer": "^1.1.0", + "@thednp/shorty": "^2.0.11" }, "engines": { "node": ">=16", @@ -8138,9 +7826,9 @@ } }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -8159,9 +7847,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", - "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "version": "4.25.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", + "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", "dev": true, "funding": [ { @@ -8179,8 +7867,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001716", - "electron-to-chromium": "^1.5.149", + "caniuse-lite": "^1.0.30001737", + "electron-to-chromium": "^1.5.211", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, @@ -8527,9 +8215,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001718", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", - "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", + "version": "1.0.30001739", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001739.tgz", + "integrity": "sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==", "dev": true, "funding": [ { @@ -8555,24 +8243,25 @@ "license": "Apache-2.0" }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.0.tgz", + "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==", "license": "MIT" }, "node_modules/charenc": { @@ -8624,6 +8313,26 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/cheerio/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, "node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", @@ -8640,20 +8349,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/chokidar/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -8732,22 +8427,10 @@ "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==", - "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==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.5.0.tgz", + "integrity": "sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==", "license": "MIT" }, "node_modules/cli-truncate/node_modules/string-width": { @@ -8767,21 +8450,6 @@ "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==", - "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": "4.1.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", @@ -8805,39 +8473,15 @@ "node": ">=12" } }, - "node_modules/cliui/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==", + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/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==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" } }, - "node_modules/cliui/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==", - "license": "MIT" - }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -8867,6 +8511,18 @@ "node": ">=8" } }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -8908,6 +8564,19 @@ "node": ">=6" } }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/code-block-writer": { "version": "13.0.3", "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", @@ -9003,20 +8672,21 @@ "license": "MIT" }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/color-support": { @@ -9096,9 +8766,9 @@ } }, "node_modules/compression": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", - "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", "dev": true, "license": "MIT", "dependencies": { @@ -9106,7 +8776,7 @@ "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", - "on-headers": "~1.0.2", + "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" }, @@ -9333,13 +9003,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.42.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.42.0.tgz", - "integrity": "sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==", + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.1.tgz", + "integrity": "sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.24.4" + "browserslist": "^4.25.3" }, "funding": { "type": "opencollective", @@ -9395,9 +9065,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -9454,9 +9124,9 @@ } }, "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -9482,9 +9152,9 @@ } }, "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -9568,9 +9238,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -9697,9 +9367,9 @@ } }, "node_modules/del/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -9838,19 +9508,13 @@ "node": ">=10" } }, - "node_modules/depcheck/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==", + "node_modules/depcheck/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/depcheck/node_modules/argparse": { @@ -9885,24 +9549,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/depcheck/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==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/depcheck/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==", - "license": "MIT" - }, "node_modules/depcheck/node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -9925,6 +9571,15 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, + "node_modules/depcheck/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/depcheck/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -9971,6 +9626,30 @@ "node": ">=8" } }, + "node_modules/depcheck/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/depcheck/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/depcheck/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -10000,6 +9679,18 @@ "node": ">=8" } }, + "node_modules/depcheck/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/depcheck/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -10017,6 +9708,15 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/depcheck/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, "node_modules/depcheck/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -10196,10 +9896,13 @@ } }, "node_modules/dompurify": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz", - "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==", - "license": "(MPL-2.0 OR Apache-2.0)" + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } }, "node_modules/domutils": { "version": "3.2.2", @@ -10252,9 +9955,9 @@ "license": "MIT" }, "node_modules/earcut": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", - "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", + "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", "license": "ISC" }, "node_modules/eastasianwidth": { @@ -10274,13 +9977,6 @@ "safer-buffer": "^2.1.0" } }, - "node_modules/ecc-jsbn/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true, - "license": "MIT" - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -10289,9 +9985,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.155", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.155.tgz", - "integrity": "sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==", + "version": "1.5.212", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.212.tgz", + "integrity": "sha512-gE7ErIzSW+d8jALWMcOIgf+IB6lpfsg6NwOhPVwKzDtN2qcBix47vlin4yzSregYDxTCXOUqAZjVY/Z3naS7ww==", "dev": true, "license": "ISC" }, @@ -10340,23 +10036,10 @@ "iconv-lite": "^0.6.2" } }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "dev": true, "license": "MIT", "dependencies": { @@ -10364,13 +10047,12 @@ } }, "node_modules/engine.io": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", - "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz", + "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==", "dev": true, "license": "MIT", "dependencies": { - "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", "accepts": "~1.3.4", @@ -10395,10 +10077,28 @@ "node": ">=10.0.0" } }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "dev": true, "license": "MIT", "dependencies": { @@ -10410,13 +10110,16 @@ } }, "node_modules/ent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.1.tgz", - "integrity": "sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.2.tgz", + "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==", "dev": true, "license": "MIT", "dependencies": { - "punycode": "^1.4.1" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "punycode": "^1.4.1", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -10505,9 +10208,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "dev": true, "license": "MIT" }, @@ -10812,6 +10515,53 @@ "node": ">=0.8.x" } }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -10942,6 +10692,16 @@ "node": ">= 0.8" } }, + "node_modules/express/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/express/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -11050,20 +10810,6 @@ "dev": true, "license": "MIT" }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -11131,10 +10877,20 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", - "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", - "license": "MIT" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, "node_modules/fastparse": { "version": "1.1.2", @@ -11144,9 +10900,9 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, "license": "ISC", "dependencies": { @@ -11167,10 +10923,13 @@ } }, "node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -11298,16 +11057,16 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "dev": true, "funding": [ { @@ -11326,12 +11085,12 @@ } }, "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -11366,6 +11125,29 @@ "node": ">= 0.12" } }, + "node_modules/form-data/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/form-data/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -11391,13 +11173,13 @@ } }, "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/from": { @@ -11408,9 +11190,9 @@ "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", "dev": true, "license": "MIT", "dependencies": { @@ -11475,12 +11257,6 @@ "node": ">=6.9.0" } }, - "node_modules/geographiclib-geodesic": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/geographiclib-geodesic/-/geographiclib-geodesic-2.1.1.tgz", - "integrity": "sha512-lkd8EUkPSByobWu9BPMHTdYA5AUZxOa8McmUNtBE9KrvUJEvSADnN6gTDmhXbi6NzdA16LtWLpSxLE/lIIRhyA==", - "license": "MIT" - }, "node_modules/geojson-vt": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", @@ -11516,9 +11292,9 @@ } }, "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==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.1.tgz", + "integrity": "sha512-R1QfovbPsKmosqTnPoRFiJ7CF9MLRgb53ChvMZm+r4p76/+8yKDy17qLL2PKInORy2RkZZekuK0efYgmzTkXyQ==", "license": "MIT", "engines": { "node": ">=18" @@ -11567,12 +11343,16 @@ } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11589,21 +11369,21 @@ } }, "node_modules/gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", + "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", "license": "MIT" }, "node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", + "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", "dev": true, "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.0.3", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" @@ -11631,6 +11411,23 @@ "node": ">=10.13.0" } }, + "node_modules/glob-to-regex.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.0.1.tgz", + "integrity": "sha512-CG/iEvgQqfzoVsMUbxSJcwbG2JwyZ3naEqPkeltwl0BSS8Bp83k3xlGms+0QdWFUAwV+uvo80wNswKF6FWEkKg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", @@ -11652,7 +11449,7 @@ "node": ">=0.10.0" } }, - "node_modules/global-modules/node_modules/global-prefix": { + "node_modules/global-prefix": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", @@ -11668,13 +11465,13 @@ "node": ">=0.10.0" } }, - "node_modules/global-modules/node_modules/ini": { + "node_modules/global-prefix/node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "license": "ISC" }, - "node_modules/global-modules/node_modules/which": { + "node_modules/global-prefix/node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", @@ -11686,66 +11483,19 @@ "which": "bin/which" } }, - "node_modules/global-prefix": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz", - "integrity": "sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==", - "license": "MIT", - "dependencies": { - "ini": "^4.1.3", - "kind-of": "^6.0.3", - "which": "^4.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/global-prefix/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==", - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", "dev": true, "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" + "unicorn-magic": "^0.3.0" }, "engines": { "node": ">=18" @@ -11901,13 +11651,12 @@ } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-property-descriptors": { @@ -11936,6 +11685,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -11991,6 +11756,13 @@ "wbuf": "^1.1.0" } }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -12018,9 +11790,9 @@ } }, "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", "dev": true, "funding": [ { @@ -12042,9 +11814,9 @@ "license": "MIT" }, "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -12057,8 +11829,21 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/http-auth": { @@ -12138,9 +11923,9 @@ } }, "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", "dev": true, "license": "MIT" }, @@ -12190,16 +11975,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/http-proxy-middleware/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -12229,6 +12004,16 @@ "node": ">= 14" } }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8.12.0" + } + }, "node_modules/hyperdyperid": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", @@ -12240,9 +12025,9 @@ } }, "node_modules/i18next": { - "version": "23.16.0", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.16.0.tgz", - "integrity": "sha512-Ni3CG6c14teOogY19YNRl+kYaE/Rb59khy0VyHVn4uOZ97E2E/Yziyi6r3C3s9+wacjdLZiq/LLYyx+Cgd+FCw==", + "version": "23.16.8", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.16.8.tgz", + "integrity": "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==", "dev": true, "funding": [ { @@ -12264,12 +12049,12 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -12309,9 +12094,10 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -12366,16 +12152,16 @@ "license": "MIT" }, "node_modules/immutable": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.2.tgz", - "integrity": "sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", "dev": true, "license": "MIT" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -12416,12 +12202,12 @@ "license": "ISC" }, "node_modules/ini": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/injection-js": { @@ -12435,14 +12221,10 @@ } }, "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==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, "engines": { "node": ">= 12" } @@ -12646,16 +12428,32 @@ } }, "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "license": "MIT", "dependencies": { - "isobject": "^3.0.1" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-stream": { @@ -12723,9 +12521,9 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, "license": "MIT" }, @@ -12817,29 +12615,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", @@ -12866,9 +12641,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -12880,9 +12655,9 @@ } }, "node_modules/jackspeak": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", - "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -12896,23 +12671,23 @@ } }, "node_modules/jasmine": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.7.1.tgz", - "integrity": "sha512-E/4fkRNy/9ALz6z3Z3/tYXFAohoznVy7In9FWutG2fqBSkILJHFzbgZtHJUw5UrL3jgUQ4sdGYOVZ5KpSXYjGw==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.10.0.tgz", + "integrity": "sha512-v4FojO8cXQdx15mJXovGhjJOvyIcVf7AC+H0ZahnfLk52vUbwuLxjVgbikc95yLmgwKQsFT47/FGQ3dOrWVxtQ==", "dev": true, "license": "MIT", "dependencies": { "glob": "^10.2.2", - "jasmine-core": "~5.7.0" + "jasmine-core": "~5.10.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/jasmine-core": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.7.1.tgz", - "integrity": "sha512-QnurrtpKsPoixxG2R3d1xP0St/2kcX5oTZyDyQJMY+Vzi/HUlu1kGm+2V8Tz+9lV991leB1l0xcsyz40s9xOOw==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.10.0.tgz", + "integrity": "sha512-MrChbWV5LBo+EaeKwTM1eZ6oYSz1brvFExnRafraEkJkbJ9evbUxABhnIgGQimhpMxhg+BD6QmOvb/e3NXsNdg==", "dev": true, "license": "MIT" }, @@ -13028,16 +12803,6 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -13055,9 +12820,9 @@ } }, "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, "license": "MIT", "bin": { @@ -13084,15 +12849,16 @@ } }, "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==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true, "license": "MIT" }, "node_modules/jsep": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.9.tgz", - "integrity": "sha512-i1rBX5N7VPl0eYb6+mHNp52sEuaS2Wi8CDYx1X5sn9naevL78+265XJqy1qENEk7mRKwS06NHpUqiBwR7qeodw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", "license": "MIT", "engines": { "node": ">= 10.16.0" @@ -13152,13 +12918,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/json-stable-stringify/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, "node_modules/json-stringify-pretty-compact": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", @@ -13191,9 +12950,9 @@ "license": "MIT" }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, "license": "MIT", "dependencies": { @@ -13264,6 +13023,13 @@ "setimmediate": "^1.0.5" } }, + "node_modules/jszip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/jszip/node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -13378,9 +13144,9 @@ } }, "node_modules/karma-coverage/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -13490,26 +13256,20 @@ "source-map-support": "^0.5.5" } }, - "node_modules/karma/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==", + "node_modules/karma/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/karma/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -13554,26 +13314,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/karma/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/karma/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/karma/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -13639,6 +13379,32 @@ "node": "*" } }, + "node_modules/karma/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/karma/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/karma/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -13664,14 +13430,17 @@ "node": ">=8" } }, - "node_modules/karma/node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "node_modules/karma/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=14.14" + "node": ">=8" } }, "node_modules/karma/node_modules/wrap-ansi": { @@ -13737,6 +13506,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -13753,20 +13523,20 @@ } }, "node_modules/ktx-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.0.0.tgz", - "integrity": "sha512-Z31kVizz4DF/6vo9YiSYVBhuXAfyQy9bGxlW3+mB5OELoZjfXVZQpRoctsx8IEDKxBd6SagXKo7qRvu38i8Jfg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.1.0.tgz", + "integrity": "sha512-mKp3y+FaYgR7mXWAbyyzpa/r1zDWeaunH+INJO4fou3hb45XuNSwar+7llrRyvpMWafxSIi99RNFJ05MHedaJQ==", "license": "MIT" }, "node_modules/launch-editor": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", - "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.11.1.tgz", + "integrity": "sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==", "dev": true, "license": "MIT", "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" } }, "node_modules/lerc": { @@ -13919,42 +13689,245 @@ "immediate": "~3.0.5" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/listr2": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", - "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/listr2": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", + "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": ">=18.0.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.5.0.tgz", + "integrity": "sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==", + "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==", + "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==", + "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/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==", + "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/lit": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", + "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.3.0", + "lit-html": "^2.8.0" + } + }, + "node_modules/lit-element": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", + "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.1.0", + "@lit/reactive-element": "^1.3.0", + "lit-html": "^2.8.0" + } + }, + "node_modules/lit-html": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", + "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/lmdb": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.2.6.tgz", + "integrity": "sha512-SuHqzPl7mYStna8WRotY8XX/EUZBjjv3QyKIByeCLFfC9uXT/OIHByEcA07PzbMfQAM0KYJtLgtpMRlIe5dErQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "msgpackr": "^1.11.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.5.3", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.2.6", + "@lmdb/lmdb-darwin-x64": "3.2.6", + "@lmdb/lmdb-linux-arm": "3.2.6", + "@lmdb/lmdb-linux-arm64": "3.2.6", + "@lmdb/lmdb-linux-x64": "3.2.6", + "@lmdb/lmdb-win32-x64": "3.2.6" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "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": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", "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", + "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": ">=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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==", "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/ansi-styles": { + "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==", @@ -13966,27 +13939,19 @@ "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==", - "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==", + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.5.0.tgz", + "integrity": "sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==", "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==", + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "get-east-asian-width": "^1.3.1" }, "engines": { "node": ">=18" @@ -13995,22 +13960,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/strip-ansi": { + "node_modules/log-update/node_modules/slice-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/listr2/node_modules/wrap-ansi": { + "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==", + "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/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==", @@ -14027,271 +14010,389 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", - "license": "BSD-3-Clause", + "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, + "license": "Apache-2.0", "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" } }, - "node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "license": "BSD-3-Clause", + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/loglevel-plugin-prefix": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", + "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" + "yallist": "^3.0.2" } }, - "node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "license": "BSD-3-Clause", + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/luxon": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.1.tgz", + "integrity": "sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/macos-release": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.1.tgz", + "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", "dependencies": { - "@types/trusted-types": "^2.0.2" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/lmdb": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.2.6.tgz", - "integrity": "sha512-SuHqzPl7mYStna8WRotY8XX/EUZBjjv3QyKIByeCLFfC9uXT/OIHByEcA07PzbMfQAM0KYJtLgtpMRlIe5dErQ==", + "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, - "hasInstallScript": true, "license": "MIT", - "optional": true, "dependencies": { - "msgpackr": "^1.11.2", - "node-addon-api": "^6.1.0", - "node-gyp-build-optional-packages": "5.2.2", - "ordered-binary": "^1.5.3", - "weak-lru-cache": "^1.2.2" + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/make-fetch-happen": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/mapbox-to-css-font": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-3.2.0.tgz", + "integrity": "sha512-kvsEfzvLik34BiFj+S19bv5d70l9qSdkUzrq99dvZ9d5POaLyB4vJMQmq3BoJ5D6lFG1GYnMM7o7cm5Jh8YEEg==", + "license": "BSD-2-Clause" + }, + "node_modules/maplibre-gl": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.7.0.tgz", + "integrity": "sha512-Hs+Y0qbR1iZo+07WuSbYUCOOUK45pPRzA3+7Pes8Y9jCcAqZendIMcVP6O99CWD1V/znh3qHgaZOAi3jlVxwcg==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^1.1.0", + "@mapbox/tiny-sdf": "^2.0.7", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^2.0.4", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/maplibre-gl-style-spec": "^23.3.0", + "@maplibre/vt-pbf": "^4.0.3", + "@types/geojson": "^7946.0.16", + "@types/geojson-vt": "3.2.5", + "@types/supercluster": "^7.1.3", + "earcut": "^3.0.2", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.4", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^4.0.1", + "potpack": "^2.1.0", + "quickselect": "^3.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0" }, - "bin": { - "download-lmdb-prebuilds": "bin/download-prebuilds.js" + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" }, - "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.2.6", - "@lmdb/lmdb-darwin-x64": "3.2.6", - "@lmdb/lmdb-linux-arm": "3.2.6", - "@lmdb/lmdb-linux-arm64": "3.2.6", - "@lmdb/lmdb-linux-x64": "3.2.6", - "@lmdb/lmdb-win32-x64": "3.2.6" + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" } }, - "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/marked": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-7.0.3.tgz", + "integrity": "sha512-ev2uM40p0zQ/GbvqotfKcSWEa59fJwluGZj5dcaUOwDRrB1F3dncdXy8NWUApk4fi8atU3kTBOwjyjZ0ud0dxw==", "dev": true, "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, "engines": { - "node": ">=6.11.5" + "node": ">= 16" } }, - "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==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, "license": "MIT", "engines": { - "node": ">= 12.13.0" + "node": ">= 0.4" } }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "license": "MIT", + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "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==", + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6" } }, - "node_modules/log-symbols/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==", - "license": "MIT", + "node_modules/memfs": { + "version": "4.38.2", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.38.2.tgz", + "integrity": "sha512-FpWsVHpAkoSh/LfY1BgAl72BVd374ooMRtDi2VqzBycX4XEfvC0XKACCe0C9VRZoYq5viuoyTv6lYXZ/Q7TrLQ==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "color-convert": "^2.0.1" + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", + "tslib": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">= 4.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/streamich" } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">= 8" } }, - "node_modules/log-symbols/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==", + "node_modules/mersenne-twister": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mersenne-twister/-/mersenne-twister-1.1.0.tgz", + "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==", "license": "MIT" }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/meshoptimizer": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.23.0.tgz", + "integrity": "sha512-zAZcfhHE3wBbwEN8MfCMI9PKRyOpz8491wcR2dxkv3IlNwDZrq2hEs5JZVtzfBrmjWhBZZtZZUO0OBSNFq5iUQ==", + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/mgrs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mgrs/-/mgrs-1.0.0.tgz", + "integrity": "sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA==", + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, - "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==", + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "license": "MIT", - "dependencies": { - "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": ">=18" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "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==", + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, "license": "MIT", - "dependencies": { - "environment": "^1.0.0" + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4.0.0" } }, - "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==", + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">= 0.6" } }, - "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==", + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "mime-db": "^1.54.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">= 0.6" } }, - "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==", - "license": "MIT" + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "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==", + "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==", "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, "engines": { "node": ">=18" }, @@ -14299,1104 +14400,1212 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { - "node": ">=18" + "node": ">= 12.13.0" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "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==", - "license": "MIT", + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "dev": true, + "license": "ISC", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": ">=18" + "node": "20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "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==", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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==", + "license": "ISC", "dependencies": { - "ansi-regex": "^6.0.1" + "minipass": "^7.0.3" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=16 || 14 >=14.17" } }, - "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==", + "node_modules/minipass-fetch": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz", + "integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==", "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" }, "engines": { - "node": ">=18" + "node": "^18.17.0 || >=20.5.0" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "optionalDependencies": { + "encoding": "^0.1.13" } }, - "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, - "license": "Apache-2.0", + "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==", + "license": "ISC", "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" + "minipass": "^3.0.0" }, "engines": { - "node": ">=8.0" + "node": ">= 8" } }, - "node_modules/loglevel": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", - "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" + "engines": { + "node": ">=8" } }, - "node_modules/loglevel-plugin-prefix": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", - "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", - "dev": true, - "license": "MIT" + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", - "license": "Apache-2.0" + "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==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "license": "ISC", "dependencies": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true, - "license": "MIT" + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, - "node_modules/luxon": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.6.1.tgz", - "integrity": "sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==", - "license": "MIT", + "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==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/macos-release": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.1.tgz", - "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" } }, - "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/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "license": "MIT", "dependencies": { - "semver": "^7.5.3" + "minimist": "^1.2.6" }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/modern-normalize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz", + "integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==", + "license": "MIT", + "optional": true, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "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==", "dev": true, - "license": "ISC" - }, - "node_modules/make-fetch-happen": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", - "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^3.0.0", - "cacache": "^19.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "ssri": "^12.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/make-fetch-happen/node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": "*" } }, - "node_modules/map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", + "node_modules/morgan": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.1.tgz", + "integrity": "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==", "dev": true, - "license": "MIT" - }, - "node_modules/mapbox-to-css-font": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-3.2.0.tgz", - "integrity": "sha512-kvsEfzvLik34BiFj+S19bv5d70l9qSdkUzrq99dvZ9d5POaLyB4vJMQmq3BoJ5D6lFG1GYnMM7o7cm5Jh8YEEg==", - "license": "BSD-2-Clause" - }, - "node_modules/maplibre-gl": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.5.0.tgz", - "integrity": "sha512-p8AOPuzzqn1ZA9gcXxKw0IED715we/2Owa/YUr6PANmgMvNMe/JG+V/C1hRra43Wm62Biz+Aa8AgbOLJimA8tA==", - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^2.0.6", - "@mapbox/unitbezier": "^0.0.1", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "@maplibre/maplibre-gl-style-spec": "^23.2.2", - "@types/geojson": "^7946.0.16", - "@types/geojson-vt": "3.2.5", - "@types/mapbox__point-geometry": "^0.1.4", - "@types/mapbox__vector-tile": "^1.3.4", - "@types/pbf": "^3.0.5", - "@types/supercluster": "^7.1.3", - "earcut": "^3.0.1", - "geojson-vt": "^4.0.2", - "gl-matrix": "^3.4.3", - "global-prefix": "^4.0.0", - "kdbush": "^4.0.2", - "murmurhash-js": "^1.0.0", - "pbf": "^3.3.0", - "potpack": "^2.0.0", - "quickselect": "^3.0.0", - "supercluster": "^8.0.1", - "tinyqueue": "^3.0.0", - "vt-pbf": "^3.1.3" + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.1.0" }, "engines": { - "node": ">=16.14.0", - "npm": ">=8.1.0" - }, - "funding": { - "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + "node": ">= 0.8.0" } }, - "node_modules/maplibre-gl/node_modules/pbf": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz", - "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==", - "license": "BSD-3-Clause", + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", "dependencies": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - }, - "bin": { - "pbf": "bin/pbf" + "ms": "2.0.0" } }, - "node_modules/marked": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-7.0.3.tgz", - "integrity": "sha512-ev2uM40p0zQ/GbvqotfKcSWEa59fJwluGZj5dcaUOwDRrB1F3dncdXy8NWUApk4fi8atU3kTBOwjyjZ0ud0dxw==", + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 16" - } + "license": "MIT" }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "node_modules/md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "license": "BSD-3-Clause", - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "node_modules/msgpackr": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.5.tgz", + "integrity": "sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "optional": true, + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" } }, - "node_modules/memfs": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.17.2.tgz", - "integrity": "sha512-NgYhCOWgovOXSzvYgUW0LQ7Qy72rWQMGGFJDoWg4G30RHd3z77VbYdtJ4fembJXBy8pMIUA31XNAupobOQlwdg==", + "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, - "license": "Apache-2.0", + "hasInstallScript": true, + "license": "MIT", + "optional": true, "dependencies": { - "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", - "tslib": "^2.0.0" + "node-gyp-build-optional-packages": "5.2.2" }, - "engines": { - "node": ">= 4.0.0" + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "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/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, + "node_modules/multimatch/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/mersenne-twister": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mersenne-twister/-/mersenne-twister-1.1.0.tgz", - "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==", - "license": "MIT" - }, - "node_modules/meshoptimizer": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.23.0.tgz", - "integrity": "sha512-zAZcfhHE3wBbwEN8MfCMI9PKRyOpz8491wcR2dxkv3IlNwDZrq2hEs5JZVtzfBrmjWhBZZtZZUO0OBSNFq5iUQ==", - "license": "MIT" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, + "node_modules/multimatch/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/mgrs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mgrs/-/mgrs-1.0.0.tgz", - "integrity": "sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA==", - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/multimatch/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "license": "MIT", "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/multimatch/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8.6" + "node": "*" } }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "license": "ISC", "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "bin": { - "mime": "cli.js" + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "mime-db": "1.52.0" + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" }, "engines": { - "node": ">= 0.6" + "node": ">= 4.4.x" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 0.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==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "node_modules/neotraverse": { + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", "dev": true, "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "node": ">= 10" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "license": "ISC" }, - "node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "node_modules/ng-packagr": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-19.2.2.tgz", + "integrity": "sha512-dFuwFsDJMBSd1YtmLLcX5bNNUCQUlRqgf34aXA+79PmkOP+0eF8GP2949wq3+jMjmFTNm80Oo8IUYiSLwklKCQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@rollup/plugin-json": "^6.1.0", + "@rollup/wasm-node": "^4.24.0", + "ajv": "^8.17.1", + "ansi-colors": "^4.1.3", + "browserslist": "^4.22.1", + "chokidar": "^4.0.1", + "commander": "^13.0.0", + "convert-source-map": "^2.0.0", + "dependency-graph": "^1.0.0", + "esbuild": "^0.25.0", + "fast-glob": "^3.3.2", + "find-cache-dir": "^3.3.2", + "injection-js": "^2.4.0", + "jsonc-parser": "^3.3.1", + "less": "^4.2.0", + "ora": "^5.1.0", + "piscina": "^4.7.0", + "postcss": "^8.4.47", + "rxjs": "^7.8.1", + "sass": "^1.81.0" + }, + "bin": { + "ng-packagr": "cli/main.js" }, "engines": { - "node": "20 || >=22" + "node": "^18.19.1 || >=20.11.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "optionalDependencies": { + "rollup": "^4.24.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^19.0.0 || ^19.1.0-next.0 || ^19.2.0-next.0", + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.5 <5.9" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/ng-packagr/node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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": ">=18" } }, - "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==", - "license": "ISC", + "node_modules/ng-packagr/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, + "license": "MIT" + }, + "node_modules/ng-packagr/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/minipass-fetch": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz", - "integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==", + "node_modules/ng-packagr/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "license": "MIT", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^3.0.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "node": ">=8" } }, - "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==", - "license": "ISC", + "node_modules/ng-packagr/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", + "node_modules/ng-packagr/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "semver": "^6.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "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==", - "license": "ISC", + "node_modules/ng-packagr/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", + "node_modules/ng-packagr/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, - "node_modules/minipass-pipeline/node_modules/yallist": { + "node_modules/ng-packagr/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "license": "ISC", + "node_modules/ng-packagr/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "find-up": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/ng-packagr/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/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", + "optional": true + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } }, - "node_modules/minizlib": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", - "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "node_modules/node-gyp": { + "version": "11.4.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.4.2.tgz", + "integrity": "sha512-3gD+6zsrLQH7DyYOUIutaauuXrcyxeTPyQuZQCQoNPZMHMMS5m4y0xclNpvYzoK3VNzuyxT6eF4mkIL4WSZ1eQ==", "license": "MIT", "dependencies": { - "minipass": "^7.1.2" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "tar": "^7.4.3", + "tinyglobby": "^0.2.12", + "which": "^5.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">= 18" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "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": "MIT", + "optional": true, "dependencies": { - "minimist": "^1.2.6" + "detect-libc": "^2.0.1" }, "bin": { - "mkdirp": "bin/cmd.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/modern-normalize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz", - "integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==", + "node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "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==", + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "license": "MIT", - "optional": true, + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "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==", - "dev": true, - "license": "MIT", + "node_modules/node-gyp/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, "engines": { - "node": "*" + "node": ">=18" } }, - "node_modules/morgan": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", - "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", - "dev": true, - "license": "MIT", + "node_modules/node-gyp/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "license": "ISC", "dependencies": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.2" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">= 0.8.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/morgan/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, - "node_modules/morgan/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, "license": "MIT" }, - "node_modules/mrmime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", - "dev": true, - "license": "MIT", + "node_modules/nopt": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", + "license": "ISC", + "dependencies": { + "abbrev": "^3.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, "engines": { - "node": ">=10" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/msgpackr": { - "version": "1.11.4", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.4.tgz", - "integrity": "sha512-uaff7RG9VIC4jacFW9xzL3jc0iM32DNHe4jYVycBcjUePT/Klnfj7pqtWJt9khvDFizmjN2TlYniYmSS2LIaZg==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "license": "MIT", - "optional": true, - "optionalDependencies": { - "msgpackr-extract": "^3.0.2" + "engines": { + "node": ">=0.10.0" } }, - "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==", + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "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" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "license": "MIT", + "node_modules/nosleep.js": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", + "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==", + "license": "MIT" + }, + "node_modules/npm-bundled": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", + "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", + "license": "ISC", "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" + "npm-normalize-package-bin": "^4.0.0" }, - "bin": { - "multicast-dns": "cli.js" + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", - "license": "MIT", + "node_modules/npm-install-checks": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.2.tgz", + "integrity": "sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==", + "license": "BSD-2-Clause", "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" + "semver": "^7.1.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/multimatch/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", + "node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", + "license": "ISC", "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "license": "MIT", + "node_modules/npm-package-arg": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz", + "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==", + "license": "ISC", + "dependencies": { + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" + }, "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/multimatch/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==", - "license": "MIT", + "node_modules/npm-packlist": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-9.0.0.tgz", + "integrity": "sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==", + "license": "ISC", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "ignore-walk": "^7.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/multimatch/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/npm-pick-manifest": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", + "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" }, "engines": { - "node": "*" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/murmurhash-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", - "license": "MIT" - }, - "node_modules/mute-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", - "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "node_modules/npm-registry-fetch": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz", + "integrity": "sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==", "license": "ISC", + "dependencies": { + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" + }, "engines": { "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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" }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "*" } }, - "node_modules/needle": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", - "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, "engines": { - "node": ">= 4.4.x" + "node": ">=0.10.0" } }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.4" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true, "license": "MIT" }, - "node_modules/neotraverse": { - "version": "0.6.18", - "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", - "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" + "node_modules/ogc-schemas": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ogc-schemas/-/ogc-schemas-2.6.1.tgz", + "integrity": "sha512-nqtPUIQA8dccej34iWQfgnboGNHVJVCBf40nZMayFuaV3hV5yS9sY21tlK82PfAeo6DadiePP+xQCLjvt968rA==", + "dependencies": { + "jsonix": ">=2.4.0", + "w3c-schemas": ">=1.4.0" } }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "license": "ISC" + "node_modules/ol": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/ol/-/ol-10.6.1.tgz", + "integrity": "sha512-xp174YOwPeLj7c7/8TCIEHQ4d41tgTDDhdv6SqNdySsql5/MaFJEJkjlsYcvOPt7xA6vrum/QG4UdJ0iCGT1cg==", + "license": "BSD-2-Clause", + "dependencies": { + "@types/rbush": "4.0.0", + "earcut": "^3.0.0", + "geotiff": "^2.1.3", + "pbf": "4.0.1", + "rbush": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/openlayers" + } }, - "node_modules/ng-packagr": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-19.2.2.tgz", - "integrity": "sha512-dFuwFsDJMBSd1YtmLLcX5bNNUCQUlRqgf34aXA+79PmkOP+0eF8GP2949wq3+jMjmFTNm80Oo8IUYiSLwklKCQ==", + "node_modules/ol-mapbox-style": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-12.6.1.tgz", + "integrity": "sha512-bpN7ZvqbQX/JZnru0MTQgPIAUBAgPOvYDj/9BoJoqCvFYjHxCpRFDQJEoD10PLw3vGHNJFYBUvY82yfW26otQg==", + "license": "BSD-2-Clause", + "dependencies": { + "@maplibre/maplibre-gl-style-spec": "^23.1.0", + "mapbox-to-css-font": "^3.1.2" + }, + "peerDependencies": { + "ol": "*" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, "license": "MIT", "dependencies": { - "@rollup/plugin-json": "^6.1.0", - "@rollup/wasm-node": "^4.24.0", - "ajv": "^8.17.1", - "ansi-colors": "^4.1.3", - "browserslist": "^4.22.1", - "chokidar": "^4.0.1", - "commander": "^13.0.0", - "convert-source-map": "^2.0.0", - "dependency-graph": "^1.0.0", - "esbuild": "^0.25.0", - "fast-glob": "^3.3.2", - "find-cache-dir": "^3.3.2", - "injection-js": "^2.4.0", - "jsonc-parser": "^3.3.1", - "less": "^4.2.0", - "ora": "^5.1.0", - "piscina": "^4.7.0", - "postcss": "^8.4.47", - "rxjs": "^7.8.1", - "sass": "^1.81.0" - }, - "bin": { - "ng-packagr": "cli/main.js" + "ee-first": "1.1.1" }, "engines": { - "node": "^18.19.1 || >=20.11.1" - }, - "optionalDependencies": { - "rollup": "^4.24.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^19.0.0 || ^19.1.0-next.0 || ^19.2.0-next.0", - "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", - "tslib": "^2.3.0", - "typescript": ">=5.5 <5.9" - }, - "peerDependenciesMeta": { - "tailwindcss": { - "optional": true - } + "node": ">= 0.8" } }, - "node_modules/ng-packagr/node_modules/commander": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">= 0.8" } }, - "node_modules/ng-packagr/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==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "wrappy": "1" + } }, - "node_modules/ng-packagr/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "license": "MIT", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "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": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/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==", + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/opensearch-browser": { + "version": "2.0.0-alpha.7", + "resolved": "https://registry.npmjs.org/opensearch-browser/-/opensearch-browser-2.0.0-alpha.7.tgz", + "integrity": "sha512-31LfpNh3+KuL2xKl3BiLhiMM9zWMYHLXuKWet9Z/yBV5m4n/EWemh4OBneu7zwEbWXoVwpasy++9VWO/GvOCGQ==", + "license": "MIT", + "dependencies": { + "event-emitter": "^0.3.5", + "isomorphic-fetch": "^3.0.0", + "url-parse": "^1.4.7" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/ng-packagr/node_modules/make-dir": { + "node_modules/ora/node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "restore-cursor": "^3.1.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, + "node_modules/ora/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" @@ -15405,1323 +15614,1505 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-packagr/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, + "node_modules/ora/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { "node": ">=8" } }, - "node_modules/ng-packagr/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/ora/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, - "node_modules/ng-packagr/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/ng-packagr/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/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==", + "node_modules/ordered-binary": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.0.tgz", + "integrity": "sha512-IQh2aMfMIDbPjI/8a3Edr+PiOpcsB7yo8NdW7aHWVaoR/pcDldunMvnnwbk/auPGqmKeAdxtZl7MHX/QmPwhvQ==", "dev": true, "license": "MIT", "optional": true }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/os-name": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "dev": true, "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "macos-release": "^2.5.0", + "windows-release": "^4.0.0" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "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": "(BSD-3-Clause OR GPL-2.0)", + "license": "MIT", "engines": { - "node": ">= 6.13.0" + "node": ">=0.10.0" } }, - "node_modules/node-gyp": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.2.0.tgz", - "integrity": "sha512-T0S1zqskVUSxcsSTkAsLc7xCycrRYmtDHadDinzocrThjyQCn5kMlEBSj6H4qDbgsIOSLmmlRIeb0lZXj+UArA==", + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^14.0.3", - "nopt": "^8.0.0", - "proc-log": "^5.0.0", - "semver": "^7.3.5", - "tar": "^7.4.3", - "tinyglobby": "^0.2.12", - "which": "^5.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "yocto-queue": "^1.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "detect-libc": "^2.0.1" + "p-limit": "^4.0.0" }, - "bin": { - "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/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "license": "BlueOak-1.0.0", "engines": { - "node": ">=18" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "license": "ISC", + "node_modules/p-map": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-gyp/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "dev": true, "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" }, "engines": { - "node": ">=10" + "node": ">=16.17" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-gyp/node_modules/tar": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", - "license": "ISC", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", - "yallist": "^5.0.0" - }, + "node_modules/p-retry/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": ">=18" + "node": ">= 4" } }, - "node_modules/node-gyp/node_modules/which": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", - "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/pacote": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-20.0.0.tgz", + "integrity": "sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==", "license": "ISC", "dependencies": { - "isexe": "^3.1.1" + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" }, "bin": { - "node-which": "bin/which.js" + "pacote": "bin/index.js" }, "engines": { "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/node-gyp/node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "license": "BlueOak-1.0.0", + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, "engines": { - "node": ">=18" + "node": ">=6" } }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, + "node_modules/parse-headers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==", "license": "MIT" }, - "node_modules/nopt": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", - "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", - "license": "ISC", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { - "abbrev": "^3.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/nosleep.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", - "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==", - "license": "MIT" + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, - "node_modules/npm-bundled": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", - "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", - "license": "ISC", + "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", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "license": "MIT", "dependencies": { - "npm-normalize-package-bin": "^4.0.0" + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" }, - "engines": { - "node": "^18.17.0 || >=20.5.0" + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/npm-install-checks": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.1.tgz", - "integrity": "sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==", - "license": "BSD-2-Clause", + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", "dependencies": { - "semver": "^7.1.1" + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/npm-normalize-package-bin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", - "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", - "license": "ISC", + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">= 0.8" } }, - "node_modules/npm-package-arg": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz", - "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==", - "license": "ISC", + "node_modules/patch-package": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", + "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", + "dev": true, + "license": "MIT", "dependencies": { - "hosted-git-info": "^8.0.0", - "proc-log": "^5.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^6.0.0" + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^4.1.2", + "ci-info": "^3.7.0", + "cross-spawn": "^7.0.3", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^9.0.0", + "json-stable-stringify": "^1.0.2", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.6", + "open": "^7.4.2", + "rimraf": "^2.6.3", + "semver": "^7.5.3", + "slash": "^2.0.0", + "tmp": "^0.0.33", + "yaml": "^2.2.2" + }, + "bin": { + "patch-package": "index.js" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=14", + "npm": ">5" } }, - "node_modules/npm-packlist": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-9.0.0.tgz", - "integrity": "sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==", - "license": "ISC", + "node_modules/patch-package/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", "dependencies": { - "ignore-walk": "^7.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/npm-pick-manifest": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", - "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", - "license": "ISC", + "node_modules/patch-package/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", "dependencies": { - "npm-install-checks": "^7.1.0", - "npm-normalize-package-bin": "^4.0.0", - "npm-package-arg": "^12.0.0", - "semver": "^7.3.5" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=10" } }, - "node_modules/npm-registry-fetch": { - "version": "18.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz", - "integrity": "sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==", + "node_modules/patch-package/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", + "dev": true, "license": "ISC", - "dependencies": { - "@npmcli/redact": "^3.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^14.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minizlib": "^3.0.1", - "npm-package-arg": "^12.0.0", - "proc-log": "^5.0.0" + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/patch-package/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" + "bin": { + "is-docker": "cli.js" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/patch-package/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "boolbase": "^1.0.0" + "is-docker": "^2.0.0" }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" + "engines": { + "node": ">=8" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "node_modules/patch-package/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "Apache-2.0", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { "node": "*" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/patch-package/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dev": true, "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "node_modules/patch-package/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "rimraf": "bin.js" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/patch-package/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "node_modules/patch-package/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "license": "MIT" - }, - "node_modules/ogc-schemas": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/ogc-schemas/-/ogc-schemas-2.6.1.tgz", - "integrity": "sha512-nqtPUIQA8dccej34iWQfgnboGNHVJVCBf40nZMayFuaV3hV5yS9sY21tlK82PfAeo6DadiePP+xQCLjvt968rA==", - "dependencies": { - "jsonix": ">=2.4.0", - "w3c-schemas": ">=1.4.0" - } - }, - "node_modules/ol": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/ol/-/ol-10.5.0.tgz", - "integrity": "sha512-nHFx8gkGmvYImsa7iKkwUnZidd5gn1XbMZd9GNOorvm9orjW9gQvT3Naw/MjIasVJ3cB9EJUdCGR2EFAulMHsQ==", - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@types/rbush": "4.0.0", - "earcut": "^3.0.0", - "geotiff": "^2.1.3", - "pbf": "4.0.1", - "rbush": "^4.0.0" + "os-tmpdir": "~1.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/openlayers" + "engines": { + "node": ">=0.6.0" } }, - "node_modules/ol-mapbox-style": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-12.6.1.tgz", - "integrity": "sha512-bpN7ZvqbQX/JZnru0MTQgPIAUBAgPOvYDj/9BoJoqCvFYjHxCpRFDQJEoD10PLw3vGHNJFYBUvY82yfW26otQg==", - "license": "BSD-2-Clause", - "dependencies": { - "@maplibre/maplibre-gl-style-spec": "^23.1.0", - "mapbox-to-css-font": "^3.1.2" - }, - "peerDependencies": { - "ol": "*" - } + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" }, - "node_modules/ol/node_modules/pbf": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-4.0.1.tgz", - "integrity": "sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==", - "license": "BSD-3-Clause", - "dependencies": { - "resolve-protobuf-schema": "^2.1.0" - }, - "bin": { - "pbf": "bin/pbf" + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/on-headers": { + "node_modules/path-is-inside": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, - "node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "license": "MIT", + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "mimic-function": "^5.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=18" + "node": "20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/open": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", - "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", "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" - }, + "license": "ISC", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "20 || >=22" } }, - "node_modules/opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", "dev": true, "license": "MIT", - "bin": { - "opencollective-postinstall": "index.js" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/opensearch-browser": { - "version": "2.0.0-alpha.7", - "resolved": "https://registry.npmjs.org/opensearch-browser/-/opensearch-browser-2.0.0-alpha.7.tgz", - "integrity": "sha512-31LfpNh3+KuL2xKl3BiLhiMM9zWMYHLXuKWet9Z/yBV5m4n/EWemh4OBneu7zwEbWXoVwpasy++9VWO/GvOCGQ==", - "license": "MIT", + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "license": [ + "MIT", + "Apache2" + ], "dependencies": { - "event-emitter": "^0.3.5", - "isomorphic-fetch": "^3.0.0", - "url-parse": "^1.4.7" + "through": "~2.3" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "license": "MIT", + "node_modules/pbf": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-4.0.1.tgz", + "integrity": "sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==", + "license": "BSD-3-Clause", "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" + "resolve-protobuf-schema": "^2.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "pbf": "bin/pbf" } }, - "node_modules/ora/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==", + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/ora/node_modules/color-convert": { + "node_modules/pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "pinkie": "^2.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=0.10.0" } }, - "node_modules/ora/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==", - "license": "MIT" - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/piscina": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz", + "integrity": "sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "optionalDependencies": { + "@napi-rs/nice": "^1.0.1" } }, - "node_modules/ora/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "find-up": "^6.3.0" }, "engines": { - "node": ">=6" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" + "semver-compare": "^1.0.0" } }, - "node_modules/ora/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/postcss": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "node_modules/ordered-binary": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", - "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/os-name": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", - "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "node_modules/postcss-loader": { + "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, "license": "MIT", "dependencies": { - "macos-release": "^2.5.0", - "windows-release": "^4.0.0" + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=10" + "node": ">= 18.12.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "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/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "license": "MIT", + "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.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": ">=0.10.0" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^10 || ^12 || >= 14" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "p-limit": "^4.0.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^10 || ^12 || >= 14" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/p-map": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", - "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", - "license": "MIT", + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "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" + }, "engines": { - "node": ">=18" + "node": "^10 || ^12 || >= 14" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/p-retry": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", - "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, "license": "MIT", "dependencies": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "node_modules/postcss-value-parser": { + "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, - "license": "MIT", - "engines": { - "node": ">= 4" - } + "license": "MIT" }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/potpack": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.1.0.tgz", + "integrity": "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==", + "license": "ISC" + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/pacote": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-20.0.0.tgz", - "integrity": "sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==", + "node_modules/proc-log": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/proj4": { + "version": "2.19.10", + "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.19.10.tgz", + "integrity": "sha512-uL6/C6kA8+ncJAEDmUeV8PmNJcTlRLDZZa4/87CzRpb8My4p+Ame4LhC4G3H/77z2icVqcu3nNL9h5buSdnY+g==", + "license": "MIT", "dependencies": { - "@npmcli/git": "^6.0.0", - "@npmcli/installed-package-contents": "^3.0.0", - "@npmcli/package-json": "^6.0.0", - "@npmcli/promise-spawn": "^8.0.0", - "@npmcli/run-script": "^9.0.0", - "cacache": "^19.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^12.0.0", - "npm-packlist": "^9.0.0", - "npm-pick-manifest": "^10.0.0", - "npm-registry-fetch": "^18.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "sigstore": "^3.0.0", - "ssri": "^12.0.0", - "tar": "^6.1.11" + "mgrs": "1.0.0", + "wkt-parser": "^1.5.1" }, - "bin": { - "pacote": "bin/index.js" + "funding": { + "url": "https://github.com/sponsors/ahocevar" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=10" } }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", - "license": "(MIT AND Zlib)" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/propagating-hammerjs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/propagating-hammerjs/-/propagating-hammerjs-1.5.0.tgz", + "integrity": "sha512-3PUXWmomwutoZfydC+lJwK1bKCh6sK6jZGB31RUX6+4EXzsbkDZrK4/sVR7gBrvJaEIwpTVyxQUAd29FKkmVdw==", + "dev": true, "license": "MIT", "dependencies": { - "callsites": "^3.0.0" + "hammerjs": "^2.0.8" + } + }, + "node_modules/protobufjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", + "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=12.0.0" } }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", "license": "MIT" }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "deprecated": "We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular", + "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" }, - "engines": { - "node": ">=8" + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10.13.x" } }, - "node_modules/parse-json/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" + "node_modules/protractor/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "node_modules/protractor/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.10" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "node_modules/protractor/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/parse5": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.0.tgz", - "integrity": "sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==", - "license": "MIT", + "node_modules/protractor/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "license": "ISC", "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "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", - "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { - "entities": "^4.3.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" + "ansi-regex": "^5.0.1" }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "engines": { + "node": ">=8" } }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "node_modules/protractor/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/protractor/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { - "domhandler": "^5.0.3", - "parse5": "^7.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "engines": { + "node": ">=8" } }, - "node_modules/parse5-sax-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", - "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", - "license": "MIT", + "node_modules/protractor/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", + "dev": true, + "license": "ISC", "dependencies": { - "parse5": "^7.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" }, "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/protractor/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/patch-package": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", - "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", + "node_modules/protractor/node_modules/jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==", "dev": true, "license": "MIT", "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^4.1.2", - "ci-info": "^3.7.0", - "cross-spawn": "^7.0.3", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^9.0.0", - "json-stable-stringify": "^1.0.2", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.6", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^7.5.3", - "slash": "^2.0.0", - "tmp": "^0.0.33", - "yaml": "^2.2.2" + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" }, "bin": { - "patch-package": "index.js" - }, - "engines": { - "node": ">=14", - "npm": ">5" + "jasmine": "bin/jasmine.js" } }, - "node_modules/patch-package/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==", + "node_modules/protractor/node_modules/jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/protractor/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "p-locate": "^4.1.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/patch-package/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/protractor/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/patch-package/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/protractor/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/patch-package/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/protractor/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/patch-package/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==", + "node_modules/protractor/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/patch-package/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/protractor/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/patch-package/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/protractor/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/protractor/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "ISC", + "license": "MIT", "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" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/patch-package/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/protractor/node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/patch-package/node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "node_modules/protractor/node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", - "bin": { - "is-docker": "cli.js" + "dependencies": { + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/patch-package/node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "node_modules/protractor/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "license": "MIT", "dependencies": { - "is-docker": "^2.0.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/patch-package/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/protractor/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "MIT", "engines": { - "node": "*" + "node": ">=0.8.0" } }, - "node_modules/patch-package/node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "node_modules/protractor/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/protractor/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "license": "MIT", "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/patch-package/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "node_modules/protractor/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=6" } }, - "node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, "engines": { - "node": ">=6" + "node": ">= 0.10" } }, - "node_modules/patch-package/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/patch-package/node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "node_modules/proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==", "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, + "license": "MIT", "engines": { - "node": ">= 14.6" + "node": ">=0.8.0" } }, - "node_modules/path-browserify": { + "node_modules/prr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "dev": true, "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/psl/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "dev": true, - "license": "(WTFPL OR MIT)" + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.6.0", + "teleport": ">=0.2.0" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.9" + } }, - "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "BSD-3-Clause", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "side-channel": "^1.0.6" }, "engines": { - "node": "20 || >=22" + "node": ">=0.6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz", - "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" - } + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT" }, - "node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, + "node_modules/quick-lru": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", + "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", "license": "MIT", "engines": { "node": ">=12" @@ -16730,509 +17121,478 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "dev": true, - "license": [ - "MIT", - "Apache2" - ], - "dependencies": { - "through": "~2.3" - } + "node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", + "license": "ISC" }, - "node_modules/pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "license": "BSD-3-Clause", - "dependencies": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - }, - "bin": { - "pbf": "bin/pbf" + "node_modules/ramda": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.1.tgz", + "integrity": "sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" } }, - "node_modules/performance-now": { + "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "dependencies": { + "safe-buffer": "^5.1.0" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "license": "MIT", "dependencies": { - "pinkie": "^2.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/piscina": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz", - "integrity": "sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==", - "dev": true, + "node_modules/rbush": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-4.0.1.tgz", + "integrity": "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==", "license": "MIT", - "optionalDependencies": { - "@napi-rs/nice": "^1.0.1" + "dependencies": { + "quickselect": "^3.0.0" } }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, + "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==", "license": "MIT", "dependencies": { - "find-up": "^6.3.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 6" } }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "devOptional": true, "license": "MIT", - "dependencies": { - "semver-compare": "^1.0.0" + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/reflect-metadata": { + "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, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "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": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "regenerate": "^1.4.2" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=4" } }, - "node_modules/postcss-loader": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", - "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "node_modules/regenerator-runtime": { + "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/regex-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", "dev": true, "license": "MIT", "dependencies": { - "cosmiconfig": "^9.0.0", - "jiti": "^1.20.0", - "semver": "^7.5.4" - }, - "engines": { - "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 - } + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" } }, - "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==", + "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/postcss-modules-extract-imports": { - "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==", + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" }, - "peerDependencies": { - "postcss": "^8.1.0" + "bin": { + "regjsparser": "bin/parser" } }, - "node_modules/postcss-modules-local-by-default": { - "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==", + "node_modules/regjsparser/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, "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=6" } }, - "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">= 6" } }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "node_modules/request/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, + "license": "MIT", "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">= 0.6" } }, - "node_modules/postcss-selector-parser": { - "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==", + "node_modules/request/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "license": "MIT", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "mime-db": "1.52.0" }, "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/postcss-value-parser": { - "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, - "license": "MIT" - }, - "node_modules/potpack": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", - "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==", - "license": "ISC" - }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/proc-log": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", - "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", - "license": "ISC", + "license": "BSD-3-Clause", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=0.6" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, - "license": "MIT" - }, - "node_modules/proj4": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.17.0.tgz", - "integrity": "sha512-BqVoruVAOUgkw5U9Ns76+E2nHZG0Y42tbkC+0BpyqjhwPIai29hoivyQoyelEKFSfaV3zkR3NqPRD0EwPM4Wug==", "license": "MIT", - "dependencies": { - "geographiclib-geodesic": "^2.1.1", - "mgrs": "1.0.0", - "wkt-parser": "^1.5.1" + "bin": { + "uuid": "bin/uuid" } }, - "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==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/propagating-hammerjs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/propagating-hammerjs/-/propagating-hammerjs-1.5.0.tgz", - "integrity": "sha512-3PUXWmomwutoZfydC+lJwK1bKCh6sK6jZGB31RUX6+4EXzsbkDZrK4/sVR7gBrvJaEIwpTVyxQUAd29FKkmVdw==", - "dev": true, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "license": "MIT", - "dependencies": { - "hammerjs": "^2.0.8" - } - }, - "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, "engines": { - "node": ">=12.0.0" + "node": ">=0.10.0" } }, - "node_modules/protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true, + "license": "ISC" + }, + "node_modules/require-package-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", + "integrity": "sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==", "license": "MIT" }, - "node_modules/protractor": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", - "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", - "deprecated": "We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular", - "dev": true, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "license": "MIT", "dependencies": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.1.7", - "yargs": "^15.3.1" + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { - "protractor": "bin/protractor", - "webdriver-manager": "bin/webdriver-manager" + "resolve": "bin/resolve" }, "engines": { - "node": ">=10.13.x" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/protractor/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/protractor/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/protractor/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "protocol-buffers-schema": "^3.3.1" } }, - "node_modules/protractor/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/protractor/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/resolve-url-loader/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, - "license": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "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==", "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/protractor/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==", + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "license": "MIT" }, - "node_modules/protractor/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "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": "MIT", + "license": "ISC", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=8" + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/protractor/node_modules/glob": { + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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==", @@ -17254,2222 +17614,2161 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/protractor/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==", + "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==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" + "brace-expansion": "^1.1.7" }, - "bin": { - "jasmine": "bin/jasmine.js" + "engines": { + "node": "*" } }, - "node_modules/protractor/node_modules/jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==", - "dev": true, - "license": "MIT" + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" }, - "node_modules/protractor/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==", + "node_modules/rollup": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", + "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=8" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.34.8", + "@rollup/rollup-android-arm64": "4.34.8", + "@rollup/rollup-darwin-arm64": "4.34.8", + "@rollup/rollup-darwin-x64": "4.34.8", + "@rollup/rollup-freebsd-arm64": "4.34.8", + "@rollup/rollup-freebsd-x64": "4.34.8", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", + "@rollup/rollup-linux-arm-musleabihf": "4.34.8", + "@rollup/rollup-linux-arm64-gnu": "4.34.8", + "@rollup/rollup-linux-arm64-musl": "4.34.8", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", + "@rollup/rollup-linux-riscv64-gnu": "4.34.8", + "@rollup/rollup-linux-s390x-gnu": "4.34.8", + "@rollup/rollup-linux-x64-gnu": "4.34.8", + "@rollup/rollup-linux-x64-musl": "4.34.8", + "@rollup/rollup-win32-arm64-msvc": "4.34.8", + "@rollup/rollup-win32-ia32-msvc": "4.34.8", + "@rollup/rollup-win32-x64-msvc": "4.34.8", + "fsevents": "~2.3.2" } }, - "node_modules/protractor/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/rollup/node_modules/@types/estree": { + "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, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } + "license": "MIT" }, - "node_modules/protractor/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "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", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/protractor/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "queue-microtask": "^1.2.2" } }, - "node_modules/protractor/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" }, - "node_modules/protractor/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, - "node_modules/protractor/node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "^0.5.6" - } + "license": "MIT" }, - "node_modules/protractor/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/protractor/node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, - "node_modules/protractor/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/sass": { + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.0.tgz", + "integrity": "sha512-3ToiC1xZ1Y8aU7+CkgCI/tqyuPXEmYGJXO7H4uqp0xkLXUqp88rQQ4j1HmP37xSJLbCJPaIiv+cT1y+grssrww==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" }, "engines": { - "node": ">=8" + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, - "node_modules/protractor/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "node_modules/sass-loader": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", + "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "neo-async": "^2.6.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@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": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "node_modules/protractor/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "node_modules/saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, - "license": "MIT", + "dependencies": { + "https-proxy-agent": "^2.2.1" + }, "engines": { - "node": ">=0.8.0" + "node": "*" } }, - "node_modules/protractor/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/protractor/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/saucelabs/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "es6-promisify": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">= 4.0.0" } }, - "node_modules/protractor/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/saucelabs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" + "ms": "^2.1.1" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "node_modules/saucelabs/node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "agent-base": "^4.3.0", + "debug": "^3.1.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 4.5.0" } }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } + "license": "ISC" }, - "node_modules/proxy-middleware": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", - "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==", + "node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", "dev": true, "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, - "license": "MIT", - "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, - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "license": "MIT", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true, "license": "MIT" }, - "node_modules/q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==", - "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" + "node": ">= 6.9.0" } }, - "node_modules/qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "node_modules/selenium-webdriver/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.9" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "node_modules/selenium-webdriver/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", "dev": true, - "license": "BSD-3-Clause", + "license": "ISC", "dependencies": { - "side-channel": "^1.0.6" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=0.6" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/selenium-webdriver/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", - "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", - "license": "MIT", - "engines": { - "node": ">=12" + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/quickselect": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", - "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", - "license": "ISC" - }, - "node_modules/ramda": { - "version": "0.29.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.1.tgz", - "integrity": "sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ramda" + "engines": { + "node": "*" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "safe-buffer": "^5.1.0" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", "dev": true, "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.4.0" } }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "@types/node-forge": "^1.3.0", + "node-forge": "^1" }, "engines": { - "node": ">= 0.8" + "node": ">=10" } }, - "node_modules/rbush": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-4.0.1.tgz", - "integrity": "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==", - "license": "MIT", - "dependencies": { - "quickselect": "^3.0.0" + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "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==", + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "license": "MIT" + }, + "node_modules/semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "semver": "^5.3.0" + } + }, + "node_modules/semver-dsl/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "dev": true, "license": "MIT", "dependencies": { - "picomatch": "^2.2.1" + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" }, "engines": { - "node": ">=8.10.0" + "node": ">= 18" } }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/send/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">= 0.8" } }, - "node_modules/reflect-metadata": { - "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, - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "license": "MIT", "dependencies": { - "regenerate": "^1.4.2" + "ee-first": "1.1.1" }, "engines": { - "node": ">=4" + "node": ">= 0.8" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "node_modules/send/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 0.8" + } }, - "node_modules/regex-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", - "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } }, - "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, "license": "MIT", "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "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.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" + "ms": "2.0.0" } }, - "node_modules/regjsparser/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==", + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, "engines": { - "node": ">=6" + "node": ">= 0.6" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" }, "engines": { - "node": ">= 6" + "node": ">= 0.6" } }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } + "license": "ISC" }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "node_modules/serve-index/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "node_modules/serve-index/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/require-main-filename": { + "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "ISC" - }, - "node_modules/require-package-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", - "integrity": "sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==", "license": "MIT" }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true, + "license": "ISC" }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8.0" } }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "node_modules/serve-static/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "license": "MIT", "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "ms": "2.0.0" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/serve-static/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.8" } }, - "node_modules/resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "node_modules/serve-static/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, "license": "MIT", - "dependencies": { - "protocol-buffers-schema": "^3.3.1" + "engines": { + "node": ">= 0.6" } }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "node_modules/serve-static/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "license": "MIT", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "node_modules/serve-static/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "license": "MIT", "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "ee-first": "1.1.1" }, "engines": { - "node": ">=8.9.0" + "node": ">= 0.8" } }, - "node_modules/resolve-url-loader/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==", + "node_modules/serve-static/node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", "license": "MIT", "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8.0" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "node_modules/serve-static/node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 4" + "node": ">= 0.8" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/serve-static/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "license": "MIT", "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "license": "MIT" + "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, + "license": "ISC" }, - "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/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">= 0.4" } }, - "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/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" } }, - "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", - "dev": true, - "license": "ISC", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "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" + "shebang-regex": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "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/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/robust-predicates": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", - "license": "Unlicense" - }, - "node_modules/rollup": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", - "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": ">= 0.4" }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.8", - "@rollup/rollup-android-arm64": "4.34.8", - "@rollup/rollup-darwin-arm64": "4.34.8", - "@rollup/rollup-darwin-x64": "4.34.8", - "@rollup/rollup-freebsd-arm64": "4.34.8", - "@rollup/rollup-freebsd-x64": "4.34.8", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", - "@rollup/rollup-linux-arm-musleabihf": "4.34.8", - "@rollup/rollup-linux-arm64-gnu": "4.34.8", - "@rollup/rollup-linux-arm64-musl": "4.34.8", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", - "@rollup/rollup-linux-riscv64-gnu": "4.34.8", - "@rollup/rollup-linux-s390x-gnu": "4.34.8", - "@rollup/rollup-linux-x64-gnu": "4.34.8", - "@rollup/rollup-linux-x64-musl": "4.34.8", - "@rollup/rollup-win32-arm64-msvc": "4.34.8", - "@rollup/rollup-win32-ia32-msvc": "4.34.8", - "@rollup/rollup-win32-x64-msvc": "4.34.8", - "fsevents": "~2.3.2" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause" + "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==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "node_modules/sigstore": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.1.0.tgz", + "integrity": "sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==", "license": "Apache-2.0", "dependencies": { - "tslib": "^2.1.0" + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.0", + "@sigstore/sign": "^3.1.0", + "@sigstore/tuf": "^3.1.0", + "@sigstore/verify": "^2.1.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/sass": { - "version": "1.85.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.0.tgz", - "integrity": "sha512-3ToiC1xZ1Y8aU7+CkgCI/tqyuPXEmYGJXO7H4uqp0xkLXUqp88rQQ4j1HmP37xSJLbCJPaIiv+cT1y+grssrww==", + "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", - "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.0.2", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, "engines": { - "node": ">=14.0.0" + "node": ">=14.16" }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sass-loader": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", - "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", - "dev": true, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "license": "MIT", "dependencies": { - "neo-async": "^2.6.2" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">= 18.12.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@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": { - "@rspack/core": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", - "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", - "dev": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" + "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==", + "license": "MIT", + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "license": "MIT", "engines": { - "node": "*" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/saucelabs/node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "node_modules/socket.io": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", + "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", "dev": true, "license": "MIT", "dependencies": { - "es6-promisify": "^5.0.0" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.6.0", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" }, "engines": { - "node": ">= 4.0.0" + "node": ">=10.2.0" } }, - "node_modules/saucelabs/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/socket.io-adapter": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "debug": "~4.3.4", + "ws": "~8.17.1" } }, - "node_modules/saucelabs/node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "ms": "^2.1.3" }, "engines": { - "node": ">= 4.5.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true, - "license": "ISC" - }, - "node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=10.0.0" } }, - "node_modules/schema-utils/node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^8.0.0" + "ms": "^2.1.3" }, - "peerDependencies": { - "ajv": "^8.0.0" + "engines": { + "node": ">=6.0" }, "peerDependenciesMeta": { - "ajv": { + "supports-color": { "optional": true } } }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true, - "license": "MIT" - }, - "node_modules/selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" + "ms": "^2.1.3" }, "engines": { - "node": ">= 6.9.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/selenium-webdriver/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/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" } }, - "node_modules/selenium-webdriver/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/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "license": "ISC", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", "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" + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/selenium-webdriver/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" }, "engines": { - "node": "*" + "node": ">= 14" } }, - "node_modules/selenium-webdriver/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" } }, - "node_modules/selenium-webdriver/node_modules/tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "node_modules/source-map-js": { + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "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, "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.1" + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" }, "engines": { - "node": ">=0.4.0" + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" } }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "license": "MIT", "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "license": "MIT" - }, - "node_modules/semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", - "dev": true, - "license": "MIT", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", "dependencies": { - "semver": "^5.3.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/semver-dsl/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "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==", + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/send": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/send/-/send-1.1.0.tgz", - "integrity": "sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==", + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "license": "CC0-1.0" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.3.5", - "destroy": "^1.2.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "http-errors": "^2.0.0", - "mime-types": "^2.1.35", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.1" + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" }, "engines": { - "node": ">= 18" + "node": ">=6.0.0" } }, - "node_modules/send/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.8" + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" } }, - "node_modules/send/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "through": "2" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" + "node": "*" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "node_modules/sprintf-js": { + "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", - "dependencies": { - "randombytes": "^2.1.0" - } + "license": "BSD-3-Clause" }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "license": "MIT", "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", + "node_modules/ssri": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", + "license": "ISC", "dependencies": { - "ms": "2.0.0" + "minipass": "^7.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "node_modules/stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", "dev": true, "license": "MIT", "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" + "duplexer": "~0.1.1", + "through": "~2.3.4" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8.0" } }, - "node_modules/serve-static/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/serve-static/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "license": "MIT" + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } }, - "node_modules/serve-static/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 4.0.0" } }, - "node_modules/serve-static/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "node_modules/serve-static/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "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==", "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/serve-static/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/serve-static/node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/serve-static/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, + "node_modules/string-width-cjs/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==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "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, - "license": "ISC" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true, - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, + "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==", "license": "MIT", "dependencies": { - "kind-of": "^6.0.2" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "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==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "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==", - "license": "ISC", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sigstore": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.1.0.tgz", - "integrity": "sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^3.1.0", - "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.4.0", - "@sigstore/sign": "^3.1.0", - "@sigstore/tuf": "^3.1.0", - "@sigstore/verify": "^2.1.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "node_modules/svg-pan-zoom": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/svg-pan-zoom/-/svg-pan-zoom-3.6.2.tgz", + "integrity": "sha512-JwnvRWfVKw/Xzfe6jriFyfey/lWJLq4bUh2jwoR5ChWQuQoOH8FEh1l/bEp46iHHKHEJWIyFJETbazraxNWECg==", "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "license": "MIT", "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10" } }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "node_modules/tablesort": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/tablesort/-/tablesort-5.6.0.tgz", + "integrity": "sha512-cZZXK3G089PbpxH8N7vN7Z21SEKqXAaCiSVOmZdR/v7z8TFCsF/OFr0rzjhQuFlQQHy9uQtW9P2oQFJzJFGVrg==", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">= 16", + "npm": ">= 8" } }, - "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==", + "node_modules/tapable": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", + "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", + "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "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==", - "license": "MIT", + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">=10" } }, - "node_modules/socket.io": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz", - "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", - "dev": true, - "license": "MIT", + "node_modules/tar/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==", + "license": "ISC", "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.6.0", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" + "minipass": "^3.0.0" }, "engines": { - "node": ">=10.2.0" + "node": ">= 8" } }, - "node_modules/socket.io-adapter": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", - "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", - "dev": true, - "license": "MIT", + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { - "debug": "~4.3.4", - "ws": "~8.17.1" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dev": true, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "license": "MIT", "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">= 8" } }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "license": "MIT", + "node_modules/tar/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, + "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==", "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/socks": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", - "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", - "license": "MIT", + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/terser": { + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" }, "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" + "node": ">=10" } }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { - "node": ">= 14" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" }, - "node_modules/source-map-js": { - "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==", - "license": "BSD-3-Clause", + "node_modules/thingies": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", + "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "^2" } }, - "node_modules/source-map-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", - "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "node_modules/three": { + "version": "0.176.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.176.0.tgz", + "integrity": "sha512-PWRKYWQo23ojf9oZSlRGH8K09q7nRSWx6LY/HF/UUrMdYgN9i1e2OwJYHoQjwc6HF/4lvvYLC5YC1X8UJL2ZpA==", + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "license": "MIT", "dependencies": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" + "fdir": "^6.4.4", + "picomatch": "^4.0.2" }, "engines": { - "node": ">= 18.12.0" + "node": ">=12.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, + "node_modules/tmp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", "dev": true, "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=14.14" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.6" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "license": "Apache-2.0", + "node_modules/topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "license": "ISC", "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "commander": "2" + }, + "bin": { + "topo2geo": "bin/topo2geo", + "topomerge": "bin/topomerge", + "topoquantize": "bin/topoquantize" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "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==", - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, - "node_modules/spdx-license-ids": { - "version": "3.0.21", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", - "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", - "license": "CC0-1.0" + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "license": "MIT" }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" + "psl": "^1.1.28", + "punycode": "^2.1.1" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" + "node": ">=0.8" } }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", - "dependencies": { - "through": "2" - }, "engines": { - "node": "*" + "node": ">=6" } }, - "node_modules/sprintf-js": { - "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==", - "license": "BSD-3-Clause" + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "node_modules/tree-dump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.3.tgz", + "integrity": "sha512-il+Cv80yVHFBwokQSfd4bldvr1Md951DpgAGfmhydt04L+YzHgubm2tQ7zueWDcGENKHq0ZvGFR/hjvNXilHEg==", "dev": true, - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "tslib": "2" } }, - "node_modules/sshpk/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, - "license": "MIT" - }, - "node_modules/ssri": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", - "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" + "license": "MIT", + "bin": { + "tree-kill": "cli.js" } }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "node_modules/ts-morph": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-24.0.0.tgz", + "integrity": "sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "@ts-morph/common": "~0.25.0", + "code-block-writer": "^13.0.3" } }, - "node_modules/stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", + "node_modules/ts-node": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", + "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", "dev": true, "license": "MIT", "dependencies": { - "duplexer": "~0.1.1", - "through": "~2.3.4" + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" } }, - "node_modules/streamroller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" }, "engines": { - "node": ">=8.0" + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" } }, - "node_modules/streamroller/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "node_modules/tslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=4" } }, - "node_modules/streamroller/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "node_modules/tslint/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, "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/streamroller/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/tslint/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "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/tslint/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/tslint/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "color-name": "1.1.3" } }, - "node_modules/string-width-cjs/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==", + "node_modules/tslint/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, "license": "MIT" }, - "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } + "node_modules/tslint/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" }, - "node_modules/string-width/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==", - "license": "MIT", + "node_modules/tslint/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", + "dev": true, + "license": "ISC", "dependencies": { - "ansi-regex": "^6.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "*" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/tslint/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/tslint/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==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/tslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/supercluster": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", - "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "node_modules/tslint/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, "license": "ISC", - "dependencies": { - "kdbush": "^4.0.2" + "bin": { + "semver": "bin/semver" } }, - "node_modules/supports-color": { + "node_modules/tslint/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, + "license": "BSD-3-Clause" + }, + "node_modules/tslint/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", @@ -19479,840 +19778,825 @@ "has-flag": "^3.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-pan-zoom": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/svg-pan-zoom/-/svg-pan-zoom-3.6.1.tgz", - "integrity": "sha512-JaKkGHHfGvRrcMPdJWkssLBeWqM+Isg/a09H7kgNNajT1cX5AztDTNs+C8UzpCxjCTRrG34WbquwaovZbmSk9g==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "license": "MIT", - "engines": { - "node": ">=0.10" + "node": ">=4" } }, - "node_modules/tablesort": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/tablesort/-/tablesort-5.3.0.tgz", - "integrity": "sha512-WkfcZBHsp47gVH9CBHG0ZXopriG01IA87arGrchvIe868d4RiXVvoYPS1zMq9IdW05kBs5iGsqxTABqLyWonbg==", + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true, - "license": "MIT" + "license": "0BSD" }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "license": "ISC", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "tslib": "^1.8.1" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" } }, - "node_modules/tar/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==", - "license": "ISC", + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tuf-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.1.0.tgz", + "integrity": "sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "@tufjs/models": "3.0.1", + "debug": "^4.4.1", + "make-fetch-happen": "^14.0.3" }, "engines": { - "node": ">= 8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "yallist": "^4.0.0" + "safe-buffer": "^5.0.1" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "license": "ISC", + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "license": "ISC" + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tar/node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" }, "engines": { - "node": ">= 8" + "node": ">= 0.6" } }, - "node_modules/tar/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "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==", + "node_modules/type-is/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "mime-db": "1.52.0" }, "engines": { - "node": ">=10" + "node": ">= 0.6" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, + "license": "MIT" + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "license": "Apache-2.0", "bin": { - "terser": "bin/terser" + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=10" + "node": ">=14.17" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.14", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", - "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "node_modules/ua-parser-js": { + "version": "0.7.41", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.41.tgz", + "integrity": "sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==", "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" }, - "esbuild": { - "optional": true + { + "type": "paypal", + "url": "https://paypal.me/faisalman" }, - "uglify-js": { - "optional": true + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" } + ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" } }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" - }, - "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==", + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, - "license": "Unlicense", - "engines": { - "node": ">=10.18" + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" }, - "peerDependencies": { - "tslib": "^2" + "engines": { + "node": ">=0.8.0" } }, - "node_modules/three": { - "version": "0.176.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.176.0.tgz", - "integrity": "sha512-PWRKYWQo23ojf9oZSlRGH8K09q7nRSWx6LY/HF/UUrMdYgN9i1e2OwJYHoQjwc6HF/4lvvYLC5YC1X8UJL2ZpA==", - "license": "MIT" + "node_modules/ukis-libraries-scripts": { + "resolved": "scripts/library", + "link": 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/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "node_modules/unicode-canonical-property-names-ecmascript": { + "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" + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "node_modules/tinyglobby": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "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": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" + "node": ">=4" } }, - "node_modules/tinyqueue": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", - "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", - "license": "ISC" - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/unicode-match-property-value-ecmascript": { + "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", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, "engines": { - "node": ">=0.6.0" + "node": ">=4" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "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", - "dependencies": { - "is-number": "^7.0.0" - }, "engines": { - "node": ">=8.0" + "node": ">=4" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "node_modules/unique-filename": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", + "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", "license": "ISC", "dependencies": { - "commander": "2" + "unique-slug": "^5.0.0" }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/topojson-client/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", - "license": "MIT" - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/unique-slug": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", + "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", + "license": "ISC", "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "imurmurhash": "^0.1.4" }, "engines": { - "node": ">=0.8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/tough-cookie/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/tree-dump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.3.tgz", - "integrity": "sha512-il+Cv80yVHFBwokQSfd4bldvr1Md951DpgAGfmhydt04L+YzHgubm2tQ7zueWDcGENKHq0ZvGFR/hjvNXilHEg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" + "node": ">= 10.0.0" } }, - "node_modules/ts-morph": { - "version": "24.0.0", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-24.0.0.tgz", - "integrity": "sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==", + "node_modules/unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", "dev": true, - "license": "MIT", - "dependencies": { - "@ts-morph/common": "~0.25.0", - "code-block-writer": "^13.0.3" - } + "license": "BSD-3-Clause" }, - "node_modules/ts-node": { - "version": "8.10.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", - "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "license": "MIT", - "dependencies": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" + "node": ">= 0.8" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" + "update-browserslist-db": "cli.js" }, "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" + "browserslist": ">= 4.21.0" } }, - "node_modules/tslint/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "sprintf-js": "~1.0.2" + "punycode": "^2.1.0" } }, - "node_modules/tslint/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/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" } }, - "node_modules/tslint/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, - "node_modules/tslint/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/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, - "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" - }, + "license": "MIT", "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.4.0" } }, - "node_modules/tslint/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/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, "bin": { - "js-yaml": "bin/js-yaml.js" + "uuid": "dist/bin/uuid" } }, - "node_modules/tslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", + "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==", + "license": "Apache-2.0", "dependencies": { - "brace-expansion": "^1.1.7" - }, + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.2.tgz", + "integrity": "sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==", + "license": "ISC", "engines": { - "node": "*" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/tslint/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "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, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "node_modules/tslint/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, - "license": "BSD-3-Clause" + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } }, - "node_modules/tslint/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "node_modules/vis": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/vis/-/vis-4.21.0.tgz", + "integrity": "sha512-jonDXTGm2mFU/X6Kg9pvkZEQtXh2J6+NlDJD1tDP7TDCFy+qNeKlsTcXKQtv4nAtUIiKo6sphCt4kbRlEKw75A==", + "deprecated": "Please consider using https://github.com/visjs", "dev": true, - "license": "0BSD" + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "emitter-component": "^1.1.1", + "hammerjs": "^2.0.8", + "keycharm": "^0.2.0", + "moment": "^2.18.1", + "propagating-hammerjs": "^1.4.6" + } }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "node_modules/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.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 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.0.tgz", + "integrity": "sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true + }, + "node_modules/vite/node_modules/@rollup/rollup-android-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.0.tgz", + "integrity": "sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" - } + "optional": true, + "os": [ + "android" + ], + "peer": true }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "node_modules/vite/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.0.tgz", + "integrity": "sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "0BSD" - }, - "node_modules/tuf-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.0.1.tgz", - "integrity": "sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==", "license": "MIT", - "dependencies": { - "@tufjs/models": "3.0.1", - "debug": "^4.3.6", - "make-fetch-happen": "^14.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } + "optional": true, + "os": [ + "darwin" + ], + "peer": true }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "node_modules/vite/node_modules/@rollup/rollup-darwin-x64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.0.tgz", + "integrity": "sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "node_modules/vite/node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.0.tgz", + "integrity": "sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Unlicense" - }, - "node_modules/type": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", - "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", - "license": "ISC" - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/vite/node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.0.tgz", + "integrity": "sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } + "optional": true, + "os": [ + "freebsd" + ], + "peer": true }, - "node_modules/typed-assert": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", - "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.0.tgz", + "integrity": "sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT" - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "license": "MIT" - }, - "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true }, - "node_modules/ua-parser-js": { - "version": "0.7.39", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.39.tgz", - "integrity": "sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } + "node_modules/vite/node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.0.tgz", + "integrity": "sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==", + "cpu": [ + "arm" ], + "dev": true, "license": "MIT", - "bin": { - "ua-parser-js": "script/cli.js" - }, - "engines": { - "node": "*" - } + "optional": true, + "os": [ + "linux" + ], + "peer": true }, - "node_modules/uglify-js": { - "version": "3.19.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", - "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.0.tgz", + "integrity": "sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ukis-libraries-scripts": { - "resolved": "scripts/library", - "link": true - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "license": "MIT" + "os": [ + "linux" + ], + "peer": true }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "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==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.0.tgz", + "integrity": "sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">=4" - } + "optional": true, + "os": [ + "linux" + ], + "peer": true }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "node_modules/vite/node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.0.tgz", + "integrity": "sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==", + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } + "optional": true, + "os": [ + "linux" + ], + "peer": true }, - "node_modules/unicode-match-property-value-ecmascript": { - "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==", + "node_modules/vite/node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.0.tgz", + "integrity": "sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==", + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "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==", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/vite/node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.0.tgz", + "integrity": "sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==", + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">=4" - } + "optional": true, + "os": [ + "linux" + ], + "peer": true }, - "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==", + "node_modules/vite/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.0.tgz", + "integrity": "sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unique-filename": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", - "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", - "license": "ISC", - "dependencies": { - "unique-slug": "^5.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } + "optional": true, + "os": [ + "linux" + ], + "peer": true }, - "node_modules/unique-slug": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", - "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } + "node_modules/vite/node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.0.tgz", + "integrity": "sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "node_modules/vite/node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.0.tgz", + "integrity": "sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } + "optional": true, + "os": [ + "win32" + ], + "peer": true }, - "node_modules/unix-crypt-td-js": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", - "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", + "node_modules/vite/node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.0.tgz", + "integrity": "sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "BSD-3-Clause" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/vite/node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.0.tgz", + "integrity": "sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "optional": true, + "os": [ + "win32" + ], + "peer": true }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "node_modules/vite/node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "funding": [ { "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "url": "https://opencollective.com/postcss/" }, { "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" + "url": "https://tidelift.com/funding/github/npm/postcss" }, { "type": "github", @@ -20320,140 +20604,56 @@ } ], "license": "MIT", + "peer": true, "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/urijs": { - "version": "1.19.11", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", - "license": "MIT" - }, - "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==", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "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==", - "license": "MIT" - }, - "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, - "license": "MIT", "engines": { - "node": ">= 0.4.0" + "node": "^10 || ^12 || >=14" } }, - "node_modules/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "node_modules/vite/node_modules/rollup": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.0.tgz", + "integrity": "sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==", "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], "license": "MIT", - "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==", - "license": "Apache-2.0", + "peer": true, "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", - "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.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, - "license": "MIT", + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vis": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/vis/-/vis-4.21.0.tgz", - "integrity": "sha512-jonDXTGm2mFU/X6Kg9pvkZEQtXh2J6+NlDJD1tDP7TDCFy+qNeKlsTcXKQtv4nAtUIiKo6sphCt4kbRlEKw75A==", - "deprecated": "Please consider using https://github.com/visjs", - "dev": true, - "license": "(Apache-2.0 OR MIT)", - "dependencies": { - "emitter-component": "^1.1.1", - "hammerjs": "^2.0.8", - "keycharm": "^0.2.0", - "moment": "^2.18.1", - "propagating-hammerjs": "^1.4.6" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.50.0", + "@rollup/rollup-android-arm64": "4.50.0", + "@rollup/rollup-darwin-arm64": "4.50.0", + "@rollup/rollup-darwin-x64": "4.50.0", + "@rollup/rollup-freebsd-arm64": "4.50.0", + "@rollup/rollup-freebsd-x64": "4.50.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.0", + "@rollup/rollup-linux-arm-musleabihf": "4.50.0", + "@rollup/rollup-linux-arm64-gnu": "4.50.0", + "@rollup/rollup-linux-arm64-musl": "4.50.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.0", + "@rollup/rollup-linux-ppc64-gnu": "4.50.0", + "@rollup/rollup-linux-riscv64-gnu": "4.50.0", + "@rollup/rollup-linux-riscv64-musl": "4.50.0", + "@rollup/rollup-linux-s390x-gnu": "4.50.0", + "@rollup/rollup-linux-x64-gnu": "4.50.0", + "@rollup/rollup-linux-x64-musl": "4.50.0", + "@rollup/rollup-openharmony-arm64": "4.50.0", + "@rollup/rollup-win32-arm64-msvc": "4.50.0", + "@rollup/rollup-win32-ia32-msvc": "4.50.0", + "@rollup/rollup-win32-x64-msvc": "4.50.0", + "fsevents": "~2.3.2" } }, "node_modules/void-elements": { @@ -20462,19 +20662,8 @@ "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vt-pbf": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", - "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", - "license": "MIT", - "dependencies": { - "@mapbox/point-geometry": "0.1.0", - "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.2.1" + "engines": { + "node": ">=0.10.0" } }, "node_modules/w3c-schemas": { @@ -20527,9 +20716,9 @@ "optional": true }, "node_modules/web-worker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz", - "integrity": "sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", "license": "Apache-2.0" }, "node_modules/webdriver-js-extender": { @@ -20593,9 +20782,9 @@ } }, "node_modules/webdriver-manager/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -20792,6 +20981,29 @@ } } }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/webpack-dev-middleware/node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -20806,15 +21018,16 @@ } }, "node_modules/webpack-dev-server": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.0.tgz", - "integrity": "sha512-90SqqYXA2SK36KcT6o1bvwvZfJFcmoamqeJY7+boioffX9g9C0wjjJRGUrQIuh43pb0ttX7+ssavmj/WN2RHtA==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", + "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", "dev": true, "license": "MIT", "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", "@types/express": "^4.17.21", + "@types/express-serve-static-core": "^4.17.21", "@types/serve-index": "^1.9.4", "@types/serve-static": "^1.15.5", "@types/sockjs": "^0.3.36", @@ -20827,7 +21040,7 @@ "connect-history-api-fallback": "^2.0.0", "express": "^4.21.2", "graceful-fs": "^4.2.6", - "http-proxy-middleware": "^2.0.7", + "http-proxy-middleware": "^2.0.9", "ipaddr.js": "^2.1.0", "launch-editor": "^2.6.1", "open": "^10.0.3", @@ -20925,10 +21138,36 @@ } } }, + "node_modules/webpack-dev-server/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, "license": "MIT", "engines": { @@ -20963,9 +21202,9 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "dev": true, "license": "MIT", "engines": { @@ -21001,6 +21240,29 @@ "dev": true, "license": "MIT" }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", @@ -21087,79 +21349,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/windows-release/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/windows-release/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/windows-release/node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/windows-release/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/windows-release/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/wkt-parser": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.5.2.tgz", @@ -21205,39 +21394,15 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/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==", + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/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==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" } }, - "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==", - "license": "MIT" - }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -21267,39 +21432,27 @@ "node": ">=8" } }, - "node_modules/wrap-ansi/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==", + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/wrap-ansi/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==", - "license": "MIT" - }, "node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -21329,6 +21482,18 @@ "node": ">=8" } }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -21359,9 +21524,9 @@ } }, "node_modules/xml-utils": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.1.tgz", - "integrity": "sha512-Dn6vJ1Z9v1tepSjvnCpwk5QqwIPcEFKdgnjqfYOABv1ngSofuAhtlugcUC3ehS1OHdgDWSG6C5mvj+Qm15udTQ==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.2.tgz", + "integrity": "sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==", "license": "CC0-1.0" }, "node_modules/xml2js": { @@ -21439,12 +21604,16 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "dev": true, "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">= 6" + "node": ">= 14.6" } }, "node_modules/yargs": { @@ -21474,6 +21643,15 @@ "node": ">=12" } }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -21503,6 +21681,18 @@ "node": ">=8" } }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -21527,9 +21717,9 @@ } }, "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==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", "license": "MIT", "engines": { "node": ">=18" @@ -21539,9 +21729,9 @@ } }, "node_modules/zone.js": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz", - "integrity": "sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.1.tgz", + "integrity": "sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==", "license": "MIT" }, "node_modules/zstddec": { @@ -21591,7 +21781,7 @@ "dependencies": { "@angular-devkit/core": "^19.2.13", "@angular-devkit/schematics": "^19.2.13", - "@schematics/angular": "^19.2.12", + "@schematics/angular": "^19.2.13", "parse5-html-rewriting-stream": "^7.1.0", "tslib": "^2.6.3" }, @@ -21613,9 +21803,9 @@ } }, "projects/core-ui/node_modules/entities": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", - "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -21699,7 +21889,7 @@ "license": "Apache-2.0", "dependencies": { "@angular/cdk": "^19.2.12", - "@dlr-eoc/core-ui": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", "@dlr-eoc/services-layers": "16.0.0-next.0", "@dlr-eoc/services-map-state": "16.0.0-next.0", "tslib": "^2.6.3" @@ -21783,7 +21973,6 @@ "peerDependencies": { "@angular/common": "^19.2.12", "@angular/core": "^19.2.12", - "@cds/core": "^6.15.1", "rxjs": "~7.8.2" } }, @@ -21834,6 +22023,19 @@ "rxjs": "~7.8.2" } }, + "projects/ngx-ukis-utilities": { + "name": "@dlr-eoc/ngx-ukis-utilities", + "version": "16.0.0-next.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.3" + }, + "devDependencies": {}, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12" + } + }, "projects/services-layers": { "name": "@dlr-eoc/services-layers", "version": "16.0.0-next.0", @@ -21843,7 +22045,7 @@ }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/core-ui": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", "@dlr-eoc/shared-assets": "16.0.0-next.0", "zone.js": "~0.15.0" }, @@ -21910,14 +22112,14 @@ "license": "MIT" }, "projects/services-ogc/node_modules/terser": { - "version": "5.39.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.2.tgz", - "integrity": "sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", + "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.14.0", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -22048,14 +22250,12 @@ }, "peerDependencies": { "@angular/cli": "^19.2.13", - "@schematics/angular": "^19.2.12", + "@schematics/angular": "^19.2.13", "typescript": "^5.8.3" } }, "scripts/library/node_modules/commander": { "version": "14.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz", - "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==", "license": "MIT", "engines": { "node": ">=20" diff --git a/package.json b/package.json index d276ccd29..418c904f9 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@clr/ui": "^17.10.0", "@fontsource/metropolis": "^5.2.5", "@fontsource/noto-sans": "^5.2.7", - "@schematics/angular": "^19.2.12", + "@schematics/angular": "^19.2.13", "@webcomponents/webcomponentsjs": "^2.5.0", "jsonix": "^3.0.0", "luxon": "^3.6.1", @@ -76,8 +76,8 @@ "@angular-devkit/architect": "^0.1902.13", "@angular-devkit/build-angular": "^19.2.13", "@angular/cli": "^19.2.13", - "@angular/compiler-cli": "^19.2.12", - "@angular/language-service": "^19.2.12", + "@angular/compiler-cli": "^19.2.13", + "@angular/language-service": "^19.2.13", "@compodoc/compodoc": "1.1.26", "@types/geojson": "^7946.0.16", "@types/jasmine": "^5.1.8", diff --git a/projects/core-ui/package.json b/projects/core-ui/package.json index 50cfaca52..2d93032d7 100644 --- a/projects/core-ui/package.json +++ b/projects/core-ui/package.json @@ -27,7 +27,7 @@ "dependencies": { "@angular-devkit/core": "^19.2.13", "@angular-devkit/schematics": "^19.2.13", - "@schematics/angular": "^19.2.12", + "@schematics/angular": "^19.2.13", "parse5-html-rewriting-stream": "^7.1.0", "tslib": "^2.6.3" }, diff --git a/projects/ngx-ukis-utilities/package.json b/projects/ngx-ukis-utilities/package.json index 271f0a01d..3b55fd49f 100644 --- a/projects/ngx-ukis-utilities/package.json +++ b/projects/ngx-ukis-utilities/package.json @@ -14,7 +14,7 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { - "tslib": "^2.3.0" + "tslib": "^2.6.3" }, "devDependencies": {}, "peerDependencies": { diff --git a/scripts/library/package.json b/scripts/library/package.json index 30d254db9..4e7be642b 100644 --- a/scripts/library/package.json +++ b/scripts/library/package.json @@ -12,7 +12,7 @@ "private": true, "peerDependencies": { "@angular/cli": "^19.2.13", - "@schematics/angular": "^19.2.12", + "@schematics/angular": "^19.2.13", "typescript": "^5.8.3" }, "dependencies": { From bbe90d6030fdf5c8edc36ce2f86fec1ca5e44211 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Wed, 3 Sep 2025 10:14:43 +0200 Subject: [PATCH 13/30] fix (map-maplibre): replaced TypedStyleLayer with StyleLayer --- CHANGELOG.md | 3 +++ .../src/lib/map-maplibre.component.ts | 4 ++-- .../src/lib/map-maplibre.service.spec.ts | 2 +- .../src/lib/map-maplibre.service.ts | 10 ++++---- .../src/lib/maplibre-layers.helpers.spec.ts | 4 ++-- .../src/lib/maplibre-layers.helpers.ts | 4 ++-- .../src/lib/maplibre.helpers.spec.ts | 4 ++-- .../map-maplibre/src/lib/maplibre.helpers.ts | 24 +++++++++---------- 8 files changed, 29 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7f8cd7a3..d3e68a09c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,9 @@ - Removed `pipes` and moved it to new library `@dlr-eoc/ngx-ukis-utilities` [Issue #267](https://github.com/dlr-eoc/ukis-frontend-libraries/issues/267). ### Bug Fixes +* **@dlr-eoc/map-maplibre:** +- Replaced `TypedStyleLayer` with `StyleLayer` because `TypedStyleLayer` is not exported anymore. + * **@dlr-eoc/services-ogc:** * **@dlr-eoc/utils-ogc:** * **@dlr-eoc/demo-maps:** diff --git a/projects/map-maplibre/src/lib/map-maplibre.component.ts b/projects/map-maplibre/src/lib/map-maplibre.component.ts index 6017e8fd4..9aace89cc 100644 --- a/projects/map-maplibre/src/lib/map-maplibre.component.ts +++ b/projects/map-maplibre/src/lib/map-maplibre.component.ts @@ -1,5 +1,5 @@ import { AfterViewChecked, AfterViewInit, Component, ElementRef, Input, NgZone, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; -import { Map as glMap, MapLibreEvent, NavigationControl, ScaleControl, StyleSpecification, TypedStyleLayer, GeoJSONSource, Evented, addSourceType } from 'maplibre-gl'; +import { Map as glMap, MapLibreEvent, NavigationControl, ScaleControl, StyleSpecification, StyleLayer, GeoJSONSource, Evented, addSourceType } from 'maplibre-gl'; import { setExtent, setCenter, setZoom, getExtent, getAllLayers, getUkisLayerIDs, removeLayerAndSource, changeOrderOfLayers, setRotation, setPitch, getRotation, getUkisLayerMetadata, UKIS_METADATA } from './maplibre.helpers'; import { MapState, MapStateService } from '@dlr-eoc/services-map-state'; @@ -393,7 +393,7 @@ export class MapMaplibreComponent implements OnInit, AfterViewInit, AfterViewChe for (const layer of layers) { const mllayers = getAllLayers(this.map).filter(l => { - const ukismetadata = getUkisLayerMetadata(l as TypedStyleLayer) + const ukismetadata = getUkisLayerMetadata(l as StyleLayer) return ukismetadata[UKIS_METADATA.layerID] === layer.id; }).map(l => this.map.getLayer(l.id)).filter(l => l); diff --git a/projects/map-maplibre/src/lib/map-maplibre.service.spec.ts b/projects/map-maplibre/src/lib/map-maplibre.service.spec.ts index 116315caa..c32f8cde3 100644 --- a/projects/map-maplibre/src/lib/map-maplibre.service.spec.ts +++ b/projects/map-maplibre/src/lib/map-maplibre.service.spec.ts @@ -233,7 +233,7 @@ describe('MapMaplibreService', () => { }); - it('should update a TypedStyleLayer with updateMlLayer', () => { + it('should update a StyleLayer with updateMlLayer', () => { const layers = [ukisGeoJson]; const filtertype = 'Layers'; service.setUkisLayers(layers, filtertype, map); diff --git a/projects/map-maplibre/src/lib/map-maplibre.service.ts b/projects/map-maplibre/src/lib/map-maplibre.service.ts index b41839fe1..054cf2ee0 100644 --- a/projects/map-maplibre/src/lib/map-maplibre.service.ts +++ b/projects/map-maplibre/src/lib/map-maplibre.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { Layer as ukisLayer, TFiltertypesUncap, TFiltertypes, } from '@dlr-eoc/services-layers'; -import { Map as glMap, StyleSpecification, TypedStyleLayer } from 'maplibre-gl'; +import { Map as glMap, StyleSpecification, StyleLayer } from 'maplibre-gl'; import { BehaviorSubject } from 'rxjs'; import { LayerSourceSpecification, UKIS_METADATA } from './maplibre.helpers'; import { createLayer, layerIsSupported, updateSource, updateStyleLayerProperties } from './maplibre-layers.helpers'; @@ -112,7 +112,7 @@ export class MapMaplibreService { public getLayers(filtertype: Tgroupfiltertype, map: glMap) { const style = map.getStyle(); const layerSpecifications = style.layers.filter(l => l.metadata[UKIS_METADATA.filtertype] === filtertype); - const styleLayers = layerSpecifications.map(ls => map.getLayer(ls.id)) as TypedStyleLayer[]; //Temp fix of : Property ... of exported class expression may not be private or protected + const styleLayers = layerSpecifications.map(ls => map.getLayer(ls.id)) as StyleLayer[]; //Temp fix of : Property ... of exported class expression may not be private or protected return { layerSpecifications, @@ -132,7 +132,7 @@ export class MapMaplibreService { const alllayers = this.getLayers(filtertype, map); const layerSpecifications = alllayers.layerSpecifications.filter(l => l.metadata[UKIS_METADATA.layerID] === id); if (layerSpecifications.length) { - const styleLayers = layerSpecifications.map(ls => map.getLayer(ls.id)) as TypedStyleLayer[]; //Temp fix of : Property ... of exported class expression may not be private or protected + const styleLayers = layerSpecifications.map(ls => map.getLayer(ls.id)) as StyleLayer[]; //Temp fix of : Property ... of exported class expression may not be private or protected return { layerSpecifications, styleLayers @@ -191,7 +191,7 @@ export class MapMaplibreService { return layers; } - public updateMlLayer(mllayer: TypedStyleLayer, layer: ukisLayer, map: glMap) { + public updateMlLayer(mllayer: StyleLayer, layer: ukisLayer, map: glMap) { /** * update ml layer * - map.setLayoutProperty() > Visibility @@ -207,7 +207,7 @@ export class MapMaplibreService { updateStyleLayerProperties(map, mllayer, layer); } - private updateLayerParamsAndSource(map: glMap, mllayer: TypedStyleLayer, layer: ukisLayer) { + private updateLayerParamsAndSource(map: glMap, mllayer: StyleLayer, layer: ukisLayer) { if (layer.type === 'wms' || layer.type === 'wmts' || layer.type === 'tms' || layer.type === 'wfs' || layer.type === 'geojson') { const oldSource = map.getSource(mllayer.source); updateSource(map, layer, oldSource); diff --git a/projects/map-maplibre/src/lib/maplibre-layers.helpers.spec.ts b/projects/map-maplibre/src/lib/maplibre-layers.helpers.spec.ts index 5cc76ec5f..fd0b0dcee 100644 --- a/projects/map-maplibre/src/lib/maplibre-layers.helpers.spec.ts +++ b/projects/map-maplibre/src/lib/maplibre-layers.helpers.spec.ts @@ -4,7 +4,7 @@ import { createGetMapUrl, createGetTileUrl, createBaseLayer, updateStyleLayerProperties } from './maplibre-layers.helpers'; import testFeatureCollection from '@dlr-eoc/shared-assets/geojson/testFeatureCollection.json'; -import { RasterSourceSpecification, StyleSpecification, TypedStyleLayer, Map as glMap } from 'maplibre-gl'; +import { RasterSourceSpecification, StyleSpecification, StyleLayer, Map as glMap } from 'maplibre-gl'; import { UKIS_METADATA, getOpacityPaintProperty, addUkisLayerMetadata } from './maplibre.helpers'; import { TestBed } from '@angular/core/testing'; import { MapMaplibreService } from './map-maplibre.service'; @@ -385,7 +385,7 @@ describe('MaplibreLayerHelpers - use mapservice', () => { // TODO: service.setUkisLayers changes the id on the original object???? const waterLayer = ukisCustom.custom_layer.layers.find(l => l.id === waterId); waterLayer.paint[paintProp] = newColor; - updateStyleLayerProperties(map, waterLayerBefor as TypedStyleLayer, ukisCustom) + updateStyleLayerProperties(map, waterLayerBefor as StyleLayer, ukisCustom) const layerAfterUpdate = service.getLayersForId(ukisCustom.id, filtertype, map).styleLayers; const waterLayerAfter = layerAfterUpdate.find(l => l.id === waterIdStyledObj); diff --git a/projects/map-maplibre/src/lib/maplibre-layers.helpers.ts b/projects/map-maplibre/src/lib/maplibre-layers.helpers.ts index aa84d5153..361f70727 100644 --- a/projects/map-maplibre/src/lib/maplibre-layers.helpers.ts +++ b/projects/map-maplibre/src/lib/maplibre-layers.helpers.ts @@ -1,6 +1,6 @@ import { CircleLayerSpecification, FillLayerSpecification, GeoJSONSourceSpecification, LayerSpecification, Map as glMap, - LineLayerSpecification, RasterLayerSpecification, RasterSourceSpecification, SourceSpecification, StyleSpecification, SymbolLayerSpecification, TypedStyleLayer, VectorSourceSpecification, Source, FilterSpecification, DataDrivenPropertyValueSpecification, + LineLayerSpecification, RasterLayerSpecification, RasterSourceSpecification, SourceSpecification, StyleSpecification, SymbolLayerSpecification, StyleLayer, VectorSourceSpecification, Source, FilterSpecification, DataDrivenPropertyValueSpecification, MapGeoJSONFeature } from "maplibre-gl"; import { @@ -620,7 +620,7 @@ export function updateSource(map: glMap, layer: ukisLayer, oldSource: Source) { } } -export function updateStyleLayerProperties(map: glMap, mllayer: TypedStyleLayer, layer: ukisLayer) { +export function updateStyleLayerProperties(map: glMap, mllayer: StyleLayer, layer: ukisLayer) { // https://maplibre.org/maplibre-style-spec/layers/#layer-properties // paint -> map.setPaintProperty(l.id...) // layout -> map.setLayoutProperty(l.id...) diff --git a/projects/map-maplibre/src/lib/maplibre.helpers.spec.ts b/projects/map-maplibre/src/lib/maplibre.helpers.spec.ts index 4f8532705..6c6bcb841 100644 --- a/projects/map-maplibre/src/lib/maplibre.helpers.spec.ts +++ b/projects/map-maplibre/src/lib/maplibre.helpers.spec.ts @@ -1,5 +1,5 @@ import { getOpacity, setOpacity, setVisibility, getAllLayers, getUkisLayerIDs, getLayersAndSources, removeLayerAndSource, changeOrderOfLayers, LayerSourceSpecification, setRotation, setPitch, getRotation, UKIS_METADATA, addUkisLayerMetadata, getUkisLayerMetadata, IukisMetadata, setUkisLayerMetadata } from './maplibre.helpers'; -import { StyleSpecification, LayerSpecification, SourceSpecification, Map as glMap, TypedStyleLayer } from 'maplibre-gl'; +import { StyleSpecification, LayerSpecification, SourceSpecification, Map as glMap, StyleLayer } from 'maplibre-gl'; import { CustomLayer, Layer } from '@dlr-eoc/services-layers'; const createMapTarget = (size: number[]) => { @@ -439,7 +439,7 @@ describe('MaplibreHelpers', () => { map.addSource('planet_eoc', planet_eoc); map.addLayer(waterLayer_test); - const mapLayer = map.getLayer(waterLayer_test.id) as TypedStyleLayer; + const mapLayer = map.getLayer(waterLayer_test.id) as StyleLayer; const meta = getUkisLayerMetadata(mapLayer); expect(meta[UKIS_METADATA.ignoreOpacity]).toBe(true); diff --git a/projects/map-maplibre/src/lib/maplibre.helpers.ts b/projects/map-maplibre/src/lib/maplibre.helpers.ts index 251704959..aabd93a06 100644 --- a/projects/map-maplibre/src/lib/maplibre.helpers.ts +++ b/projects/map-maplibre/src/lib/maplibre.helpers.ts @@ -1,5 +1,5 @@ -import { Map as glMap, LngLatBounds, LngLat, LayerSpecification, TypedStyleLayer, SourceSpecification } from 'maplibre-gl'; +import { Map as glMap, LngLatBounds, LngLat, LayerSpecification, StyleLayer, SourceSpecification } from 'maplibre-gl'; import { TGeoExtent, Layer as ukisLayer, TFiltertypes, TFiltertypesUncap } from '@dlr-eoc/services-layers'; /** Layers can consist of multiple layers and sources, e.g. if they are a VectorTileLayer - StyleSpecification */ @@ -30,7 +30,7 @@ export function addUkisLayerMetadata(l: ukisLayer) { return metadata; } -export function getUkisLayerMetadata(ml: TypedStyleLayer) { +export function getUkisLayerMetadata(ml: StyleLayer) { const metadata: Partial = {}; metadata[UKIS_METADATA.filtertype] = (ml?.metadata as any)[UKIS_METADATA.filtertype]; metadata[UKIS_METADATA.layerID] = (ml?.metadata as any)[UKIS_METADATA.layerID]; @@ -39,7 +39,7 @@ export function getUkisLayerMetadata(ml: TypedStyleLayer) { return metadata; } -export function setUkisLayerMetadata(ml: TypedStyleLayer, meta: Partial) { +export function setUkisLayerMetadata(ml: StyleLayer, meta: Partial) { Object.keys(meta).forEach(k => { (ml?.metadata as any)[k] = meta[k]; }); @@ -123,10 +123,10 @@ export function getRotation(map: glMap):number { return rotation; } -export function setVisibility(map: glMap, layerOrId: string | TypedStyleLayer, visibility: boolean, cb?: () => void) { +export function setVisibility(map: glMap, layerOrId: string | StyleLayer, visibility: boolean, cb?: () => void) { let mllayer; if (typeof layerOrId === 'string') { - mllayer = map.getLayer(layerOrId) as TypedStyleLayer | undefined; + mllayer = map.getLayer(layerOrId) as StyleLayer | undefined; } else { mllayer = layerOrId; } @@ -152,10 +152,10 @@ export function setVisibility(map: glMap, layerOrId: string | TypedStyleLayer, v } } -export function setOpacity(map: glMap, layerOrId: string | TypedStyleLayer, opacity: number, cb?: () => void) { +export function setOpacity(map: glMap, layerOrId: string | StyleLayer, opacity: number, cb?: () => void) { let mllayer; if (typeof layerOrId === 'string') { - mllayer = map.getLayer(layerOrId) as TypedStyleLayer | undefined; + mllayer = map.getLayer(layerOrId) as StyleLayer | undefined; } else { mllayer = layerOrId; } @@ -177,10 +177,10 @@ export function setOpacity(map: glMap, layerOrId: string | TypedStyleLayer, opac } } -export function getOpacity(map: glMap, layerOrId: string | TypedStyleLayer) { +export function getOpacity(map: glMap, layerOrId: string | StyleLayer) { let mllayer; if (typeof layerOrId === 'string') { - mllayer = map.getLayer(layerOrId) as TypedStyleLayer | undefined; + mllayer = map.getLayer(layerOrId) as StyleLayer | undefined; } else { mllayer = layerOrId; } @@ -189,10 +189,10 @@ export function getOpacity(map: glMap, layerOrId: string | TypedStyleLayer) { } } -export function getLayerbeforeId(map: glMap, layerOrId: string | TypedStyleLayer) { +export function getLayerbeforeId(map: glMap, layerOrId: string | StyleLayer) { let mllayer; if (typeof layerOrId === 'string') { - mllayer = map.getLayer(layerOrId) as TypedStyleLayer | undefined; + mllayer = map.getLayer(layerOrId) as StyleLayer | undefined; } else { mllayer = layerOrId; } @@ -209,7 +209,7 @@ export function getLayerbeforeId(map: glMap, layerOrId: string | TypedStyleLayer } // https://maplibre.org/maplibre-gl-js/docs/API/classes/maplibregl.StyleLayer/ -export function styleLayerGetOpacity(mllayer: TypedStyleLayer) { +export function styleLayerGetOpacity(mllayer: StyleLayer) { let opacityPaintProperty = getOpacityPaintProperty(mllayer.type); return mllayer.getPaintProperty(opacityPaintProperty); } From 2b16e26155a5a170c590feb3673b9508ee427fbc Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Wed, 3 Sep 2025 10:41:13 +0200 Subject: [PATCH 14/30] fix (ngx-ukis-utilities): add missing peer dependency #267 --- projects/ngx-ukis-utilities/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/ngx-ukis-utilities/package.json b/projects/ngx-ukis-utilities/package.json index 3b55fd49f..80f166694 100644 --- a/projects/ngx-ukis-utilities/package.json +++ b/projects/ngx-ukis-utilities/package.json @@ -19,7 +19,8 @@ "devDependencies": {}, "peerDependencies": { "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12" + "@angular/core": "^19.2.12", + "@angular/platform-browser-dynamic": "^19.2.12" }, "sideEffects": false } From 25102ff5c1d4ee01e3c26303a0ef380b94ca727e Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Thu, 4 Sep 2025 10:35:15 +0200 Subject: [PATCH 15/30] test (services-layers): fix check for l.properties --- projects/services-layers/src/lib/types/layers.types.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/services-layers/src/lib/types/layers.types.spec.ts b/projects/services-layers/src/lib/types/layers.types.spec.ts index cefc601c7..49c714b00 100644 --- a/projects/services-layers/src/lib/types/layers.types.spec.ts +++ b/projects/services-layers/src/lib/types/layers.types.spec.ts @@ -134,7 +134,7 @@ describe('Layer Types', () => { expect(newRasterlayer.attribution).toBe(undefined); expect(newRasterlayer.displayName).toBe(undefined); expect(newRasterlayer.description).toBe(undefined); - expect(newRasterlayer.properties).toBe(undefined); + expect(newRasterlayer.properties).toEqual({}); expect(newRasterlayer.time).toBe(undefined); expect(newRasterlayer.minResolution).toBe(undefined); expect(newRasterlayer.maxResolution).toBe(undefined); @@ -195,7 +195,7 @@ describe('Layer Types', () => { expect(newVectorLayer.attribution).toBe(undefined); expect(newVectorLayer.displayName).toBe(undefined); expect(newVectorLayer.description).toBe(undefined); - expect(newVectorLayer.properties).toBe(undefined); + expect(newVectorLayer.properties).toEqual({}); expect(newVectorLayer.time).toBe(undefined); expect(newVectorLayer.minResolution).toBe(undefined); expect(newVectorLayer.maxResolution).toBe(undefined); From cf30b148d42fe44cb08a53e756cbb87a4fbf284a Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Thu, 4 Sep 2025 10:54:39 +0200 Subject: [PATCH 16/30] feat: add new library ngx-ukis-ui-clarity --- CHANGELOG.md | 4 + angular.json | 31 + package-lock.json | 3 +- package.json | 3 +- projects/ngx-ukis-ui-clarity/DEVELOPMENT.md | 68 +++ projects/ngx-ukis-ui-clarity/README.md | 12 + projects/ngx-ukis-ui-clarity/core-ui.md | 132 +++++ projects/ngx-ukis-ui-clarity/karma.conf.js | 44 ++ projects/ngx-ukis-ui-clarity/layer-control.md | 132 +++++ projects/ngx-ukis-ui-clarity/map-tools.md | 184 ++++++ projects/ngx-ukis-ui-clarity/ng-package.json | 23 + projects/ngx-ukis-ui-clarity/package.json | 61 ++ .../files/src/app/app-routing.module.ts | 9 + .../files/src/app/app.component.html | 12 + .../files/src/app/app.component.ts.template | 86 +++ .../add-routing/files/src/app/app.config.ts | 15 + .../add-routing/files/src/app/app.routes.ts | 12 + .../files/src/app/route-components/README.md | 17 + .../example-route.component.html | 13 + .../example-route.component.scss | 12 + .../example-route.component.ts.template | 17 + .../schematics/add-routing/index.ts | 159 ++++++ .../schematics/add-routing/index_spec.ts | 245 ++++++++ .../schematics/add-routing/schema.json | 25 + .../schematics/add-routing/schema.ts | 6 + .../schematics/ast-utils.ts | 360 ++++++++++++ .../schematics/collection.json | 15 + .../schematics/html-utils.ts | 103 ++++ .../schematics/json-utils.ts | 23 + .../schematics/migrations/migration.json | 4 + .../ng-add/files/src/app/app.component.html | 18 + .../ng-add/files/src/app/app.component.scss | 1 + .../files/src/app/app.component.ts.template | 88 +++ .../ng-add/files/src/app/components/README.md | 12 + .../example-view/example-view.component.html | 14 + .../example-view/example-view.component.scss | 10 + .../example-view.component.spec.ts | 26 + .../example-view/example-view.component.ts | 22 + .../ng-add/files/src/assets/.gitkeep | 0 .../files/src/assets/icons/icon-128x128.png | Bin 0 -> 10112 bytes .../files/src/assets/icons/icon-144x144.png | Bin 0 -> 10691 bytes .../files/src/assets/icons/icon-152x152.png | Bin 0 -> 9586 bytes .../files/src/assets/icons/icon-192x192.png | Bin 0 -> 10055 bytes .../files/src/assets/icons/icon-384x384.png | Bin 0 -> 25208 bytes .../files/src/assets/icons/icon-512x512.png | Bin 0 -> 29130 bytes .../files/src/assets/icons/icon-72x72.png | Bin 0 -> 5258 bytes .../files/src/assets/icons/icon-96x96.png | Bin 0 -> 7302 bytes .../files/src/assets/ukis-splash-white.svg | 37 ++ .../ng-add/files/src/assets/ukis.png | Bin 0 -> 3392 bytes .../schematics/ng-add/files/src/favicon.ico | Bin 0 -> 1150 bytes .../schematics/ng-add/files/src/styles.scss | 2 + .../src/styles/_clr-vertival-nav-layout.scss | 134 +++++ .../src/styles/_overwrites-clr-variables.scss | 4 + .../src/styles/_ukis-core-ui-layout.scss | 110 ++++ .../ng-add/files/src/styles/_ukis-inputs.scss | 33 ++ .../files/src/styles/_ukis-layer-nav.scss | 218 ++++++++ .../ng-add/files/src/styles/_ukis-theme.scss | 31 + .../files/src/styles/_ukis-variables.scss | 3 + .../schematics/ng-add/index.ts | 460 +++++++++++++++ .../schematics/ng-add/index_spec.ts | 393 +++++++++++++ .../schematics/ng-add/schema.json | 45 ++ .../schematics/ng-add/schema.ts | 11 + .../schematics/schema.tsconfig.ts | 529 ++++++++++++++++++ .../schematics/workspace-utils.ts | 161 ++++++ .../base-layer-control.component.html | 12 + .../base-layer-control.component.scss | 1 + .../base-layer-control.component.spec.ts | 135 +++++ .../base-layer-control.component.ts | 50 ++ .../lib/global-alert/alert.service.spec.ts | 16 + .../src/lib/global-alert/alert.service.ts | 21 + .../global-alert/global-alert.component.html | 1 + .../global-alert/global-alert.component.scss | 0 .../global-alert.component.spec.ts | 23 + .../global-alert/global-alert.component.ts | 11 + .../global-progress.component.html | 1 + .../global-progress.component.scss | 0 .../global-progress.component.spec.ts | 23 + .../global-progress.component.ts | 11 + .../global-progress/progress.service.spec.ts | 16 + .../lib/global-progress/progress.service.ts | 21 + .../src/lib/header/header.component.html | 1 + .../src/lib/header/header.component.scss | 0 .../src/lib/header/header.component.spec.ts | 23 + .../src/lib/header/header.component.ts | 11 + .../src/lib/icons/DLRLogoWhite.svg | 19 + .../src/lib/icons/eoc_white.svg | 16 + .../src/lib/icons/ukis-01-01.svg | 21 + .../src/lib/icons/ukis.svg | 22 + .../ngx-ukis-ui-clarity/src/lib/icons/ukis.ts | 36 ++ .../layer-control.component.html | 26 + .../layer-control.component.scss | 41 ++ .../layer-control.component.spec.ts | 56 ++ .../layer-control/layer-control.component.ts | 110 ++++ .../layerentry-group.component.html | 122 ++++ .../layerentry-group.component.scss | 58 ++ .../layerentry-group.component.spec.ts | 73 +++ .../layerentry-group.component.ts | 288 ++++++++++ .../lib/layerentry/layerentry.component.html | 137 +++++ .../lib/layerentry/layerentry.component.scss | 20 + .../layerentry/layerentry.component.spec.ts | 93 +++ .../lib/layerentry/layerentry.component.ts | 363 ++++++++++++ .../mouse-position.component.html | 78 +++ .../mouse-position.component.scss | 15 + .../mouse-position.component.spec.ts | 29 + .../mouse-position.component.ts | 98 ++++ .../navigator/map-navigator.component.html | 32 ++ .../navigator/map-navigator.component.scss | 11 + .../navigator/map-navigator.component.spec.ts | 38 ++ .../lib/navigator/map-navigator.component.ts | 57 ++ .../projection-switch.component.html | 17 + .../projection-switch.component.spec.ts | 34 ++ .../projection-switch.component.ts | 55 ++ .../projection-switch.service.spec.ts | 12 + .../projection-switch.service.ts | 9 + .../lib/user-info/login/login.component.html | 20 + .../lib/user-info/login/login.component.scss | 22 + .../user-info/login/login.component.spec.ts | 36 ++ .../lib/user-info/login/login.component.ts | 77 +++ .../register/register.component.html | 36 ++ .../register/register.component.scss | 22 + .../register/register.component.spec.ts | 37 ++ .../user-info/register/register.component.ts | 79 +++ .../user-details/user-details.component.html | 17 + .../user-details/user-details.component.scss | 1 + .../user-details.component.spec.ts | 37 ++ .../user-details/user-details.component.ts | 32 ++ .../src/lib/user-info/user.service.spec.ts | 54 ++ .../src/lib/user-info/user.service.ts | 115 ++++ .../ngx-ukis-ui-clarity/src/public-api.ts | 24 + projects/ngx-ukis-ui-clarity/src/test.ts | 17 + .../ngx-ukis-ui-clarity/tsconfig.lib.json | 24 + .../tsconfig.lib.prod.json | 11 + .../tsconfig.schematics.json | 35 ++ .../ngx-ukis-ui-clarity/tsconfig.spec.json | 17 + projects/ngx-ukis-ui-clarity/tslint.json | 17 + projects/ngx-ukis-ui-clarity/user-info.md | 63 +++ 136 files changed, 7346 insertions(+), 2 deletions(-) create mode 100644 projects/ngx-ukis-ui-clarity/DEVELOPMENT.md create mode 100644 projects/ngx-ukis-ui-clarity/README.md create mode 100644 projects/ngx-ukis-ui-clarity/core-ui.md create mode 100644 projects/ngx-ukis-ui-clarity/karma.conf.js create mode 100644 projects/ngx-ukis-ui-clarity/layer-control.md create mode 100644 projects/ngx-ukis-ui-clarity/map-tools.md create mode 100644 projects/ngx-ukis-ui-clarity/ng-package.json create mode 100644 projects/ngx-ukis-ui-clarity/package.json create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app-routing.module.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.component.html create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.component.ts.template create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.config.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.routes.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/README.md create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.html create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.ts.template create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/index.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/index_spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/schema.json create mode 100644 projects/ngx-ukis-ui-clarity/schematics/add-routing/schema.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ast-utils.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/collection.json create mode 100644 projects/ngx-ukis-ui-clarity/schematics/html-utils.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/json-utils.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/migrations/migration.json create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.html create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.ts.template create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/components/README.md create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.html create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/.gitkeep create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-128x128.png create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-144x144.png create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-152x152.png create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-192x192.png create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-384x384.png create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-512x512.png create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-72x72.png create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-96x96.png create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/ukis-splash-white.svg create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/ukis.png create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/favicon.ico create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_clr-vertival-nav-layout.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_overwrites-clr-variables.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-core-ui-layout.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-inputs.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-layer-nav.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-theme.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-variables.scss create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/index.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/index_spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/schema.json create mode 100644 projects/ngx-ukis-ui-clarity/schematics/ng-add/schema.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/schema.tsconfig.ts create mode 100644 projects/ngx-ukis-ui-clarity/schematics/workspace-utils.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-alert/alert.service.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-alert/alert.service.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-progress/progress.service.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/global-progress/progress.service.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/header/header.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/header/header.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/header/header.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/header/header.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/icons/DLRLogoWhite.svg create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/icons/eoc_white.svg create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/icons/ukis-01-01.svg create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/icons/ukis.svg create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/icons/ukis.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.service.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.service.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.html create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.scss create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/user.service.spec.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/lib/user-info/user.service.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/public-api.ts create mode 100644 projects/ngx-ukis-ui-clarity/src/test.ts create mode 100644 projects/ngx-ukis-ui-clarity/tsconfig.lib.json create mode 100644 projects/ngx-ukis-ui-clarity/tsconfig.lib.prod.json create mode 100644 projects/ngx-ukis-ui-clarity/tsconfig.schematics.json create mode 100644 projects/ngx-ukis-ui-clarity/tsconfig.spec.json create mode 100644 projects/ngx-ukis-ui-clarity/tslint.json create mode 100644 projects/ngx-ukis-ui-clarity/user-info.md diff --git a/CHANGELOG.md b/CHANGELOG.md index d3e68a09c..1061b5a86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,10 @@ ### Features - Remove `standalone: true` Angular directives, components and pipes are now standalone by default since version 19. +* **@dlr-eoc/ngx-ukis-ui-clarity:** +- New UKIS library for ui-clarity related things was added. +- It includes all components of `@dlr-eoc/layer-control`, `@dlr-eoc/map-tools`, `@dlr-eoc/user-info` [Issue #267](https://github.com/dlr-eoc/ukis-frontend-libraries/issues/267). + * **@dlr-eoc/ngx-ukis-utilities:** - New UKIS library for angular utilities was added. - Export `DynamicComponent` which have been in `@dlr-eoc/core-ui` diff --git a/angular.json b/angular.json index 61fdd0fae..e6c37f246 100644 --- a/angular.json +++ b/angular.json @@ -821,6 +821,37 @@ } } } + }, + "ngx-ukis-ui-clarity": { + "projectType": "library", + "root": "projects/ngx-ukis-ui-clarity", + "sourceRoot": "projects/ngx-ukis-ui-clarity/src", + "prefix": "ngx", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:ng-packagr", + "options": { + "project": "projects/ngx-ukis-ui-clarity/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "projects/ngx-ukis-ui-clarity/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "projects/ngx-ukis-ui-clarity/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "projects/ngx-ukis-ui-clarity/src/test.ts", + "tsConfig": "projects/ngx-ukis-ui-clarity/tsconfig.spec.json", + "karmaConfig": "projects/ngx-ukis-ui-clarity/karma.conf.js" + } + } + } } }, "schematics": { diff --git a/package-lock.json b/package-lock.json index 86164aa97..0319c08d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,8 @@ "projects/map-cesium", "projects/utilities", "projects/map-maplibre", - "projects/ngx-ukis-utilities" + "projects/ngx-ukis-utilities", + "projects/ngx-ukis-ui-clarity" ], "dependencies": { "@angular-devkit/core": "^19.2.13", diff --git a/package.json b/package.json index 418c904f9..f830345c1 100644 --- a/package.json +++ b/package.json @@ -137,7 +137,8 @@ "projects/map-cesium", "projects/utilities", "projects/map-maplibre", - "projects/ngx-ukis-utilities" + "projects/ngx-ukis-utilities", + "projects/ngx-ukis-ui-clarity" ], "engines": { "node": ">= 20.15.1", diff --git a/projects/ngx-ukis-ui-clarity/DEVELOPMENT.md b/projects/ngx-ukis-ui-clarity/DEVELOPMENT.md new file mode 100644 index 000000000..91171634d --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/DEVELOPMENT.md @@ -0,0 +1,68 @@ +## Test the Schematics locally on a new angular project +https://blog.angular.io/schematics-an-introduction-dc1dfbc2a2b2 + +1. Use stricter checks in editor (e.g. add the following to main tsconfig.json or use tsconfig.schematics.json) +```` +"compilerOptions": { + ... + "noFallthroughCasesInSwitch": true, + "noUnusedParameters": true, + "noUnusedLocals": true, + "strictNullChecks": true, + ... +} +``` + +2. build the schematics `npm run build --workspace=projects/ngx-ukis-ui-clarity && npm run schematics:build --workspace=projects/ngx-ukis-ui-clarity` + +3. create a new project `ng new my-project` + +4. link to the Schematics in the new project `npm link $PATH_TO_SCHEMATIC_PROJECT` e.g. (`npm link ../frontend-libraries/dist/ngx-ukis-ui-clarity`) + +5. run the schematics in the new project `schematics @dlr-eoc/ngx-ukis-ui-clarity:ng-add` or `ng generate @dlr-eoc/ngx-ukis-ui-clarity:ng-add --project=` or `ng generate @dlr-eoc/ngx-ukis-ui-clarity:ng-add --project= --routing=true` + +6. Update -> run step 2. again (You don't have to unlink and relink) + + +to unlink use +`npm unlink $PATH_TO_SCHEMATIC_PROJECT` (`npm unlink ../frontend-libraries/dist/ngx-ukis-ui-clarity`) // this unfortunately does not remove the full link so you have to run +`npm uninstall @dlr-eoc/ngx-ukis-ui-clarity -g` // this leaves an empty folder @dlr-eoc in the global directory (`npm config get prefix`/node_modules) so remove it later if not needed + + +remove files in test app: +- `git clean -fd && git checkout .` + +### Unit Testing + +`npm run schematics:test --workspace=projects/ngx-ukis-ui-clarity` will run the unit tests, using Jasmine as a runner and test framework. +`ng test ngx-ukis-ui-clarity` will run the unit tests of the lib via [Karma](https://karma-runner.github.io). + +### Build Schematics + +- `npm run build --workspace=projects/ngx-ukis-ui-clarity && npm run schematics:build --workspace=projects/ngx-ukis-ui-clarity` + +The above command compiles the schematics +`tsc -p projects/ngx-ukis-ui-clarity/tsconfig.schematics.json` + +and copies the files (ng build ngx-ukis-ui-clarity ng-package.json assets) +- `projects/ngx-ukis-ui-clarity/schematics/collection.json dist/ngx-ukis-ui-clarity/schematics/` +- `projects/ngx-ukis-ui-clarity/schematics/**/schema.json dist/ngx-ukis-ui-clarity/schematics/` +- `projects/ngx-ukis-ui-clarity/schematics/*/files/** dist/ngx-ukis-ui-clarity/schematics/` +- `projects/ngx-ukis-ui-clarity/src/lib/global-alert/** dist/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/components/global-alert/` +- `projects/ngx-ukis-ui-clarity/src/lib/global-progress/** dist/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/components/global-progress/` +- ... + +### Publishing + +*for local publish use* +- in dist/ `npm pack` this creates a ukis-schematics-.tgz file which we can copy. + + +For further information how to build custom schematics see [angular schematics](https://angular.io/guide/schematics) and [@angular-devkit](https://github.com/angular/angular-cli/tree/master/packages/angular_devkit). + + +## Update schematics +- https://timdeschryver.dev/blog/ng-update-the-setup + +- https://github.com/angular/angular/blob/14.0.5/packages/core/package.json#L28 +- https://github.com/angular/angular/blob/14.0.5/packages/core/schematics/migrations.json diff --git a/projects/ngx-ukis-ui-clarity/README.md b/projects/ngx-ukis-ui-clarity/README.md new file mode 100644 index 000000000..0e3f59449 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/README.md @@ -0,0 +1,12 @@ +# @dlr-eoc/ngx-ukis-ui-clarity + +This package includes multiple UI components and Styles which are based on [Clarity Design](https://clarity.design). + +- see [core-ui](./core-ui.md) to add basic styles +- [layer-control](./layer-control.md) for a component to manage layers on `@dlr-eoc/` +- [map-tools](./map-tools.md) +- [user-info](./user-info.md) + + + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. diff --git a/projects/ngx-ukis-ui-clarity/core-ui.md b/projects/ngx-ukis-ui-clarity/core-ui.md new file mode 100644 index 000000000..9a2581d20 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/core-ui.md @@ -0,0 +1,132 @@ +# @dlr-eoc/ngx-ukis-ui-clarity (base-ui) + +This project includes some schematics to add the base UKIS-Layout to an angular application. +The Layout is based on Clarity so [add this first](https://clarity.design/get-started/developing/angular)! + +## What the ng-add command is doing? + +``` +ng add @dlr-eoc/ngx-ukis-ui-clarity +``` + +- [add paths for library project in tsconfig.base.json](schematics/ng-add/index.ts#L273) + +- [add styles and files (for base-ui)](schematics/ng-add/index.ts#L61) + +- [adjust index.html and add favicon](schematics/ng-add/index.ts#L312) + +- [add default components (base-ui) for the app and register all in the app module](schematics/ng-add/index.ts#L177) + + +**options:** + +--project=string // the project in the angular workspace (default 'defaultProject') + +--routing=boolean // sets up angular routing (default false) + +--addClr=boolean // run's @clr/angular:ng-add (default false) // does not work anymore, we need to remove this + + +> The following are not implemented right now! + +--addMap=boolean // adds a map component (default false) + +--auth=boolean // default false, adjusts the app for authentication and user login + + +## layout structure of the base-ui + +The ngx-ukis-ui-clarity base-ui (created by the the schematics) is based on the [Clarity Application Layout](https://clarity.design/documentation/app-layout). + +It uses the angular components from Clarity to get a responsive navigation. + +### For an application with routes: +Use a basic layout like the following, containing the router-outlet which then shows route components as the Clarity `content-container`. +``` + + @if(ui.alert){ + + } + @if(ui.progress){ + + } + + ... + + + +``` + +### For an application without routes: +Replace the router-outlet with a view component which also adds the Clarity `content-container` class as HostBinding. +``` + + @if(ui.alert){ + + } + @if(ui.progress){ + + } + + ... + + + +``` + +- A css class `floating` on the `content-container` (which is mostly placed in your route components) makes the [Clarity Vertical Nav](https://clarity.design/documentation/vertical-nav/collapsible-nav/normal) floating above the `content-container` so it takes less space. For this, however, you have to worry about the placement of the elements in the `content-container` if the `vertical-nav` is expanded. +- The `global-alert` and `global-progress` can be activated with their responsible services which you can inject in your components. +- For more doku about the `ukis-header` [see the header README](src/lib/header/README.md) + + +**Always check that yout layout structure is like following (with direct childs)**: +``` +main-container + content-container + content-area +``` + +and keep in mind that the router is placing the routes outside of the router-outlet (so they are not children) +``` +main-container + router-outlet + route-component + ... +``` + +due to this you must add the class `content-container` as HostBinding to each 'route-component'. + + +### Layout of a route or view component +The basic layout of a route or view component (see below) is the same so you can easily change it if you decide later to switch between routing or not. + +``` +
+

This is the content-area

+
+ + + + + + + +``` + +- The route or view component uses the `content-container` class like described before, so you should normally be able to put everything in there which is shown in the documentation of [Clarity Application Layout](https://clarity.design/documentation/app-layout). + +- The `content-area` is the place where we put the map normally. If you like to do this ad the class `map-view` (`content-area map-view`) to remove the padding from the `content-area`. + +- As Aside we mostly use the `vertical-nav`. The default placement is on the left side like in the Clarity Layout, but with the class `right` the navigation will stick to the right side. +There are also some styles for the `layer-control` inside a `vertical-nav`, so this is the place where we put the `layer-control`. + +- A section with the class `footer` will get you a footer element independent for each route. If it should be the same for all routes, you can add it in the `main-container`. For an example with the footer see the `demo-maps` route 'route-example-layout'. + +- Use the `sidenav` if you don't want the navigation collapsible, but we have no style for a `layer-control` inside it. + +- All our styles (ukis-theme) are in the styles folder and get imported in the main styles.scss. +For app over all styles you can use the styles.scss, otherwise use the style files of your components to write custom styles. diff --git a/projects/ngx-ukis-ui-clarity/karma.conf.js b/projects/ngx-ukis-ui-clarity/karma.conf.js new file mode 100644 index 000000000..4585d6106 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, '../../coverage/ngx-ukis-ui-clarity'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/projects/ngx-ukis-ui-clarity/layer-control.md b/projects/ngx-ukis-ui-clarity/layer-control.md new file mode 100644 index 000000000..62c0177f2 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/layer-control.md @@ -0,0 +1,132 @@ +# layer-control + +### how to use this in a ukis-angular project + +For examples [see demo maps](../demo-maps/README.md) + +#### add the following dependencies to the package.json +- "@dlr-eoc/map-ol" +- "@dlr-eoc/ngx-ukis-ui-clarity" + +#### add the following to route-view.component.ts +``` +import { MapOlComponent } from '@dlr-eoc/map-ol'; +import { LayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; + +... + imports: [ + ... + MapOlComponent, + LayerControlComponent + ] +``` + + +#### add the following to a route-view.component.html +``` +
+ +
+ + + + + + + Overlays + + + + + + + + + Layers + + + + + + + + Baselayers + + + + + + +``` + +#### add the following to a route-view.component.ts +``` +import { LayersService, Layer } from '@dlr-eoc/services-layers'; +import { MapStateService } from '@dlr-eoc/services-map-state'; +import { IMapControls } from '@dlr-eoc/map-ol'; + +import { OsmTileLayer } from '@dlr-eoc/base-layers-raster'; +``` + +``` +controls: IMapControls; + constructor( + public layerSvc: LayersService, + public mapStateSvc: MapStateService +) { } +``` + +``` +ngOnInit() { + this.addBaselayers(); + this.addLayers(); + this.addOverlays() +} + +addBaselayers() { + const layers: Layer[] = [ + ... + ]; + + layers.map(l => this.layerSvc.addLayer(l, 'Baselayers')); +} + +addLayers() { + const layers: Layer[] = [ + ... + ]; + + layers.map(l => this.layerSvc.addLayer(l, 'Layers')); +} + +addOverlays(){ + const layers: Layer[] = [ + ... + ]; + + layers.map(l => this.layerSvc.addLayer(l, 'Overlays')); +} +``` + + + +=== + +This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14. + +## Code scaffolding + +Run `ng generate component component-name --project layer-control` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project layer-control`. +> Note: Don't forget to add `--project layer-control` or else it will be added to the default project in your `angular.json` file. + +## Build + +Run `ng build layer-control` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test layer-control` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/projects/ngx-ukis-ui-clarity/map-tools.md b/projects/ngx-ukis-ui-clarity/map-tools.md new file mode 100644 index 000000000..db2f3c048 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/map-tools.md @@ -0,0 +1,184 @@ +# map-tools + +### how to use this in a ukis-angular project + +This repository contains 3 ui components: + +1. mouse-position: shows projected coordinates of mouse pointer
+ `````` +2. navigator: allows to insert coordinates in order to navigate the map to desired position
+ `````` +3. projection-switch: ui element for interactive projection switch
+ `````` + +For examples [see demo maps route-example-events](../demo-maps/README.md) + +#### add the following dependencies to the package.json +- "@dlr-eoc/map-ol" +- "@dlr-eoc/ngx-ukis-ui-clarity" + +#### add the following to route-view.component.ts +``` +import { MapOlComponent } from '@dlr-eoc/map-ol'; +import { ProjectionSwitchComponent, MapNavigatorComponent, MousePositionComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; + +... + imports: [ + ... + MapOlComponent, + ProjectionSwitchComponent, MapNavigatorComponent, MousePositionComponent + ] +``` +##Create simple map: + + +#### add the following to a route-view.component.html +``` +
+ +
+``` + + + +#### add the following to a route-view.component.ts +``` +import { LayersService } from '@dlr-eoc/services-layers'; +import { MapStateService } from '@dlr-eoc/services-map-state'; +import { IMapControls } from '@dlr-eoc/map-ol'; + +import { osm, eoc_litemap } from '@dlr-eoc/base-layers-raster'; +``` + +``` +controls: IMapControls; + constructor( + public layerSvc: LayersService, + public mapStateSvc: MapStateService +) { } +``` + +``` +ngOnInit() { + this.addBaselayers(); +} + +addBaselayers() { + const layers = [ + new osm({ + visible: false, + legendImg: null + }), + new eoc_litemap({ + visible: true, + legendImg: null + }) + ]; + + layers.map(l => this.layerSvc.addLayer(l, 'Baselayers')); +} +``` + +##To add mouse position component: +#### add the following to a route-view.component.html +``` + + + + Coordinates + + + + + +``` + +##To add projection switch component (with 3 predefined projections): +#### add the following to a route-view.component.html +``` + + + Projection + + + + +``` +#### add the following to a route-view.component.ts +``` +import { IProjDef } from '@dlr-eoc/ngx-ukis-ui-clarity' +``` +``` +projections: IProjDef[]; + +constructor( + public layerSvc: LayersService, + public mapStateSvc: MapStateService +) { + + const arcticPolarStereographic: IProjDef = { + code: 'EPSG:3995', + proj4js: '+proj=stere +lat_0=90 +lat_ts=71 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs +type=crs', + title: 'Arctic Polar Stereographic', + extent: [-3299207.53, -3333134.03, 3299207.53, 3333134.03], + worldExtent: [-180.0, 60.0, 180.0, 90.0], + global: true, + units: 'm' + }; + + const antarcticPolarStereographic: IProjDef = { + code: `EPSG:3031`, + proj4js: '+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs +type=crs', + title: 'Antarctic Polar Stereographic', + extent: [-3299207.53, -3333134.03, 3299207.53, 3333134.03], + worldExtent: [-180.0, -90.0, 180.0, -60.0], + global: true, + units: 'm' + }; + + const webMercator: IProjDef = { + code: `EPSG:3857`, + proj4js: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs +type=crs', + title: 'Spherical Mercator', + extent: [-20037508.34, -20048966.1, 20037508.34, 20048966.1], + worldExtent: [-180.0, -85.06, 180.0, 85.06], + global: true, + units: 'm' + }; + + this.projections=[webMercator, arcticPolarStereographic, antarcticPolarStereographic]; +} +``` + +##To add navigator component: +#### add the following to a route-view.component.html +``` + + + Navigator + + + + +``` + +=== + +This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14. + +## Code scaffolding + +Run `ng generate component component-name --project map-tools` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project map-tools`. +> Note: Don't forget to add `--project map-tools` or else it will be added to the default project in your `angular.json` file. + +## Build + +Run `ng build map-tools` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test map-tools` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/projects/ngx-ukis-ui-clarity/ng-package.json b/projects/ngx-ukis-ui-clarity/ng-package.json new file mode 100644 index 000000000..9a4888b8e --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/ng-package.json @@ -0,0 +1,23 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/ngx-ukis-ui-clarity", + "lib": { + "entryFile": "src/public-api.ts" + }, + "allowedNonPeerDependencies": [ + "tslib", + "@angular-devkit/core", + "@angular-devkit/schematics", + "@schematics/angular", + "parse5-html-rewriting-stream" + ], + "assets": [ + { "input": "schematics", "glob": "**/*.json", "output": "schematics/" }, + { "input": "schematics/ng-add/files", "glob": "**/*.*", "output": "schematics/ng-add/files/" }, + { "input": "schematics/add-routing/files", "glob": "**/*.*", "output": "schematics/add-routing/files/" }, + { "input": "src/lib/global-alert", "glob": "**.*", "output": "schematics/ng-add/files/src/app/components/global-alert/" }, + { "input": "src/lib/global-progress", "glob": "**.*", "output": "schematics/ng-add/files/src/app/components/global-progress/" }, + { "input": "src/lib/header", "glob": "**.*", "output": "schematics/ng-add/files/src/app/components/header/" }, + { "input": "src/lib/icons", "glob": "**.*", "output": "schematics/ng-add/files/src/app/components/icons/" } + ] +} \ No newline at end of file diff --git a/projects/ngx-ukis-ui-clarity/package.json b/projects/ngx-ukis-ui-clarity/package.json new file mode 100644 index 000000000..c36fd9cb9 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/package.json @@ -0,0 +1,61 @@ +{ + "name": "@dlr-eoc/ngx-ukis-ui-clarity", + "version": "16.0.0-next.0", + "description": "This project includes schematics to add a base UKIS-Layout to an angular application. The Layout is based on Clarity so [add this first](https://clarity.design/get-started/developing/angular)!", + "keywords": [ + "schematics", + "@dlr-eoc", + "clarity design ui", + "layers" + ], + "license": "Apache-2.0", + "author": "Team UKIS", + "main": "src/public-api", + "scripts": { + "build": "ng build ngx-ukis-ui-clarity --configuration=production --watch=false", + "schematics:build": "tsc -p tsconfig.schematics.json", + "postbuild": "npm run schematics:build", + "preschematics:test": "npm run build", + "schematics:test": "npx jasmine ../../dist/ngx-ukis-ui-clarity/schematics/**/*_spec.js" + }, + "dependencies": { + "@angular-devkit/core": "^19.2.13", + "@angular-devkit/schematics": "^19.2.13", + "@schematics/angular": "^19.2.13", + "parse5-html-rewriting-stream": "^7.1.0", + "tslib": "^2.6.3" + }, + "devDependencies": { + "typescript": "^5.8.3", + "jasmine": "^5.7.1", + "zone.js": "~0.15.0", + "@angular/platform-browser-dynamic": "^19.2.12", + "@angular-devkit/architect": "^0.1902.13" + }, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12", + "@angular/forms": "^19.2.12", + "@angular/cdk": "^19.2.12", + "@angular/router": "^19.2.12", + "@clr/angular": "^17.10.0", + "@cds/core": "^6.15.1", + "@clr/ui": "^17.10.0", + "rxjs": "~7.8.2", + "jsonc-parser": "^3.3.1", + "ol": "^v10.5.0", + "proj4": "^2.17.0", + "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-map-state": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", + "@dlr-eoc/map-ol": "16.0.0-next.0" + }, + "schematics": "./schematics/collection.json", + "ng-add": { + "save": "dependencies" + }, + "ng-update": { + "migrations": "./schematics/migrations/migration.json" + }, + "sideEffects": false +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app-routing.module.ts b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app-routing.module.ts new file mode 100644 index 000000000..a09a19648 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app-routing.module.ts @@ -0,0 +1,9 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { routes } from './app.routes'; + +@NgModule({ + imports: [RouterModule.forRoot(routes, {})], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.component.html b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.component.html new file mode 100644 index 000000000..ac0aed86f --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.component.html @@ -0,0 +1,12 @@ + + @if(ui.alert){ + + } + @if(ui.progress){ + + } + + example route + + + diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.component.ts.template b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.component.ts.template new file mode 100644 index 000000000..79cd2e2a6 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.component.ts.template @@ -0,0 +1,86 @@ +import { Component } from '@angular/core'; + +import { HeaderComponent } from './components/header/header.component'; + +import { GlobalAlertComponent } from './components/global-alert/global-alert.component'; +import { AlertService, IAlert } from './components/global-alert/alert.service'; + +import { GlobalProgressComponent } from './components/global-progress/global-progress.component'; +import { ProgressService, IProgress } from './components/global-progress/progress.service'; + +import { Router, RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router'; +import { Subscription } from 'rxjs'; +import { ClrMainContainerModule, ClrNavigationModule } from '@clr/angular'; + +interface IUi { + alert: null | IAlert; + progress: null | IProgress; + subs: Subscription[]; +} + +@Component({ + selector: '<%= appPrefix %>-root', + imports: [ClrMainContainerModule, ClrNavigationModule, GlobalAlertComponent, GlobalProgressComponent, HeaderComponent, RouterLink, RouterLinkActive, RouterOutlet], + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'] +}) +export class AppComponent { + title = ''; + shortTitle = ''; + + ui: IUi = { + alert: null, + progress: null, + subs: [] + }; + + constructor( + private alertService: AlertService, + private progressService: ProgressService, + public router: Router + ) { + const meta = this.getHtmlMeta(['title', 'version', 'description', 'short-title']); + if (meta['title']) { + this.title = meta['title']; + } + if (meta['short-title']) { + this.shortTitle = meta['short-title']; + } + this.ui.subs = this.sub2AlertAndProgress(); + } + + /** + * returns an object with the keys from the input array + */ + getHtmlMeta(names: string[]) { + const ref = document.getElementsByTagName('meta'); + const obj: { [name: string]: string } = {}; + for (let i = 0, len = ref.length; i < len; i++) { + const meta = ref[i]; + const name = meta.getAttribute('name'); + if (name && names.includes(name)) { + const cv = meta.getAttribute('content') || meta.getAttribute('value'); + if (cv) { + obj[name] = cv; + } + } + } + return obj; + } + + sub2AlertAndProgress() { + const subs: Subscription[] = [ + this.alertService.alert$.subscribe((alert) => { + this.ui.alert = alert; + }), + this.progressService.progress$.subscribe((progress) => { + this.ui.progress = progress; + }) + ]; + return subs; + } + + ngOnDestroy() { + this.ui.subs.map(s => s.unsubscribe()); + } +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.config.ts b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.config.ts new file mode 100644 index 000000000..a4bfa27b5 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.config.ts @@ -0,0 +1,15 @@ +import { ApplicationConfig, importProvidersFrom, provideZoneChangeDetection } from '@angular/core'; +import { provideRouter } from '@angular/router'; + +import { routes } from './app.routes'; +import { BrowserModule } from '@angular/platform-browser'; +import { ClarityModule } from '@clr/angular'; +import { provideAnimations } from '@angular/platform-browser/animations'; + +export const appConfig: ApplicationConfig = { + providers: [ + provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes), + importProvidersFrom(BrowserModule, ClarityModule), + provideAnimations(), + ] +}; \ No newline at end of file diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.routes.ts b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.routes.ts new file mode 100644 index 000000000..e2dfe4b78 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/app.routes.ts @@ -0,0 +1,12 @@ +import { Routes } from '@angular/router'; +import { ExampleRouteComponent } from './route-components/example-route/example-route.component'; + +export const routes: Routes = [ + { path: '', redirectTo: 'example', pathMatch: 'full', }, + { + path: 'example', component: ExampleRouteComponent, + data: { + title: 'example' + } + }, +]; \ No newline at end of file diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/README.md b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/README.md new file mode 100644 index 000000000..133ae7743 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/README.md @@ -0,0 +1,17 @@ +# In this folder there are the components for each angular application route + +- the route component.ts must have a ```@HostBinding('class') class = 'content-container';``` to work with the clarity layout! + +- if the routes don't should share the same services e.g you want a new map instance on a other route use e.g. +```providers: [MapOlService, MapStateService, LayersService]``` + +- the route template should have a clarity content-area and e.g. a clr-vertical-nav +``` +
+ +``` + +for more information see: +- [clarity application layout](https://clarity.design/documentation/app-layout) and +- [clarity navigation](https://clarity.design/documentation/navigation) and +- [clarity vertical nav](https://clarity.design/documentation/vertical-nav/) diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.html b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.html new file mode 100644 index 000000000..bd70f7ac3 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.html @@ -0,0 +1,13 @@ +
+

content-area

+
+ + + + + diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.scss b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.scss new file mode 100644 index 000000000..82bd2d04a --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.scss @@ -0,0 +1,12 @@ +/** workaround for footer inside a route */ +:host-context(.content-container) { + &>* { + // width: 100vw; + height: 90%; + } + + .ukis-footer { + height: 10%; + padding: 0rem 1rem; + } +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.ts.template b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.ts.template new file mode 100644 index 000000000..63af76e0d --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.ts.template @@ -0,0 +1,17 @@ +import { Component, OnInit, HostBinding } from '@angular/core'; +import { ClrNavigationModule, ClrVerticalNavModule, } from '@clr/angular'; + +@Component({ + selector: '<%= appPrefix %>-example-route', + imports: [ClrNavigationModule, ClrVerticalNavModule], + templateUrl: './example-route.component.html', + styleUrls: ['./example-route.component.scss'] +}) +export class ExampleRouteComponent implements OnInit { + @HostBinding('class') class = 'content-container'; + constructor() { } + + ngOnInit() { + } + +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/index.ts b/projects/ngx-ukis-ui-clarity/schematics/add-routing/index.ts new file mode 100644 index 000000000..1f67e8ca9 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/index.ts @@ -0,0 +1,159 @@ +import { + Rule, Tree, chain, apply, url, mergeWith, move, + filter, noop, applyTemplates, SchematicContext +} from '@angular-devkit/schematics'; +import { normalize, join, getSystemPath, Path } from '@angular-devkit/core'; +import { getWorkspace } from '@schematics/angular/utility/workspace'; +import { UkisNgAddRoutingSchema } from './schema'; +import { getProjectName, checkProjectSourceRoot } from '../workspace-utils'; +import { addServiceComponentModule, getMainPath, ImoduleImport } from '../ast-utils'; +import { isStandaloneApp } from '@schematics/angular/utility/ng-ast-utils'; + + + +// https://angular.io/guide/schematics-for-libraries +// https://dev.to/thisdotmedia/schematics-pt-3-add-tailwind-css-to-your-angular-project-40pp +export function addRouting(options: UkisNgAddRoutingSchema): Rule { + const rules: Rule[] = [ + (options.addFiles === false) ? noop() : chain([ruleAddFiles(options), ruleRemoveFiles(options.project)]), + (options.updateFiles === false) ? noop() : ruleAddImportsInAppModule(options.project), + // (_options.skip === true) ? noop() : ruleAddImportsInAppComponent(_options) + ]; + + return chain(rules); +} + +/** + * add files from template folder + * - app + * - app/route-components + * + * TODO: update app.component.ts not override + */ +function ruleAddFiles(options: UkisNgAddRoutingSchema): Rule { + return async (tree: Tree, context: SchematicContext) => { + const workspace = await getWorkspace(tree); + const projectName = getProjectName(workspace, options.project); + if (projectName) { + const project = workspace.projects.get(projectName); + + if (project && checkProjectSourceRoot(project, context)) { + const sourcePath = join(normalize(project.root), project.sourceRoot); // project.sourceRoot + const appPath = join(sourcePath, 'app'); + const templateVariabels = Object.assign(options, { + appPrefix: project.prefix + }); + + const appTemplateSource = apply(url('./files/src/app'), [ + applyTemplates({ ...templateVariabels }), + filter((path: Path) => { + const removeFiles = ['app.component.html', 'app.component.ts', 'app-routing.module.ts', 'app.config.ts', 'app.routes.ts']; + /** + * check for existing files and remove them so the are allowed to overwrite! + */ + const destPath = join(appPath, path); + if (tree.exists(destPath)) { + for (const f of removeFiles) { + if (destPath.includes(f)) { + tree.delete(destPath); + } + } + } + return true; + }), + move(getSystemPath(appPath)), + ]); + + return chain([ + mergeWith(appTemplateSource) + ]); + + } + } + }; +} + + +/** + * remove files if isStandaloneApp + * - routing.module + */ +function ruleRemoveFiles(optionsProject: UkisNgAddRoutingSchema['project']): Rule { + return async (tree: Tree, context: SchematicContext) => { + // check if /views/example-view is existing from ng-add + + const workspace = await getWorkspace(tree); + const projectName = getProjectName(workspace, optionsProject); + if (projectName) { + const project = workspace.projects.get(projectName); + + if (project && checkProjectSourceRoot(project, context)) { + let mainPath = getMainPath(project); + const sourcePath = join(tree.root.path, normalize(project.root), project.sourceRoot); // project.sourceRoot + + const isStandalone = isStandaloneApp(tree, mainPath); + const appPath = join(sourcePath, 'app'); + const standaloneRemove = ['app-routing.module.ts'].map(f => join(appPath, f)); + const moduleRemove = ['app.config.ts'].map(f => join(appPath, f)); + const removeFiles = (isStandalone) ? standaloneRemove : moduleRemove; + + /** + * loop over the tree and then use tree.delete + * check that the path is correct src/.. or /src/... + */ + tree.visit(file => { + for (const f of removeFiles) { + if (file.startsWith(f)) { + tree.delete(file); + } + } + }); + } + } + }; +} + + +/** + * app.module.ts add imports + * - core-ui components + * - AppRoutingModule + * - HttpClientModule? + */ +function ruleAddImportsInAppModule(optionsProject: UkisNgAddRoutingSchema['project']): Rule { + const rules: Rule[] = []; + const imports: ImoduleImport[] = [ + { classifiedName: 'AppRoutingModule', path: './app-routing.module', module: true }, + { classifiedName: 'ExampleRouteComponent', path: './route-components/example-route/example-route.component', declare: true } + ]; + + /** + * create a rule for each insertImport/addProviderToModule because addProviderToModule is not working multiple times in one Rule??? + */ + imports.map(item => { + rules.push(addServiceComponentModule(optionsProject, item)); + }); + + // then chain the rules to one + return chain(rules); +} + +/** + * https://www.softwarearchitekt.at/aktuelles/generating-custom-angular-code-with-the-cli-and-schematics-part-iii/ + * TODO + */ +/* function ruleAddImportsInAppComponent(_options: UkisNgAddRoutingSchema): Rule { + const appCompPath = '/src/app/app.component.ts'; + const rules: Rule[] = []; + const imports: ImoduleImport[] = [ + { classifiedName: 'Router', path: '@angular/router' } + ]; + // create a rule for each insertImport/addProviderToModule because addProviderToModule is not working multiple times in one Rule??? + imports.map(item => { + rules.push(addServiceComponentModule(_options, item, appCompPath)); + }); + + // then chain the rules to one + return chain(rules); +} */ + diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/index_spec.ts b/projects/ngx-ukis-ui-clarity/schematics/add-routing/index_spec.ts new file mode 100644 index 000000000..3038f3a0b --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/index_spec.ts @@ -0,0 +1,245 @@ +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { Schema as WorkspaceOptions } from '@schematics/angular/workspace/schema'; +import { Schema as ApplicationOptions, Style } from '@schematics/angular/application/schema'; +import { UkisNgAddRoutingSchema } from './schema'; +import * as path from 'path'; + + +const collectionPath = require.resolve(path.join(__dirname, '../collection.json')); + +describe('add-routing Module or standalone', () => { + const schematicRunner = new SchematicTestRunner('@dlr-eoc/schematics', collectionPath); + + let appTree: UnitTestTree; + + const ngAddOptions: UkisNgAddRoutingSchema = { + project: 'ukisapp', + addFiles: true, + updateFiles: true + }; + + const workspaceOptions: WorkspaceOptions = { + name: 'workspace', + newProjectRoot: 'projects', + version: '9.0.0', + }; + + const appOptions: ApplicationOptions = { + name: 'ukisapp', + projectRoot: '', + standalone: false, // no standalone API. + inlineStyle: false, + inlineTemplate: false, + routing: true, + style: Style.Css, + skipTests: false + }; + + beforeEach(async () => { + appTree = await schematicRunner.runExternalSchematic('@schematics/angular', 'workspace', workspaceOptions); + appTree = await schematicRunner.runExternalSchematic( + '@schematics/angular', + 'application', + appOptions, + appTree, + ); + }); + + it('should add/update app files', async () => { + const testFiles = [ + '/src/app/app.component.html', + '/src/app/app.component.ts', + '/src/app/app.routes.ts', + '/src/app/route-components/README.md', + '/src/app/route-components/example-route/example-route.component.html', + '/src/app/route-components/example-route/example-route.component.ts', + '/src/app/route-components/example-route/example-route.component.scss' + ]; + const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); + testFiles.every(f => { + expect(tree.files).toContain(f); + }); + }); +}); + + +describe('add-routing Module App', () => { + const schematicRunner = new SchematicTestRunner('@dlr-eoc/schematics', collectionPath); + + let appTree: UnitTestTree; + + const ngAddOptions: UkisNgAddRoutingSchema = { + project: 'ukisapp', + addFiles: true, + updateFiles: true + }; + + const workspaceOptions: WorkspaceOptions = { + name: 'workspace', + newProjectRoot: 'projects', + version: '9.0.0', + }; + + const appOptions: ApplicationOptions = { + name: 'ukisapp', + projectRoot: '', + standalone: false, // no standalone API. + inlineStyle: false, + inlineTemplate: false, + routing: true, + style: Style.Css, + skipTests: false + }; + + beforeEach(async () => { + appTree = await schematicRunner.runExternalSchematic('@schematics/angular', 'workspace', workspaceOptions); + appTree = await schematicRunner.runExternalSchematic( + '@schematics/angular', + 'application', + appOptions, + appTree, + ); + }); + + it('should add app files', async () => { + const testFiles = [ + '/src/app/app.routes.ts', + '/src/app/app-routing.module.ts', + ]; + const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); + testFiles.every(f => { + expect(tree.files).toContain(f); + }); + }); + + it('should not have app.config.ts', async () => { + const testFiles = [ + '/src/app/app.config.ts' + ]; + const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); + testFiles.every(f => { + expect(tree.files).not.toContain(f); + }); + }); + + it('should add Imports', async () => { + const testImports = [ + 'AppRoutingModule', + 'ExampleRouteComponent' + ]; + const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); + const appModule = tree.readContent('/src/app/app.module.ts'); + testImports.every(i => { + expect(appModule).toContain(i); + }); + }); + + it('should remove imports from views if routing is true', async () => { + const testImports = [ + 'ExampleViewComponent' + ]; + const routingOptions = Object.assign({}, ngAddOptions, { routing: true }); + const tree = await schematicRunner.runSchematic('ng-add', routingOptions, appTree); + const appModuleSource = tree.readContent('/src/app/app.module.ts').split('@NgModule'); + const appModule = appModuleSource[0]; + + testImports.map(i => { + expect(appModule).not.toContain(i); + }); + }); + + it('should remove Declarations from views if routing is true', async () => { + const testDeclarations = [ + 'ExampleViewComponent' + ]; + const routingOptions = Object.assign({}, ngAddOptions, { routing: true }); + const tree = await schematicRunner.runSchematic('ng-add', routingOptions, appTree); + const appModuleSource = tree.readContent('/src/app/app.module.ts').split('@NgModule'); + const appNgModule = `@NgModule${appModuleSource[1]}`; + + testDeclarations.map(i => { + expect(appNgModule).not.toContain(i); + }); + }); +}); + +describe('add-routing standalone App', () => { + const schematicRunner = new SchematicTestRunner('@dlr-eoc/schematics', collectionPath); + + let appTree: UnitTestTree; + + const ngAddOptions: UkisNgAddRoutingSchema = { + project: 'ukisapp', + addFiles: true, + updateFiles: true + }; + + const workspaceOptions: WorkspaceOptions = { + name: 'workspace', + newProjectRoot: 'projects', + version: '9.0.0', + }; + + const appOptions: ApplicationOptions = { + name: 'ukisapp', + projectRoot: '', + standalone: true, // standalone API. + inlineStyle: false, + inlineTemplate: false, + routing: true, + style: Style.Css, + skipTests: false + }; + + beforeEach(async () => { + appTree = await schematicRunner.runExternalSchematic('@schematics/angular', 'workspace', workspaceOptions); + appTree = await schematicRunner.runExternalSchematic( + '@schematics/angular', + 'application', + appOptions, + appTree, + ); + }); + + + it('should add app files', async () => { + const testFiles = [ + '/src/app/app.config.ts', + ]; + const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); + testFiles.every(f => { + expect(tree.files).toContain(f); + }); + }); + + it('should not have app-routing.module.ts', async () => { + const testFiles = [ + '/src/app/app-routing.module.ts' + ]; + const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); + testFiles.every(f => { + expect(tree.files).not.toContain(f); + }); + }); + + it('should remove import view from app if routing is true', async () => { + const testImports = [ + 'ExampleViewComponent' + ]; + const routingOptions = Object.assign({}, ngAddOptions, { routing: true }); + const tree = await schematicRunner.runSchematic('ng-add', routingOptions, appTree); + const appComponentSource = tree.readContent('/src/app/app.component.ts').split('@Component'); + const appComponent = appComponentSource[0]; + + testImports.map(i => { + expect(appComponent).not.toContain(i); + }); + }); + + it('should have Routes in app.config.ts', async () => { + const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); + const appConfig = tree.readContent('/src/app/app.config.ts'); + expect(appConfig).toContain(`import { routes } from './app.routes'`); + expect(appConfig).toContain(`provideRouter(routes)`); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/schema.json b/projects/ngx-ukis-ui-clarity/schematics/add-routing/schema.json new file mode 100644 index 000000000..8865f7e1e --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/schema", + "$id": "SchematicsNgAdd", + "title": "Ng Add Schema", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the angular project you want to add @dlr-eoc/ngx-ukis-ui-clarity.", + "$default": { + "$source": "defaultProject" + } + }, + "addFiles": { + "description": "Add files for routing to your application.", + "type": "boolean", + "default": true + }, + "updateFiles": { + "description": "Update files in your application.", + "type": "boolean", + "default": true + } + } +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/add-routing/schema.ts b/projects/ngx-ukis-ui-clarity/schematics/add-routing/schema.ts new file mode 100644 index 000000000..b8266f6c5 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/add-routing/schema.ts @@ -0,0 +1,6 @@ +export interface UkisNgAddRoutingSchema { + // The name of the angular project you want to add @dlr-eoc/ngx-ukis-ui-clarity. + project?: string; + addFiles?: boolean; + updateFiles?: boolean; +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/ast-utils.ts b/projects/ngx-ukis-ui-clarity/schematics/ast-utils.ts new file mode 100644 index 000000000..f494c4af3 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ast-utils.ts @@ -0,0 +1,360 @@ +import { Tree, SchematicsException, SchematicContext, Rule, UpdateRecorder, noop } from '@angular-devkit/schematics'; +import { UkisNgAddSchema } from './ng-add/schema'; +import { getWorkspace } from '@schematics/angular/utility/workspace'; +import { addProviderToModule, insertImport, addImportToModule, addDeclarationToModule, findNodes, getDecoratorMetadata, getMetadataField } from '@schematics/angular/utility/ast-utils'; + +import { Change, RemoveChange, NoopChange, InsertChange, ReplaceChange } from '@schematics/angular/utility/change'; +import { normalize, join } from '@angular-devkit/core'; +import { getAppModulePath, isStandaloneApp } from '@schematics/angular/utility/ng-ast-utils'; +import { addRootProvider } from '@schematics/angular/utility'; + + +/** + * https://github.com/angular/angular-cli/blob/fb14945c02a3f150d6965e77324416b1ec7cc575/packages/schematics/angular/utility/ast-utils.ts#L9 + * angular schematics is using it's own typescript so we have to import the same and not -> import * as ts from 'typescript'; + */ +import * as ts from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript'; +import { tags } from '@angular-devkit/core'; +import { checkProjectSourceRoot, getProjectName, hasArchitectBuildOptionsMain } from './workspace-utils'; +import { ProjectDefinition } from '@angular-devkit/core/src/workspace'; + +export interface ImoduleImport { + classifiedName: string; + path: string; + module?: boolean; + provide?: boolean; + declare?: boolean; + standalone?: boolean; +} + +type TmetadataFields = 'providers' | 'imports' | 'declarations' | 'exports' | 'bootstrap' | 'entryComponents'; + +function applyToUpdateRecorder(recorder: UpdateRecorder, changes: Change[]): void { + for (const change of changes) { + if (change instanceof InsertChange) { + recorder.insertLeft(change.pos, change.toAdd); + } else if (change instanceof RemoveChange) { + recorder.remove(change.order, change.toRemove.length); + } else if (change instanceof ReplaceChange) { + recorder.remove(change.order, change.oldText.length); + recorder.insertLeft(change.order, change.newText); + } else if (!(change instanceof NoopChange)) { + throw new Error('Unknown Change type encountered when updating a recorder.'); + } + } +} + + +function applyChanges(changes: Change[], tree: Tree, modulePath: string) { + const recorder = tree.beginUpdate(modulePath); + applyToUpdateRecorder(recorder, changes); + tree.commitUpdate(recorder); +} + + + +export interface AddInjectionContext { + componentPath: string; + // e. g. /src/app/app.component.ts + servicePath: string; + // e. g. ./core/side-menu/side-menu.service + serviceClassName: string; + // e. g. SideMenuService +} + +export function getMainPath(project: ProjectDefinition) { + let mainPath: string = join(normalize(project.root), project.sourceRoot || join(normalize(project.root), 'src'), 'main.ts'); + + // https://github.com/angular/angular-cli/blob/HEAD/packages/angular/pwa/pwa/index.ts#L100 + if (hasArchitectBuildOptionsMain(project.extensions)) { + mainPath = join(normalize(project.root), project.extensions.architect.build.options.main); + } + + return mainPath; +} + + +export function addServiceComponentModule(optionsProject: UkisNgAddSchema['project'], item: ImoduleImport, modulePathStr?: string): Rule { + return async (tree: Tree, context: SchematicContext) => { + const workspace = await getWorkspace(tree); + const projectName = getProjectName(workspace, optionsProject); + if (projectName) { + const project = workspace.projects.get(projectName); + if (project && checkProjectSourceRoot(project, context)) { + let mainPath = getMainPath(project); + + const isStandalone = isStandaloneApp(tree, mainPath); + if (isStandalone) { + + if (item.provide) { + return addRootProvider(projectName, ({ code, external }) => + code`${external(item.classifiedName, item.path)}`, + ); + } else { + return noop(); + } + } else { + let modulePath = getAppModulePath(tree, mainPath); + + if (modulePathStr && tree.exists(modulePathStr)) { + modulePath = modulePathStr; + } + + context.logger.debug(`module path: ${modulePath}`); + + const moduleSource = getTsSourceFile(tree, modulePath); + + if (!item.standalone) { + if (item.provide) { + const changes = addProviderToModule(moduleSource, modulePath, item.classifiedName, item.path); + applyChanges(changes, tree, modulePath); + } else if (item.module) { + const change = addImportToModule(moduleSource, modulePath, item.classifiedName, item.path); + applyChanges(change, tree, modulePath); + } else if (item.declare) { + const changes = addDeclarationToModule(moduleSource, modulePath, item.classifiedName, item.path); + applyChanges(changes, tree, modulePath); + } else { + const change = [insertImport(moduleSource, modulePath, item.classifiedName, item.path)]; + applyChanges(change, tree, modulePath); + } + } + } + } + } + }; +} + + +export function removeServiceComponentModule(optionsProject: UkisNgAddSchema['project'], item: ImoduleImport, modulePathStr?: string): Rule { + return async (tree: Tree, context: SchematicContext) => { + const workspace = await getWorkspace(tree); + const projectName = getProjectName(workspace, optionsProject); + if (projectName) { + const project = workspace.projects.get(projectName); + if (project && checkProjectSourceRoot(project, context)) { + let mainPath = getMainPath(project); + + const isStandalone = isStandaloneApp(tree, mainPath); + if (isStandalone) { + // TODO remove things + return noop(); + } else { + let modulePath = getAppModulePath(tree, mainPath); + if (modulePathStr && tree.exists(modulePathStr)) { + modulePath = modulePathStr; + } + context.logger.debug(`module path: ${modulePath}`); + + const moduleSource = getTsSourceFile(tree, modulePath); + + if (!item.standalone) { + if (item.provide) { + const changes = removeProviderFromModule(moduleSource, modulePath, item.classifiedName, item.path); + applyChanges(changes, tree, modulePath); + } else if (item.module) { + const change = removeImportFromModule(moduleSource, modulePath, item.classifiedName, item.path); + applyChanges(change, tree, modulePath); + } else if (item.declare) { + const changes = removeDeclarationFromModule(moduleSource, modulePath, item.classifiedName, item.path); + applyChanges(changes, tree, modulePath); + } else { + const symbolName = item.classifiedName.replace(/\..*$/, ''); + const change = [...removeImport(moduleSource, modulePath, symbolName, item.path)]; + applyChanges(change, tree, modulePath); + } + } + } + } + } + }; +} + + + +function removeProviderFromModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { + return removeSymbolFromNgModuleMetadata(source, modulePath, 'providers', classifiedName, importPath); +} + +function removeImportFromModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { + return removeSymbolFromNgModuleMetadata(source, modulePath, 'imports', classifiedName, importPath); +} + +function removeDeclarationFromModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { + return removeSymbolFromNgModuleMetadata(source, modulePath, 'declarations', classifiedName, importPath); +} + +/** + * https://github.com/angular/angular-cli/blob/fb14945c02a3f150d6965e77324416b1ec7cc575/packages/schematics/angular/utility/ast-utils.ts#L22 + * RemoveChange: host.read => content.substring // from pos to remove length + * + * If there are multiple same imports all get removed + */ +function removeImport(source: ts.SourceFile, fileToEdit: string, symbolName: string, fileName: string, isDefault = false): Change[] { + const rootNode = source; + // SyntaxKind: https://github.com/microsoft/TypeScript/blob/v4.2.3/src/compiler/types.ts#L21 + const allImports = findNodes(rootNode, ts.SyntaxKind.ImportDeclaration); + + // get nodes that map to import statements from the file fileName + const relevantImports = allImports.filter(node => { + // StringLiteral of the ImportDeclaration is the import file (fileName in this case). + const importFiles = node.getChildren() + .filter(ts.isStringLiteral) + .map(n => n.text); + + return importFiles.filter(file => file === fileName).length === 1; + }); + + if (relevantImports.length > 0) { + let importsAsterisk = false; + // imports from import file + // Node: https://github.com/microsoft/TypeScript/blob/v4.2.3/src/compiler/types.ts#L837 + const imports: ts.Node[] = []; + relevantImports.forEach(node => { + Array.prototype.push.apply(imports, findNodes(node, ts.SyntaxKind.Identifier)); + if (findNodes(node, ts.SyntaxKind.AsteriskToken).length > 0) { + importsAsterisk = true; + } + }); + + // if imports * from fileName, don't add symbolName + if (importsAsterisk) { + return [new NoopChange()]; + } + + const importTextNodes = imports.filter(n => (n as ts.Identifier).text === symbolName); + // console.log(importTextNodes); + + // remove import if it's there + if (importTextNodes.length) { + const open = isDefault ? '' : '{ '; + const close = isDefault ? '' : ' }'; + + const changes = importTextNodes.map(node => { + const position = node.getStart(); + const toRemove = `import ${open}${symbolName}${close}` + + ` from '${fileName}'}`; + return new RemoveChange(fileToEdit, position, toRemove); + }); + + return changes; + } else { + return [new NoopChange()]; + } + } else { + return [new NoopChange()]; + } +} + +/** + * https://github.com/angular/angular-cli/blob/fb14945c02a3f150d6965e77324416b1ec7cc575/packages/schematics/angular/utility/ast-utils.ts#L341 + */ +function removeSymbolFromNgModuleMetadata( + source: ts.SourceFile, + ngModulePath: string, + metadataField: TmetadataFields, + symbolName: string, + importPath: string | null = null, +): Change[] { + const nodes = getDecoratorMetadata(source, 'NgModule', '@angular/core'); + let nodeArray = null as any as ts.NodeArray; + let node: ts.Node = nodes[0]; // tslint:disable-line:no-any + + /* const printNodes = nodes.map(n => { + const tempnode: any = n; + tempnode.kindText = Object.keys(ts.SyntaxKind).map(k => { + const value = (ts.SyntaxKind as any)[k]; + if (value === n.kind) { + return k; + } + }).find(i => i !== undefined); + return tempnode; + }); + console.log(printNodes); */ + + // Find the decorator declaration. + if (!node) { + return []; + } + + // Get all the children property assignment of object literals. + const matchingProperties = getMetadataField( + node as ts.ObjectLiteralExpression, + metadataField, + ); + + // We have found the field in the metadata declaration. So we try to remove it. + if (matchingProperties.length) { + const assignment = matchingProperties[0] as ts.PropertyAssignment; + + // If it's not an array, nothing we can do really. + if (assignment.initializer.kind !== ts.SyntaxKind.ArrayLiteralExpression) { + return []; + } + + const arrLiteral = assignment.initializer as ts.ArrayLiteralExpression; + if (arrLiteral.elements.length === 0) { + // Forward the property. + node = arrLiteral; + } else { + nodeArray = arrLiteral.elements; + } + + if (Array.isArray(nodeArray) && nodeArray.length) { + // const nodeArray = node; + const symbolsArray = nodeArray.map(n => tags.oneLine`${n.getText()}`); + const hasIndex = symbolsArray.indexOf(tags.oneLine`${symbolName}`); + // found symbol in nodes array + if (hasIndex !== -1) { + node = nodeArray[hasIndex]; + } else { + // not found so return; + return []; + } + } + + let toRemove: string; + let position = node.getStart(); + if (node.kind === ts.SyntaxKind.ArrayLiteralExpression) { + // We found the field but it's empty. Insert it just before the `]`. + position--; + toRemove = `\n${tags.indentBy(4)`${symbolName}`}\n `; + console.log('We found the field but its empty', position, toRemove); + return []; + } else { + // Get the indentation of the last element, if any. + const text = node.getFullText(source); + const matches = text.match(/^(\r?\n)(\s*)/); + if (matches) { + toRemove = `,${matches[1]}${tags.indentBy(matches[2].length)`${symbolName}`}`; + } else { + toRemove = `, ${symbolName}`; + } + } + + if (importPath !== null) { + return [ + new RemoveChange(ngModulePath, position, toRemove), + ...removeImport(source, ngModulePath, symbolName.replace(/\..*$/, ''), importPath), + ]; + } + + return [new RemoveChange(ngModulePath, position, toRemove)]; + } else { + return [new NoopChange()]; + } +} + + + + +function getTsSourceFile(host: Tree, path: string): ts.SourceFile { + const buffer = host.read(path); + if (!buffer) { + throw new SchematicsException(`Could not read file (${path}).`); + } + const content = buffer.toString(); + const source = ts.createSourceFile(path, content, ts.ScriptTarget.Latest, true); + + return source; +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/collection.json b/projects/ngx-ukis-ui-clarity/schematics/collection.json new file mode 100644 index 000000000..2616118f5 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/collection.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": { + "ng-add": { + "description": "Add UKIS specific files to your project.", + "factory": "./ng-add/index#ngAdd", + "schema": "./ng-add/schema.json" + }, + "add-routing": { + "description": "Add routing to your UKIS project.", + "factory": "./add-routing/index#addRouting", + "schema": "./add-routing/schema.json" + } + } +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/html-utils.ts b/projects/ngx-ukis-ui-clarity/schematics/html-utils.ts new file mode 100644 index 000000000..832034d8d --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/html-utils.ts @@ -0,0 +1,103 @@ +import { Rule, SchematicContext, SchematicsException, } from '@angular-devkit/schematics'; +import { Tree } from '@angular-devkit/schematics/src/tree/interface'; +import { Readable, Writable } from 'stream'; + +export function loadEsmModule(modulePath: string | URL): Promise { + return new Function('modulePath', `return import(modulePath);`)(modulePath) as Promise; +} + +interface Iparse5Tag { + tagName: string; + attrs: []; + selfClosing: boolean; + sourceCodeLocation: { + startLine: number; + startCol: number; + startOffset: number; + endLine: number; + endCol: number; + endOffset: number; + }; +} + +/** + * Update a HTML File with 'parse5-html-rewriting-stream' + * https://github.com/angular/angular-cli/blob/aedfcc1862afc599ea18c578248d0aa373a947bb/packages/angular_devkit/build_angular/src/utils/index-file/html-rewriting-stream.ts#L11 + */ +export function updateHtmlFile(path: string, startTagStr: string, endTagStr: string, items: string | string[]): Rule { + return async (tree: Tree, context: SchematicContext) => { + + const buffer = tree.read(path); + if (buffer === null) { + throw new SchematicsException(`Could not read index file: ${path}`); + } + + const { RewritingStream } = await loadEsmModule( + 'parse5-html-rewriting-stream', + ); + + const rewriter = new RewritingStream(); + const startTags: Iparse5Tag[] = []; + rewriter.on('startTag', (startTag: Iparse5Tag) => { + startTags.push(startTag); + rewriter.emitStartTag(startTag); + }); + + const endTags: Iparse5Tag[] = []; + rewriter.on('endTag', (endTag: Iparse5Tag) => { + endTags.push(endTag); + if (endTag.tagName === endTagStr) { + if (Array.isArray(items)) { + for (const item of items) { + rewriter.emitRaw(item); + } + } else { + rewriter.emitRaw(items); + } + } + rewriter.emitEndTag(endTag); + }); + // context.logger.info(`INFO: update of some Tags in ${path}`); + + + return new Promise(resolve => { + const input = new Readable({ + encoding: 'utf8', + read(): void { + this.push(buffer); + this.push(null); + }, + }); + + const chunks: Array = []; + const output = new Writable({ + write(chunk: string | Buffer, encoding: string, callback: () => void): void { + // https://github.com/microsoft/TypeScript/issues/23155 + if (typeof chunk === 'string') { + chunks.push(Buffer.from(chunk as any, encoding as any)); + } else { + chunks.push(chunk); + } + callback(); + }, + final(callback: (error?: Error) => void): void { + const full = Buffer.concat(chunks); + + const hasStartTag = startTags.find(i => i.tagName === startTagStr); + if (!hasStartTag) { + context.logger.warn(`startTag: ${startTagStr} is not in the file ${path}`); + } + const hasEndTag = endTags.find(i => i.tagName === endTagStr); + if (!hasEndTag) { + context.logger.warn(`endTag: ${endTagStr} is not in the file ${path}`); + } + tree.overwrite(path, full.toString()); + callback(); + resolve(); + }, + }); + + input.pipe(rewriter).pipe(output); + }); + }; +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/json-utils.ts b/projects/ngx-ukis-ui-clarity/schematics/json-utils.ts new file mode 100644 index 000000000..56af03d36 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/json-utils.ts @@ -0,0 +1,23 @@ +import { Rule, SchematicsException, Tree } from '@angular-devkit/schematics'; +import { parse } from 'jsonc-parser'; + +/** + * Update a JSON File + * + * The callback function gets the actual file + */ +export function updateJsonFile(path: string, cb: (jsonData: T) => T): Rule { + return (tree: Tree) => { + if (!tree.exists(path)) { + throw new SchematicsException(`${path} is not in the workspace!`); + } + const source = tree.read(path); + if (source) { + const sourceText = source.toString('utf-8'); + let json = parse(sourceText) as any as T; + json = cb(json); + tree.overwrite(path, JSON.stringify(json, null, 2)); + } + return tree; + }; +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/migrations/migration.json b/projects/ngx-ukis-ui-clarity/schematics/migrations/migration.json new file mode 100644 index 000000000..68146ca0c --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/migrations/migration.json @@ -0,0 +1,4 @@ +{ + "$schema": "../../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": {} +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.html b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.html new file mode 100644 index 000000000..5935f8361 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.html @@ -0,0 +1,18 @@ + + @if(ui.alert){ + + } + @if(ui.progress){ + + } + + + + + + diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.scss b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.scss new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.scss @@ -0,0 +1 @@ + diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.ts.template b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.ts.template new file mode 100644 index 000000000..a8e9727d1 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/app.component.ts.template @@ -0,0 +1,88 @@ +import { Component, OnDestroy } from '@angular/core'; + +import { ClrMainContainerModule, ClrNavigationModule } from '@clr/angular'; + +import '@cds/core/icon/register.js'; + +import { HeaderComponent } from './components/header/header.component'; + +import { GlobalAlertComponent } from './components/global-alert/global-alert.component'; +import { AlertService, IAlert } from './components/global-alert/alert.service'; + +import { GlobalProgressComponent } from './components/global-progress/global-progress.component'; +import { ProgressService, IProgress } from './components/global-progress/progress.service'; + +import { Subscription } from 'rxjs'; +import { ExampleViewComponent } from './views/example-view/example-view.component'; + +interface IUi { + alert: null | IAlert; + progress: null | IProgress; + subs: Subscription[]; +} + +@Component({ + selector: '<%= appPrefix %>-root', + imports: [ClrMainContainerModule, ClrNavigationModule, GlobalAlertComponent, GlobalProgressComponent, HeaderComponent, ExampleViewComponent], + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'] +}) +export class AppComponent implements OnDestroy { + title = ''; + shortTitle = ''; + + ui: IUi = { + alert: null, + progress: null, + subs: [] + }; + + constructor( + private alertService: AlertService, + private progressService: ProgressService + ) { + const meta = this.getHtmlMeta(['title', 'version', 'description', 'short-title']); + if (meta['title']) { + this.title = meta['title']; + } + if (meta['short-title']) { + this.shortTitle = meta['short-title']; + } + this.ui.subs = this.sub2AlertAndProgress(); + } + + /** + * returns an object with the keys from the input array + */ + getHtmlMeta(names: string[]) { + const ref = document.getElementsByTagName('meta'); + const obj: { [name: string]: string } = {}; + for (let i = 0, len = ref.length; i < len; i++) { + const meta = ref[i]; + const name = meta.getAttribute('name'); + if (name && names.includes(name)) { + const cv = meta.getAttribute('content') || meta.getAttribute('value'); + if (cv) { + obj[name] = cv; + } + } + } + return obj; + } + + sub2AlertAndProgress() { + const subs: Subscription[] = [ + this.alertService.alert$.subscribe((alert) => { + this.ui.alert = alert; + }), + this.progressService.progress$.subscribe((progress) => { + this.ui.progress = progress; + }) + ]; + return subs; + } + + ngOnDestroy() { + this.ui.subs.map(s => s.unsubscribe()); + } +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/components/README.md b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/components/README.md new file mode 100644 index 000000000..fb18cd5bc --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/components/README.md @@ -0,0 +1,12 @@ +# In this folder there are the components with are reused in routes + +## There are some default components which you can adjust for your needs +- ukis-global-alert +- ukis-global-progress +- ukis-header +- icons + +to generate new components use `ng generate components/ [options]` + +for more information see: +- [ng generate](https://angular.io/cli/generate) diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.html b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.html new file mode 100644 index 000000000..a6f6a6fc1 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.html @@ -0,0 +1,14 @@ +
+

This is the content-area

+
+ + + + + + + diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.scss b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.scss new file mode 100644 index 000000000..9f0d6f21a --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.scss @@ -0,0 +1,10 @@ +.content-area { + height: 90%; +} + + +.ukis-footer { + min-height: 10%; + height: auto; + padding: 0rem 1rem; +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.spec.ts b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.spec.ts new file mode 100644 index 000000000..f2d485d4b --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.spec.ts @@ -0,0 +1,26 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { ExampleViewComponent } from './example-view.component'; +import { ClrNavigationModule, ClrVerticalNavModule } from '@clr/angular'; + +describe('ExampleViewComponent', () => { + let component: ExampleViewComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [ClrNavigationModule, ClrVerticalNavModule], + declarations: [ ExampleViewComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ExampleViewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.ts b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.ts new file mode 100644 index 000000000..b33226d67 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/app/views/example-view/example-view.component.ts @@ -0,0 +1,22 @@ +import { Component, OnInit, HostBinding, OnDestroy } from '@angular/core'; +import { ClrNavigationModule, ClrVerticalNavModule, } from '@clr/angular'; + + + +@Component({ + selector: 'app-example-view', + templateUrl: './example-view.component.html', + imports: [ClrNavigationModule, ClrVerticalNavModule], + styleUrls: ['./example-view.component.scss'] +}) +export class ExampleViewComponent implements OnInit, OnDestroy { + @HostBinding('class') class = 'content-container'; + constructor() { } + ngOnInit(): void { + + } + + ngOnDestroy(): void { + + } +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/.gitkeep b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-128x128.png b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..5570d1d98394d7a023a1833eaf699fe105e150b5 GIT binary patch literal 10112 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 Yi<*IMu0sLwXB|LJN=dRp!YKHE0ECXNHUIzs literal 0 HcmV?d00001 diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-144x144.png b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..30bff726d3f22470ab1301bfbd61de199f7682a3 GIT binary patch literal 10691 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 literal 0 HcmV?d00001 diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-152x152.png b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..330715e604f2b6f2baf2c4ba5c63083a0758ccc1 GIT binary patch literal 9586 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 literal 0 HcmV?d00001 diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-192x192.png b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..3a60314926d3f4d216173726ae092c2102b9a412 GIT binary patch literal 10055 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%0AS|QnaEGlTh z%InwM#_w5hC*uH9DR2edV;vVQyCTD;&EA!4T8Z9S%L#Nz(%Q6Dl|iM!TM!R1aULeL z2MwpxX$V|o7Tf^API_3LbUo6pafyK<^4EJ|y->3>cLwc)R=M427vvl=;E3s#!4{3yD#u39~fGO_cc}S znz+ORZX|GsIN2_odod{Fsp0lTyOMXWDp8g+rcO&O`r8Br>*j^isF+hAi>9Uo3pRWpk=DPX$GWpp(MhAo(>Go)GuIlT}y;ra_@N4@?55Gs7$)=RfFV_T9&VRS!U(+;U~mNk|711Qs9kVvZ{21p+)^d%0ROe)xSv~ z$2qFbb-d*~Sj0qKL% zB_amWh$sjnh=i1M57HnVL&JA-KJS0={xH`y7wl*4{p?tKt$W>T&C`j1Nm2JJN7F`o zPNYWJ$I<)%B|aSMn>h}4ZpAiY5ZzqUns7vflg%T~pF+zw2H z@bgZKYqY2G1;R8jF|@{$9MvB74uWE7h>WhV(KslR$)$QHz>EfH8il0CCxkA9L2&wH z;Dw?eTQ~KUkb|S=RsU`)B2kGA<;&HfCw=HU@IGd{)VM2w4^@#M!mJhIIUjS!%}wkM z>;=RXJCXP9mek^>=g(`|L**!9pfZuzXFU7}qky$!Dr7e!nBlBz69Z3P4B24d-QMGy zdD+AMH`RgfxGbXnn{FF+NG&@x<)sNfro=!K)`qJ+ZmeUSXztL@z+AB>bs<(y(9!iv z@EZh9EGnK(6!x6D=5$sV*$p^q9XsZNML_9w5Iu4?%D;R$j=pv8X(TpbC_X5k*8x$* zHrLWFL0$FfB_!OYKCluE@K%94j4vRIc)G;;eg+&(#a^L>)wvdo(B>E5yk(Y>R-HE> zA_N;uW8K`z+?zL!MVP-|UZ%y0{{nfGQD~V#a}sSO>zwE%Ps*jg6$IK`?<481bNft4 zDF`hd27Cy?UUQDgi|tb-0R$FoL4i>&>>dAdS+L8s_!TE7$_vtINnXw_`U4&yjiszq z^o>`**ZPfdjau!1aH*PhJ)SrC(I}&jawhfNh=CZo}}H zD2nR6h63O+@S?NcGFI)v88D4Xva<2K$}%_}MVida#H?=VL)C<^(Lo# zOzDPwwr(o!Pq-$4=68_F53ZECI0@XLn1Qvncz479n+`rJio``RN^K~++xx$?&hP&& zQ7#b(??&@pUa+TPgg@$p{rjZIXC^MuKLVj;ha`&U_nH0nVMg z^u@XE1sveEQGCtIid$upl03s5%;?zZYuF_~^56O(k4Nevml%LvF7=Tt)&6tq&pc3w zjCMZFkMX@l1AE(-5ny-9QRDD9>`bg8A&4JYU0M{{9@^OTSswlgWBxFvLW;B86z|%5 z!l!$ke7OjmSa;7uu8j?2%*8v7@v$A8z|+^{=g>x6hKO7q-hr{z zwoSQx0(2x*)TW&h!84bq+S8#OS$$$J-4ByXZv5zxdV`@G?hR2hZ13XsHZ6$N4lAXl zgNyl%k5g4byTT3*JHAV+Q~>b*{41-MyBp0F1aE$BZ3O+Ja!1Gw+{-4?5*0vt{2E{% z2um3BkA95_%^?;m5%;~p924Ul&Xr~80lrgCKP`Jt)E>C3)&==t_d@*FZcYlVr>^XB zlbbaR=-Xk*kP6}KK>2a<{ylIPv7i$xiWoSj_1QxUk(}4D6D}2adIrOSjs3))sG?E3p@}kY zey}T9AqdX`ANcgyyvRY#BU={F0U(+ksxY=!$Qz7daA#J;HT%%TcZh4RLaFfIfu@;g z{~^kqNd52TmSrDAj#xnG3K13_8oo=@4xQWEUCZIRz}HFjFX0hCl{^1iQ%Q7tp@hY2 zlz5$nh*-e8;BIc14t7RI8`$TCG>3x`>$8*29-Q)kUv_rntw*(9b;IoT`V^~Bz;DoQlMe~IotDZ ze(V7&>?Y~UIGrE}|gO$%hXga zYYg=pLw>-@&f-2LgVZ=2L-gRyXun;dpNfcxpGT3}KcXn-pj&u7b^p@w!y5CC$cPOok2IIH`Y&cbm-og4OOYsa`qx!PfbT!Lkc(0GS`QSQ`WL zB+tx%h5p93UYT#{bd}A^tF3+3^w$|j%A9*8bJ~hL`65q|8mTQ5O*IGKq8Xj&{wsDk zNJ3Iob++9OBDYHCghEmw!aUDp5|en;&fwdx+xJ5I-lWJwZxi8crk`&x1kLrnA>Olk zv$9)4@8c%|cLjbBBx&(tf@jya2y>v*wl1*09boi^8-qA2E1d*oGM|#tcKDM}e{cFB zM(3`7VkWBAOjA}Vg796$bz9*Zl+025tLMdkR*-oCyB@l_GdOT#$Kv?pF<=&CS~+;U zD^Z|yhw2iW`V5(3Hk8kVZ$r+6v%^194)`+quPk?|^)P|mX;M)3X{(co=Q8~f9!V|K zRQ;sDnx9n+V2IPh5l+6)8a$G+=BwHG{6`ZgaOJH=e`!8_%03BP`G-sI5vsLuP4BZP zzTzKaAALpRA579tKF72OuY?}^a^he(8rCC10}Ki8aA%dSBB(Bat5 zO4iz!=;r<4MF~ub(qNcRPp)bO#)GF!#n#ynIZJFjXpY=^2qB#;dqiGJ2=9Pfz3@itbu=+25~kb~#R&GBPlkuBURRJ9b&&??ofms@(p zMQxjGcAU>#_*sX)8c209T)85F=%nlvIClw=hYP<-p&fc49c{ifw=(A=F=52kO?wVt zl#fAWGk3U^<>vT2vZ0>pIR6w?m$2q;y>X$CA_aGXn*I-x^$0!R_Qj zZh|E=?o|oto;u+1h!cQ*!6@4g@>zx5FU8r!V#HA>w;T}rbS;tQoW7U}lc1{G?jRwT zPA8J&A_zsqx%jO60h20&66?U@i&H677De3rAGRgjz|6O3?}+o z9olYrI)$8+*`6UMf!;r;V*@0Jl-13vq}0nnhkkY-nrKVp;ScY9E57natJ6=?(&LA_ zvcFoiLIU$j<#b-ABt{&~4Q|>L8i18CuccAvd^G(qTYanyfeW$q{~3o+ z|5nZpoT?v9qjA+ZjY)*6N6uFd^jx}=9wdVxx^`brm|^^=f0*bG&O1AEV~u@DTDtsW z#jMQdO{77JEAR>s%P%PgW)6TPxyOGSI0ZqlW^L#l!*)?LW@>H?Ot zUYa9#Ha6IZ6zFq-<2!11=PkQo&Qy89HNFM(L8}%00RP}B4fC_(K(}$1?j5ER*s<77 zRkldz!=FJ{muhZ!f}&;LL=Kv7*dLD~Rq*4)&Pv7IWDeK5cWnQ?L-@z)Y7eVSw3dNE zjnl*t)ubc;0Lfjo==53q*}WZ2P^y)yfik%fr`Gn`DbEKVXGbOHs0BJxL~4QPzXxOk zb5yON-O>8$p_P<->?|5F7rL@x2RNb4=oqz{lVi0N#$JrjJx&=J0jHnz08t6x2@fyg z>T*%1Qe|IWeZE#hPB*g>C}jo}8n=Fay&vLZ`BdLT`8#+SmGY##r^Zot&sK(xC9$=U zMhJS7U?u7o`WHi43hF98OF2HguSNefm}p@|VzV?+No8NF0?~vU4<58A1(MNd=lx6C zr(3eI#E?may`T*>L$hQk2#f=4Wfza&%HoP1WjrLyT?dq?Q*n+HY9xD`&nZDpth|>;3n@O2%%^!l=hdFm5w>8wPp%DOK zDO)>mqSI__^dk5Zy@;Zr5ltEc6j%6Bti}%sM*JD2=C^|@fY1Y`lbNRPMxXWRcpz1$ zlh>jj&z~0xWQjUg5arbRFQl8nn=ScZ@>+yTsFipEH9ZJ@-q=%-I3X~Vh;q3u?o^J| zym`e0P(Y!}P2h6uEdHt9Fb6P}Z#hS^VQ&7B3VK0R8b=%)1E z5H>o3U*z(5Ro=d5kjn)mJbDaRBlre@R)KPW-H7eoINeG+k?Vu72tuPmagoE9Ad6K_ z)cwe&j9y3|6i|iI0(daA37SJ7QnpW2!bo@f<%NDcp5TZ>!pYFX5(|@|knwU962N^^ zw{dF?M{^_OS0k~~3i}Wa6zYBkT?@r!8kHgCN$>#)`mii5l?c6~kgg~jOvlB3C4@$R zuA?}L<>%DxckMTMGE5W3DmP{ed~>M*2H!;a2*O3oOi#KtEhiEYKv;zr!Fjs|yyc-j znDO$S%CB7(iqk@iR2S1fMa;u z`8I51NM-cLwg}m5%*jC_@VkJhQ*s`D4&HQI?e!~w)!YTe5xQ>1tvW35xxg6V&7S|} zai6Xo&e5YhlZ|U{Iu({5sFzmf{`q5G^c2Gis416(6Cgqm*%3tTs~inW4caU46)}(1 zs)^rG?30Rj06rTxM*hA(9hqs(?$&eE@M3a_i;ID2?Xeo{BVb-k(6ebn<{(}NS|XZ$ z>R#T=4)BpY^SEbGn0GV|6c_N%MoY{mKk2{|dt0Z9-Xq8maX^ju+(>Z`f6gjykc0ks z^8JYGB!xRn@eevyIl}P@EY`B7{HvH$8!c*6sscxs{PK;Txs1lz5OViZEWiOGTU2ae z#u)a})KZn~caD@M1a?dQKGwfganReCEqm$I-`Q!L=P@(9<>1*D`MPGx3U6oQ4@c7R z;Hb1L-hrHh6o#xnkhE?l*yZ{Yr=2==A|C^Pw1BBZVpUu>o{oQ$-MH4L8Q6akAk?KJ z3U8x6Y_*Kjg}8uPr`;oKj#3?w8qi9ZNU>SMpy|t`1+5umDK2_$MkJ@&!Ixb3mdVcy zjuk|q?EmEkVQ-om`>hR@Ns4aB6&^=!RrPxG8!j+M0}pH&JEe7KP=F8R_WSv!cNZds zoiFsjT}$>3pw?vG-T*%D^`T?ajDt1ONFO~9BCbBvFnRgkls{2^F!Mz35x?p=F)F_ur<` zJBcs513F`3#!cgVE#X+eP)gEgEu}Epe0%J2us4i{amrS~c8f)2f}XP1yaxhj!f7xm z(;yeVpd0B+uD92XL#DAxOcWgT4J832#&6~E@*y?zQ$SErR=7id4xR$A!~K%u)@Tb2Eu3mz&Raku8@$bu}t%B&lyCgSoct1&?@WLFc-i?#@6fU)wy1Ja5) z?>zwA#g;QyWmN3fK^6rc{pdmC&!-ar3Igs{lxx{G6jQ@9;RYhMSXuii6{Az;xb6 z=F4J=^3FrVQTr;yC?!_>(fPhv9IegC~Bsx+b{KNJ3cQw}L6s2O0{}IUBDu(5-3M z$gtEHl`O_xbz(fwWHZxIJ|Y^NvoWEG)K;tl#pXNXb8WS9ex{7OGW=m@4On7)FRJ@4 zHe{S!sh?>JLE&#we6j2ILrQfTZ3}h(C&LQ9lOnM<1>brutpN;#D735nvK~*t)Ew)WZW0%cMqxgkc=DzlmoQm5l59xZn`yldwscNs+;#rOKC-pGswTssU;i(_8 z5{k`zn%Q1{apHr21&lkTK*sveeFbFd{q5}6Sk5GBTh5
zSeKTf1Sed8Vrr%Dt? zm}O~1-_P5S!(uzwiu+9RMEsec`~Be@fsx?fZD^fh3y;y&FV|CCVHeH>du7*z?Cc`b zUWQ(+AzT%@9A(AW%XOK)`6+P?9|C4iw_bP>!5FbsYMm<2(k9ek{$<9g(JNZ&ka8W! zN4+J5TGTAX70nKdi$q!pvvj&N4H-(+eX$PNIA2fU3ocd9gR#Kzr8PB+w9j@#Yvrg% z?DsJ*#MN=bc_pegoN+zhV(YtLv}bHZzm;0oo!!;!v_RLSS@&VAVv-nY_~21M zog^kCb*ZDyePTXdQX-fXO#F3rJ;RLrM8!Ss&ET>x23UE2nWyoJJl1DzbOqpoCHw`$aY?jM%YqLF~_A4DHxC8$xJ+8EtitZ`UR z5w9Y>zrDpp`rQ=&wx0&iZoTZ{3)$5>wAWRA_*n_=Z6hqeKagZ$*|U}|*Ys`v=z`)I zsZ~Q+HE_>dL$p1!w%OI|U~x`I6PqdWT3J%+l*UTTofRC6dL{ZGg_7nWhUAVv7b#N1 z60)PNF*0^$?RbZ5FEjr=JILGmT}2hU}r>67l*u;xvvrTM(xDlt_M zJrQX zUML9cTnn7Np_zI!GJ5OL0}k8U<_sSpj{&1{wT+3V)U^2U)@HHAtw>pxhp3(p&&vy> z0E=4=7zBRP2(rq`Dne_<;v|rQO`tQ0h0}7o_Bx&(%Lx^VG_}w@ zuppf%>IYvM9~yG(W`C=$bhvwQ^Nr3-rQ!<9iT~@ql4+Y+P5!F zO;m8CuuFcx>PAOp%Gb=&n#q#?FkNP&l7dXYz;w2JVWs#m-kI9pq~yi^zlIr6nJgKO zOcs_0L)qJVdHc_-YZ)qmF1I&je#hu{qePrnMMWSxvP)uN*r1tJ7FT<8U2|RW@N(T=m2j zaSqJ?+cX{R`T<+V%C>L9u4|&7cwux+xwq5>I2S-o_plscY*QPz7S_jp{lDdD)0uHH zRdm$9{@8iKySG#g-UkIbIA3j_aBNME1Up)##M$gmtbWVjL)6N{Kl%MT@5}t@Za0!u z?|^daEQtUv`rqE2Gyml6{JnvF#z{8Ox5B+=>7Z{Ygl^or?AGl@UwUfLyJbX|^_MCz z?V;!oq))%3M2)(iRMOEo8q$dreL%Q|?!6J$<5emPzRJI#M+pp~8J+!Q`T0>BI=9-l zVB3GvuDP7Z=+PKvc`B+_w}5zN%?E*jiBDS});S#MfkwMZx7Gwm_N?mUH;$pL_siSE z2nyVsNXXfp;!UB`Xr|=YUF4TZ+HH%~jzA|e`UEf9I90GBETJ#pXGAANk+oF4cBV`HCR>e24 z4d>wE`1_#MsUK&x?aywNP=m2RvPUEOsdhwpLPbNl54a+PYvR&eVo#=Lr6~&_-Kf*mCAyRw60k)bUd!$vrnxnK4 zY3sF@P|;>!VDKz6*w-|*#Bj6w!~IzOj6%JY3ivP{KrpLo{O-+}EW00*S3%&)2Rk`k1rN>8Gw`?x(zR^3!wtXY%LmQ(|h@vOOs26zqlQ9XySS`8_+0T9oEJ zE>fr#hmCB6E7Ut%8GPIN(@TdR#v_38SyNnpee1@_psc^6je5DMwfanE#mkp31+t#@ zu96FW&ha|!$hl~kR2-g5p!@+w<>LaY^J;B5%?+2h^Nr$0{?>EqdpTixC|B+RDIZ zi|S|MXK@2d${=_ocw|e3YD@(@v=!WY16k^~}0C z|KUdhZSz-u@@-0-*--$gQsz@~2MbpDBHdzN-uQbL!L8znl%&g3Wyks%WVb!5CVh}k zcP8F}BH6;g^OQED<0M44ZNEsqH_qFFy=Sqh`aWD{wa=#Y_ZKIEAh)_v8CxpdBY;Y~ zQsQ}^S*v<4wltM&-$MGepxgO-7LB!2SXOi$d4Bs%B=c=hYQ+yMe-I_@49O9-0gMPVsz2^#oxC2D}B>Abs)6Dr^1k)_(;1bTpGfZRUG!5kMCs&F{4hr_%5451t6OuZkhN zw;C?w|EfrE6=*oW#+@Cwe^M|o(o9XYTUX{Z{9qEr&&HBiQb0MxcRqXj0Z_jj2y*%f zUyqBC_Gi}B7{^PCekH2$`ZyUIU9~1 zNn`ELvz1zvv64o2TxC~AkDzPWo96Ml6a_HA&<#rF7~(*teX0um87Ak!vN-!Rpu^$X zS4q0X0UiTfDYyfaLy3oqr7S}mbE~uWpL{1;5yKTarQf1a~)Z*Ps$4@;Rb^{ z-?L(@tzDW%Cgu}9uTriuP{BzE(Q?}RTgR!0Ut{wR7-YP+X zMorDmnX9A_F;4p0X(pV4>;C#KhyQWWMa*R@U}1qwOzr2L{zdjvlk+{(bR@2BFB3TH zJqaNpU^4_VtcTfpIlJ!2cZ`KNtW+DgO*8Yeqrs_v$DsIvC&@IM&v0F{D}RdNy7B!F zi3yJc1Y9AiLR_xS{dlUa zUBSHn0}L+!@kHfshF-0ON99q&T-DdR7%Apwk>0i<1Q#)xFMnBI2b8qls<-mH`V%Y7 zx+#HGm-FxboIyxA*&RRp<-~n*#U*s7VDWYll8GV!CWXxxSE6~4|6_ZcdA@be{O-UD zzr#22Tc}MjKvI!)oGj`fx>=5plTzZdMl?3oqg*)Ts`}_Ddmso@Pg*}5S@2`q9J!(! z?5VwGJbF+N>#8}kW)ykE#zr-Ek5090^;=F|NTuCiyGH+V_E@)P9z>fe6WA*En0R!f z7Hh3;gP=7}tW;K!u=gSqKrf)Ft( zGV>M#@z0CYu@2yW-hX}ACB63Y%C-%*E-bvo@q%gTI{!MUWCb@f9Q@Mlw#wa5hkt^% zHcmjkC^+y1RFkh~Qq?oe$SovYPWN9KTr_Z90nc=2TU*=6%&3n)zQ3iiwX8f_{oiv= z>U`7(SuS zFuKGNM=Z%78M~n3Hj5O`#`*TvkzyU4-)9+;f`X`->2MG>mi9d@Vv zwilU}W49jRSoYH;up_Od>L~+Ef4vsH)|LYgJ}GDzslWU3X?5yZGMf!Sh@Z9;{02fJ zDAV;}N;R!er=Tp0*bCDzj1>vybXB|1hye4>DYRfueUtg%d9XMwTY(xGYf&{knNyy^#C9vfV zuQ&ZxNYOYZXFUxHS<~-uc`FPl!_$>A)9_v;(p}+v=6?kxL00fJ9kL;%myrdrovd_; z74P(xTIN*jib(Fc0b5AJm!xz?vvbsY^HsRNUIa9eku%a;51QMLZVyNi^kgfQ7~?u_ zQ+TUp7|~*EC*aArt#gSS?54X9og}=Ls|npG^cl=Vm~qfkHCOGYKZJnZ7Z0A`yRNje z*UT!zRN3ZRjZR9ELTeC-UM-q4Jhx&yoKE81YQOOrS>6x*v6aMO*BL$;t{yr{L8Kaj zz!QrvLiQLMKbEDDeH=aZ#oa{B>(~=@8#MFTqIU8JPuF|=_=?@s>$aQgkvRf@LvG0;??6h~CF`TZbQp;1*R(3A^~w(CwLb zPvk9o>mj`a91%M+=0NES*P~ySJ6?=_cG4`sZ^cYo3!)iDa%1;zoP2E{C z03_rAL{5%OW%2uf%V^34h9Q2rKD5Mcd0QN{~IGPc_Tmg0n8LH_j+r-1exa7e>bEu2^k*avu4VVo99PM`BTplA!lgfqh z@58cA1opRTwf)xN2lDo7<$@ZjH6@b}bu?8A zVk|OffCg0UwGPa~3C3T7H8 zOYvSZwFC6=TgDUJ{^}>(8ju0VAGZ~M)!^O<(kwI_Bh$?hsrfbIv6Xl!*HG~OJA|Jw zmJGz;3q<|?DQxtlWT9bUM+y7{n;_7PCKe-@!)fY1{o7h8r52$|hjmt|7Oo2#EH}$# zUSK*06Vo=l4=P)bA*NshwLm}17VtSh(x*`sCd=~nkVIx%0oEziVq8h{`85#NSV}D3 zdrHa0<_nXCx$;jnE@=pV+gpW)pMme&&;b4{0u#tnp}gc=5WH5eV^ntDfoh2$oGYLt z{JG!GA=X|X(W9K>U(N>bhRG74v`{KDnfSCB{kv{@A`@Iy2HdU5|dQ-pbC=| z_aIDJgV0<;{X441_#3&P9Jelji2PMGUROdLKtFb1<2`58bN%Oerz5Z`Gs7b@<-Xm& z(YMLbf5aOxTW&J4go4ny!*z*_Scor?sv3&O!TFtft!8NrT!guv2(xRynGS;N?PVk- zA%YKanIhxOmYJ~Hqw8$lFdTRd1_#}krE#A5R^X}5_nksJALA~(iL{IbztIS}d0iJ< JtZDV+{{U_cqXPf{ literal 0 HcmV?d00001 diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-72x72.png b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/icons/icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..88eaa84c36f31d213f4e5c9dbd00aa7e7883758e GIT binary patch literal 5258 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 gDc(K$GF(Xi2NqxwH*` + + + + + + + + + + + + + + + + + + diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/ukis.png b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets/ukis.png new file mode 100644 index 0000000000000000000000000000000000000000..78e4e6ffdc6b2f39074482a8d045f1b289c945a2 GIT binary patch literal 3392 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:not(:last-child) { + border-bottom: var(--clr-vertical-nav-trigger-divider-border-color, var(--fallback-color-no-clr)) solid 1px !important; + } +} + +/** nav orientation on right side ---------------------------------- */ +.clr-vertical-nav.right { + order: 1 !important; + + .nav-trigger { + margin-right: auto; + + .nav-trigger-icon { + margin-left: 0rem; + margin-right: auto; + + &[direction="right"] { + transform: rotate(270deg); + } + + &[direction="left"] { + transform: rotate(90deg); + } + } + } + + &.is-collapsed { + .nav-icon { + margin-left: auto !important; + margin-right: var(--nav-items-distance-side) !important; + } + + .nav-trigger { + margin-left: 0.15rem; + } + } +} + + +/** floating vertical nav only not mobile -------------------------- */ +@media screen and (min-width: 768px) { + .content-container.floating { + display: block; + position: relative; + + .content-area { + position: absolute; + width: 100%; + height: 100%; + } + + .clr-vertical-nav.right { + position: absolute; + margin: 0.5rem; + max-height: calc(100% - 2.5rem); //0.5 for map-controls + left: auto; + right: 0; + } + + .clr-vertical-nav { + position: absolute; + margin: 0.5rem; + max-height: calc(100% - 2.5rem); //0.5 for map-controls + left: 0; + } + + nav.sidenav { + position: absolute; + //right: 0; + left: 0; + height: calc(100vh - (24px * 2.5)); + background: var(--clr-vertical-nav-bg-color, --fallback-color-no-clr); + } + } +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_overwrites-clr-variables.scss b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_overwrites-clr-variables.scss new file mode 100644 index 000000000..5476fe31e --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_overwrites-clr-variables.scss @@ -0,0 +1,4 @@ +:root { + --clr-font-base-size: 14; // 14; + --clr-vertical-nav-width: 16rem; // 12rem;//10rem !default; +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-core-ui-layout.scss b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-core-ui-layout.scss new file mode 100644 index 000000000..8d5ef958a --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-core-ui-layout.scss @@ -0,0 +1,110 @@ +:root { + --header-branding-icon-color: #fff; + --header-branding-icon-color-mobile: #565656; +} + +/** HEADER -------------------------------------------------------------- */ +.header { + .branding { + flex: 0 1 auto; + overflow: hidden; + // min-width: 10.2rem; + + a { + padding: var(--cds-global-space-3); + cds-icon { + color: var(--header-branding-icon-color); + } + + &.nav-link{ + overflow: hidden; + } + } + + .title { + font-size: 1rem; + text-overflow: ellipsis; + overflow: hidden; + + &.short { + display: none; + } + } + + .version { + margin-left: 0.3rem; + font-size: 1rem; + color: var(--clr-header-title-color, #fafafa); + font-weight: var(--clr-header-title-font-weight, 400); + font-family: var(--clr-header-title-font-family, Metropolis, "Avenir Next", "Helvetica Neue", Arial, sans-serif); + letter-spacing: 0.01em; + line-height: 3rem; + text-decoration: none; + } + } + .header-nav{ + .nav-link{ + &.active { + background-color: rgba(255,255,255,.15); + opacity: 1; + } + } + --clr-vertical-nav-bg-color: hsl(198, 0%, 91%); + } + --clr-header-bg-color: hsl(198, 0%, 20%); +} + +@media screen and (max-width: 768px) { + .header { + .branding { + a { + cds-icon { + color: var(--header-branding-icon-color-mobile); + } + } + + &.short-title { + .title.short { + display: flex; + } + .title { + display: none; + } + } + } + } +} + +/** FOOTER -------------------------------------------------------------- */ +.footer { + background-color: var(--clr-vertical-nav-bg-color, hsl(198, 0%, 91%)); + padding: 0.2rem 1rem; + + p { + margin: 0; + } +} + +.main-container .content-container .footer { + position: fixed; + bottom: 0px; + width: 100%; +} + +/** CONTENT -------------------------------------------------------------- */ +// adjust padding of main container for map!!! +.main-container .content-container .content-area { + &.map-view { + padding: 0; + } +} + +.content-area { + background: #fff; + color: var(--clr-color-neutral-700, var(--fallback-color-no-clr)); +} + + +.text-primary { + color: var(--clr-color-action-600, var(--fallback-color-no-clr)); +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-inputs.scss b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-inputs.scss new file mode 100644 index 000000000..cd1478917 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-inputs.scss @@ -0,0 +1,33 @@ +/** BUTTONS */ +button:focus { + outline: none; + box-shadow: 0 0 1pt 1pt var(--clr-color-action-600, var(--fallback-color-no-clr)); +} + +.iconButton:hover { + cursor: pointer; + color: var(--clr-color-action-600, var(--fallback-color-no-clr)); +} + +.iconButton-drpDwn { + cursor: pointer; + transform: rotate(180deg); +} + +.iconButton-drpDwn-active { + cursor: pointer; + color: var(--clr-color-action-600, var(--fallback-color-no-clr)); +} + +.headerButton:hover { + cursor: pointer; +} + +.ukis-range-input { + --clr-forms-range-track-color: var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + + &:focus { + outline: none; + box-shadow: 0 0 1pt 1pt var(--clr-color-action-600, var(--fallback-color-no-clr)); + } +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-layer-nav.scss b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-layer-nav.scss new file mode 100644 index 000000000..c2e1f5576 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-layer-nav.scss @@ -0,0 +1,218 @@ +.clr-vertical-nav { + .layers { + padding-bottom: 2px; + + .nav-divider { + border-width: 1px 0 0 0; + margin: 0.3rem 0; + } + + .layer, + .layergroup { + margin-left: 0.2rem; + + .iconButton { + height: 1rem; + margin: 0 1px; + + &.disabled { + pointer-events: none; + color: var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + cursor: default; + } + + &.active { + color: var(--clr-color-action-600, var(--fallback-color-no-clr)); + } + } + + .head { + display: flex; + + input.hide { + display: none; + + &+label { + position: static; + display: inline; + min-height: auto; + padding-left: 0; + + &:before, + &:after { + content: none; + } + } + } + + .title { + margin-left: 0.2rem; + flex: 1 1 0; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + } + } + + .body { + padding-left: 0; + margin: 0 0 0.3rem 8px; + + .tools { + display: flex; + justify-content: flex-end; + padding-right: 0.2rem; + padding-left: 0.1rem; + + span { + flex: 1 1 0; + } + } + + .layersettings { + .form-group { + display: flex; + + label { + padding-right: 0.4rem; + } + + input { + flex: 1 1 0; + } + + span { + min-width: 1.5rem; + text-align: center; + } + + &.opacity-input { + .clr-form-control { + padding-left: 0.4rem; + margin-top: 0; + } + + label { + display: flex; + } + } + + } + } + } + } + + .layergroup { + .body { + border-left: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + margin: 0 0 0 8px; + + .sublayers:last-child { + .layer { + border-bottom: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + } + } + + .tabsbody { + &.description { + padding: 0.1rem 0.1rem 0.1rem 0.3rem; + word-break: break-word; + } + + &.description, + &.legend { + border-top: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + border-right: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + } + } + + .layer { + margin-left: 0; + border-top: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + border-right: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + + padding: 0.2rem 0 0 0.2rem; + + &:not(.expanded) { + padding: 0.2rem 0 0.2rem 0.2rem; + } + + .body { + margin: 0 0 0 0.6rem; + + .tabsbody { + border-bottom: none; + border-right: none; + border-top: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + } + + .tools { + border-bottom: none; + } + } + + .head { + margin: 0 0.2rem; + } + } + } + + + } + + .layer { + .body { + border-left: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + + + .tools { + border-bottom: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + } + + .tabsbody { + border-bottom: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + border-right: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); + + .layersettings .form-group { + padding: 0.2rem; + + .ukis-range-input { + vertical-align: top; + } + } + + .description { + padding: 0.1rem 0.1rem 0.1rem 0.3rem; + word-break: break-word; + } + } + } + } + + h5 { + font-size: 14px; + margin: 0 0 4px 4px; + font-weight: 700; + cursor: pointer; + + .iconButton { + margin-top: 3px; + } + + &.active, + &:hover { + color: var(--clr-color-action-600, var(--fallback-color-no-clr)); + } + } + } + + .lproperties { + border-radius: 5px; + border-top-left-radius: 0px; + border-bottom-right-radius: 0px; + border-color: #c0c0c0; + border-style: solid; + border-width: 0px 0px 1px 1px; + overflow-x: auto; + } +} \ No newline at end of file diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-theme.scss b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-theme.scss new file mode 100644 index 000000000..f87d4c105 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-theme.scss @@ -0,0 +1,31 @@ +/** + * https://css-tricks.com/guides/css-custom-properties/ + * https://css-tricks.com/using-custom-properties-modify-components/ + */ + +/** + * https://clarity.design/documentation/themes #CSS Custom Property Dark Theme + * https://github.com/vmware/clarity/search?q=var%28&unscoped_q=var%28&type=Code + * https://raw.githubusercontent.com/mathisscott/clarity-theming-starter/clarity-css-dark-theme/src/_dark-theme.scss + */ + +/** + * NOTE: If your application must support IE11, you must define all your custom properties + * in the `:root {}` selector. Otherwise, the polyfills we use will not recognize + * the overrides in IE. Try to limit the number of `:root {}` declarations in your CSS. + * It's not a performance issue. It's just saner to maintain. + */ + +@use "./ukis-variables"; +@use '@cds/core/global.css'; +// --- overwrite Clarity variables - remove if +@use "./overwrites-clr-variables"; +@use "@clr/ui/src/main"; +// ---------------------------------- +@use "./clr-vertival-nav-layout"; + +@use "./ukis-inputs"; +@use "./ukis-layer-nav"; + + +@use "./ukis-core-ui-layout"; diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-variables.scss b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-variables.scss new file mode 100644 index 000000000..3731e9505 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/styles/_ukis-variables.scss @@ -0,0 +1,3 @@ +:root{ + --fallback-color-no-clr: rgb(30, 255, 0); +} diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/index.ts b/projects/ngx-ukis-ui-clarity/schematics/ng-add/index.ts new file mode 100644 index 000000000..7f8b75330 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/index.ts @@ -0,0 +1,460 @@ +import { + Rule, SchematicContext, Tree, chain, apply, url, mergeWith, move, + filter, externalSchematic, noop, SchematicsException, applyTemplates, schematic +} from '@angular-devkit/schematics'; +import { normalize, join, getSystemPath, Path } from '@angular-devkit/core'; +import { UkisNgAddSchema } from './schema'; + + + +import { + getStyleExt, checkProjectIsApplication, hasSchematicsStyle, getProjectName, checkProjectSourceRoot +} from '../workspace-utils'; +import { addServiceComponentModule, removeServiceComponentModule, ImoduleImport } from '../ast-utils'; +import { updateJsonFile } from '../json-utils'; +import { updateHtmlFile } from '../html-utils'; +import { TsconfigJSON } from '../schema.tsconfig'; +import { UkisNgAddRoutingSchema } from '../add-routing/schema'; +import { updateWorkspace, getWorkspace } from '@schematics/angular/utility/workspace'; + + +/** + * You should add @dlr-eoc/ngx-ukis-ui-clarity only to an angular application not a library! + */ +function isProjectTypeApplication(projectName?: string): Rule { + return async (tree: Tree) => { + const workspace = await getWorkspace(tree); + checkProjectIsApplication(workspace, projectName); + }; +} + +// https://angular.io/guide/schematics-for-libraries +// https://dev.to/thisdotmedia/schematics-pt-3-add-tailwind-css-to-your-angular-project-40pp +export function ngAdd(options: UkisNgAddSchema): Rule { + /* return async host => { + }; */ + const addRoutingOptions: UkisNgAddRoutingSchema = { + project: options.project, + addFiles: options.addFiles, + updateFiles: options.updateFiles + }; + + const rules: Rule[] = [ + /** + * externalSchematic not working with @angular-devkit ^8.3.20 (from 9.0.0 ???) + * https://github.com/angular/angular-cli/issues/17085 + * maybe add @angular/clr to dependencies not peer.. + * + * https://github.com/angular/angular-cli/issues/15250 + * https://medium.com/@coco.boudard/hello-1ab084f63a1 + * https://github.com/BottleRocketStudios/ng-momentum/issues/10 + */ + (options.addClr === false) ? noop() : externalSchematic('@clr/angular', 'ng-add', options), + isProjectTypeApplication(options?.project), + (options.addFiles === false) ? noop() : ruleAddFiles(options), + (options.updateFiles === false) ? noop() : ruleAddImportsInAppModule(options.project), + (options.updateFiles === false) ? noop() : ruleUpdateAngularJson(options), + (options.updateFiles === false) ? noop() : ruleUpdateTsConfigFile(), + (options.updateFiles === false) ? noop() : ruleUpdateIndexHtml(options), + (options.routing === false) ? noop() : schematic('add-routing', addRoutingOptions), + (options.routing === true) ? removeViewsAfterRouting(options.project) : noop() + ]; + + return chain(rules); +} + +/** + * + */ +function removeViewsFiles(optionsProject: UkisNgAddSchema['project']): Rule { + return async (tree: Tree, context: SchematicContext) => { + // check if /views/example-view is existing from ng-add + + const workspace = await getWorkspace(tree); + const projectName = getProjectName(workspace, optionsProject); + if (projectName) { + const project = workspace.projects.get(projectName); + + if (project && checkProjectSourceRoot(project, context)) { + const sourcePath = join(tree.root.path, normalize(project.root), project.sourceRoot); // project.sourceRoot + const appPath = join(sourcePath, 'app'); + const viewsPath = join(appPath, 'views/example-view/'); + /** + * loop over the tree and then use tree.delete + * check that the path is correct src/.. or /src/... + */ + tree.visit(file => { + if (file.startsWith(viewsPath)) { + tree.delete(file); + } + }); + } + } + }; +} + +/** + * remove import { ExampleViewComponent } from './views/example-view/example-view.component'; + */ +function removeViewsImports(optionsProject: UkisNgAddSchema['project']): Rule { + const rules: Rule[] = []; + const imports: ImoduleImport[] = [ + { classifiedName: 'ExampleViewComponent', path: './views/example-view/example-view.component', declare: true } + ]; + + imports.map(item => { + rules.push(removeServiceComponentModule(optionsProject, item)); + }); + + // then chain the rules to one + return chain(rules); +} + +/** + * remove import and files for views/example-view; + * + * TODO: warnings + * In your workspace is no style extension defined use default scss + */ +function removeViewsAfterRouting(optionsProject: UkisNgAddSchema['project']): Rule { + return chain([ + removeViewsFiles(optionsProject), + removeViewsImports(optionsProject) + ]); +} + +/** + * add files from template folder + * - src + * - assets + * - styles + * - app + */ +function ruleAddFiles(options: UkisNgAddSchema): Rule { + /** + * app.component.html + * add default template from files + * + * ... + * + * + * TODO: check for style files and replace them e.g. app.component.styl ... + */ + return async (tree: Tree, context: SchematicContext) => { + const workspace = await getWorkspace(tree); + const projectName = getProjectName(workspace, options.project); + if (projectName) { + const project = workspace.projects.get(projectName); + + if (project && checkProjectSourceRoot(project, context)) { + const sourcePath = join(normalize(project.root), project.sourceRoot); // project.sourceRoot + const assetsPath = join(sourcePath, 'assets'); + const stylesPath = join(sourcePath, 'styles'); + const appPath = join(sourcePath, 'app'); + const styleExt = getStyleExt(project, workspace, context); + const templateVariabels = Object.assign(options, { + appPrefix: project.prefix, + styleExt + }); + + const srcTemplateSource = apply(url('./files/src/'), [ + applyTemplates({ ...templateVariabels }), + filter((path: Path) => { + const separator = /[\\|\/]/g; + const pathSeperators = path.match(separator); + if (pathSeperators && pathSeperators.length > 1) { + return false; + } else { + const testFiles = ['favicon.ico', 'styles.css', 'styles.scss']; + /** + * check for existing files the are allowed to overwrite! + */ + const destPath = join(sourcePath, path); + if (tree.exists(destPath)) { + for (const f of testFiles) { + /** delete styles.css file it is replaced with scss */ + if (f === 'styles.css') { + const styleExtTest = join(sourcePath, f); + if (tree.exists(styleExtTest)) { + tree.delete(styleExtTest); + } + } + if (destPath.includes(f)) { + tree.delete(destPath); + } + } + } + return true; + } + }), + // renameTemplateFiles(), // Remove every `.template` suffix from file names. + move(getSystemPath(sourcePath)), + ]); + + const assetsTemplateSource = apply(url('./files/src/assets'), [ + applyTemplates({ ...templateVariabels }), + move(getSystemPath(assetsPath)), + ]); + + const stylesTemplateSource = apply(url('./files/src/styles'), [ + applyTemplates({ ...templateVariabels }), + move(getSystemPath(stylesPath)), + ]); + + const appTemplateSource = apply(url('./files/src/app'), [ + applyTemplates({ ...templateVariabels }), + filter((path: Path) => { + const testFiles = ['app.component.html', 'app.component.ts', 'app.component.css', 'app.component.scss']; + /** + * check for existing files the are allowed to overwrite! + */ + const destPath = join(appPath, path); + if (tree.exists(destPath)) { + for (const f of testFiles) { + /** delete app.component.css file it is replaced with scss */ + if (f === 'app.component.css') { + const styleExtTest = join(appPath, f); + if (tree.exists(styleExtTest)) { + tree.delete(styleExtTest); + } + } + if (destPath.includes(f)) { + tree.delete(destPath); + } + } + } + return true; + }), + move(getSystemPath(appPath)), + ]); + + return chain([ + mergeWith(srcTemplateSource), + mergeWith(appTemplateSource), + mergeWith(assetsTemplateSource), + mergeWith(stylesTemplateSource) + ]); + } + } + }; +} + + +/** + * app.module.ts add imports + * - core-ui components + * - HttpClientModule? + */ +function ruleAddImportsInAppModule(optionsProject: UkisNgAddSchema['project']): Rule { + const rules: Rule[] = []; + const imports: ImoduleImport[] = [ + // { classifiedName: 'HttpClientModule', path: '@angular/common/http', module: true }, + { classifiedName: 'HeaderComponent', path: './components/header/header.component', declare: true }, + { classifiedName: 'GlobalAlertComponent', path: './components/global-alert/global-alert.component', declare: true }, + { classifiedName: 'AlertService', path: './components/global-alert/alert.service', provide: true }, + { classifiedName: 'GlobalProgressComponent', path: './components/global-progress/global-progress.component', declare: true }, + { classifiedName: 'ProgressService', path: './components/global-progress/progress.service', provide: true }, + { classifiedName: 'ExampleViewComponent', path: './views/example-view/example-view.component', declare: true } + ]; + + /** + * create a rule for each insertImport/addProviderToModule because addProviderToModule is not working multiple times in one Rule??? + */ + imports.map(item => { + rules.push(addServiceComponentModule(optionsProject, item)); + }); + + // then chain the rules to one + return chain(rules); +} + +/** + * angular.json + * add to + * - assets + * - styles + */ +function ruleUpdateAngularJson(options: UkisNgAddSchema): Rule { + return chain([ + updateProjectStylesExtension(options), + updateWorkspaceAndProjectStyleExtension(options) + ]); +} + +function updateProjectStylesExtension(options: UkisNgAddSchema) { + return async (tree: Tree) => { + const workspace = await getWorkspace(tree); + const projectName = getProjectName(workspace, options.project); + if (projectName) { + const project = workspace.projects.get(projectName); + if (project) { + project.targets.forEach((target, key) => { + if (target?.options?.styles && Array.isArray(target.options.styles)) { + target.options.styles = replaceStyles(target.options.styles as string[]); + project.targets.set(key, target); + } + }); + return updateWorkspace((workspace) => { + workspace.projects.set(projectName, project); + }); + } + } + }; +} + +/** + * replace styles.css in array if it exists + */ +function replaceStyles(styles: string[]) { + return styles.map(i => { + if (i.includes('styles.css')) { + return i.replace('.css', '.scss'); + } else { + return i; + } + }); +} + +/** + * Update Workspace file extension for style files. + */ +function updateWorkspaceAndProjectStyleExtension(options: UkisNgAddSchema) { + return async (tree: Tree) => { + const workspace = await getWorkspace(tree); + const projectName = getProjectName(workspace, options.project); + if (projectName) { + const project = workspace.projects.get(projectName); + if (project) { + if (hasSchematicsStyle(project.extensions)) { + project.extensions.schematics['@schematics/angular:component'].style = 'scss'; + } else { + if (typeof project.extensions === 'object') { + project.extensions.schematics = { + '@schematics/angular:component': { + style: 'scss' + } + }; + } + } + return updateWorkspace((workspace) => { + workspace.projects.set(projectName, project); + }); + } + } + }; +} + +/** + * tsconfig.base.json add + * + * - compilerOptions.paths + */ +function ruleUpdateTsConfigFile(): Rule { + return (tree: Tree) => { + let path = 'tsconfig.json'; + const pathBase = 'tsconfig.base.json'; + + if (tree.exists(pathBase)) { + path = pathBase; + } else if (!tree.exists(pathBase) && !tree.exists(path)) { + throw new SchematicsException(`${path} or ${pathBase} is not in the workspace!`); + } + + return updateJsonFile(path, (json) => { + const tsconfigPaths = [ + { name: '@dlr-eoc/*', paths: ['./frontend-libraries/projects/*'] } + ]; + + if (!json.compilerOptions) { + json.compilerOptions = {}; + } + + if (!json.compilerOptions.paths) { + json.compilerOptions.paths = {}; + } + + for (const p of tsconfigPaths) { + json.compilerOptions.paths[p.name] = p.paths; + } + + // skipLibCheck for libraries like OpenLayers + if (!json.compilerOptions.skipLibCheck) { + json.compilerOptions.skipLibCheck = true; + } + + return json; + }); + }; +} + +/** + * index.html + * add to + * meta: + * - title + * - short-title + * - description + * - version + * - theme-color + * - viewport? + * - http-equiv? + * + * link: + * - shortcut icon + * - manifest + */ +function ruleUpdateIndexHtml(options: UkisNgAddSchema): Rule { + return async (tree: Tree, context: SchematicContext) => { + const workspace = await getWorkspace(tree); + const projectName = getProjectName(workspace, options.project); + if (projectName) { + const project = workspace.projects.get(projectName); + if (project && checkProjectSourceRoot(project, context)) { + const sourcePath = join(normalize(project.root), project.sourceRoot, 'index.html'); // project.sourceRoot + + let projectTitle = 'Your App'; + if (options.project) { + projectTitle = options.project; + } + + const headerTags = [ + ` \n`, + ` \n`, + ` \n`, + ` \n`, + ` \n`, + ` \n` + ]; + + return chain([ + updateHtmlFile(sourcePath, 'head', 'head', headerTags) + ]); + } + } + }; +} + + +// TODO: maybe update this files instead of replacing them + +/** + * app.component.ts + * add imports for + * - icons + * - services + * - Router + * - variables for UI + * - constructor imports + * - init() + * - getHtmlMeta() + * + * maybe use template file?? + */ + + + +/** + * styles.scss //style.css + * if style.css remove and add file styles.scss from templates + */ + diff --git a/projects/ngx-ukis-ui-clarity/schematics/ng-add/index_spec.ts b/projects/ngx-ukis-ui-clarity/schematics/ng-add/index_spec.ts new file mode 100644 index 000000000..5784c8ce7 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/schematics/ng-add/index_spec.ts @@ -0,0 +1,393 @@ +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { Schema as WorkspaceOptions } from '@schematics/angular/workspace/schema'; +import { Schema as ApplicationOptions, Style } from '@schematics/angular/application/schema'; +import { UkisNgAddSchema } from './schema'; +import * as path from 'path'; +import { TsconfigJSON } from '../schema.tsconfig'; + + +const collectionPath = require.resolve(path.join(__dirname, '../collection.json')); + + +describe('ng-add Module or standalone', () => { + const schematicRunner = new SchematicTestRunner('@dlr-eoc/schematics', collectionPath); + + let appTree: UnitTestTree; + + const ngAddOptions: UkisNgAddSchema = { + project: 'ukisapp', + routing: false, + addClr: false, + addFiles: true, + updateFiles: true, // TODO: this has to be implemented first + addMap: false, // TODO: this has to be implemented first + auth: false, // TODO: this has to be implemented first + }; + + const workspaceOptions: WorkspaceOptions = { + name: 'workspace', + newProjectRoot: 'projects', + version: '9.0.0' + }; + + const appOptions: ApplicationOptions = { + name: 'ukisapp', + projectRoot: '', + standalone: false, // no standalone API. + inlineStyle: false, + inlineTemplate: false, + routing: true, + style: Style.Css, + skipTests: false + }; + + beforeEach(async () => { + appTree = await schematicRunner.runExternalSchematic('@schematics/angular', 'workspace', workspaceOptions); + appTree = await schematicRunner.runExternalSchematic( + '@schematics/angular', + 'application', + appOptions, + appTree); + }); + + it('should have no workspace schematics', async () => { + const projectFile = JSON.parse(appTree.readContent('/angular.json')); + expect(projectFile.schematics).toBeFalsy(); + }); + + it('should have no projects schematics for style because -> app style: Style.Css', async () => { + const projectFile = JSON.parse(appTree.readContent('/angular.json')); + expect(projectFile.projects[appOptions.name].schematics['@schematics/angular:component']?.style).toBeUndefined(); + }); + + it('should include the angular project file', async () => { + const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); + expect(tree.files.includes('/angular.json')).toBe(true); + }); + + it('should replace style extension in project.targets.options.styles', async () => { + const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); + + const projectFile = JSON.parse(tree.readContent('/angular.json')); + ['build', 'test'].forEach(target => { + const styles: string[] = projectFile.projects[appOptions.name].architect[target].options.styles; + styles.forEach(path => { + if(path.includes('styles.')){ + expect(path.includes('.scss')).toBeTrue(); + } + }); + }); + + }); + + it('should add assets', async () => { + const dimensions = [72, 96, 128, 144, 152, 192, 384, 512]; + const iconBasePath = `/src/assets/icons/icon-`; + const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); + dimensions.every(d => { + const iconPath = `${iconBasePath}${d}x${d}.png`; + expect(tree.files).toContain(iconPath); + // expect(tree.exists(iconPath)).toBeTruthy(); + }); + expect(tree.files).toContain('/src/favicon.ico'); + }); + + it('should add style files', async () => { + const testFiles = [ + '/src/styles.scss', + '/src/styles/_clr-vertival-nav-layout.scss', + '/src/styles/_overwrites-clr-variables.scss', + '/src/styles/_ukis-core-ui-layout.scss', + '/src/styles/_ukis-inputs.scss', + '/src/styles/_ukis-layer-nav.scss', + '/src/styles/_ukis-theme.scss', + '/src/styles/_ukis-variables.scss' + ]; + + const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); + testFiles.every(f => { + expect(tree.files).toContain(f); + // expect(tree.exists(f)).toBeTruthy(); + }); + }); + + it('should add app files', async () => { + const testFiles = [ + '/src/app/app.component.html', + '/src/app/app.component.scss', + '/src/app/app.component.ts', + '/src/app/components/README.md', + + '/src/app/components/header/header.component.html', + '/src/app/components/header/header.component.scss', + '/src/app/components/header/header.component.spec.ts', + '/src/app/components/header/header.component.ts', + + '/src/app/components/icons/eoc_white.svg', + '/src/app/components/icons/ukis-01-01.svg', + '/src/app/components/icons/ukis.svg', + '/src/app/components/icons/ukis.ts', + + 'src/app/components/global-alert/alert.service.spec.ts', + 'src/app/components/global-alert/alert.service.ts', + 'src/app/components/global-alert/global-alert.component.html', + 'src/app/components/global-alert/global-alert.component.scss', + 'src/app/components/global-alert/global-alert.component.spec.ts', + 'src/app/components/global-alert/global-alert.component.ts', + + 'src/app/components/global-progress/global-progress.component.html', + 'src/app/components/global-progress/global-progress.component.scss', + 'src/app/components/global-progress/global-progress.component.spec.ts', + 'src/app/components/global-progress/global-progress.component.ts', + 'src/app/components/global-progress/progress.service.spec.ts', + 'src/app/components/global-progress/progress.service.ts', + + 'src/app/views/example-view/example-view.component.html', + 'src/app/views/example-view/example-view.component.scss', + 'src/app/views/example-view/example-view.component.spec.ts', + 'src/app/views/example-view/example-view.component.ts' + ]; + const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); + testFiles.every(f => { + expect(tree.files).toContain(f); + // expect(tree.exists(f)).toBeTruthy(); + }); + }); + + it('should add project schematics', async () => { + const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); + const projectFile = JSON.parse(tree.readContent('/angular.json')); + expect(projectFile.projects[appOptions.name]?.schematics['@schematics/angular:component']?.style).toBe('scss'); + }); + + it('should update the tsconfig file', async () => { + const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); + const configs = ['/tsconfig.json', '/tsconfig.base.json']; + configs.forEach(configFilePath => { + if (tree.exists(configFilePath)) { + const tsconfigFile = JSON.parse(tree.readContent(configFilePath)) as TsconfigJSON; + const paths = tsconfigFile?.compilerOptions?.paths; + expect(paths).toBeTruthy(); + if (paths) { + expect('@dlr-eoc/*' in paths).toBe(true); + } + + const skipLibCheck = tsconfigFile?.compilerOptions?.skipLibCheck; + expect(skipLibCheck).toBeTruthy(); + if (skipLibCheck !== undefined) { + expect(skipLibCheck).toBe(true); + } + } + }); + }); + + it('should update html files', async () => { + const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); + const tsconfigFile = tree.readContent('/src/index.html'); + expect(tsconfigFile).toContain(' { + context.addTask(new NodePackageInstallTask()); + return tree; + }; +} + diff --git a/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.html b/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.html new file mode 100644 index 000000000..5e6a7ac51 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.html @@ -0,0 +1,12 @@ +@for (group of layergroups | reverse; track group) { +
+ @if (isLayerGroup(group)) { + + } + @if (!isLayerGroup(group)) { + + } +
+} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.scss new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.scss @@ -0,0 +1 @@ + diff --git a/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.spec.ts new file mode 100644 index 000000000..456e720aa --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.spec.ts @@ -0,0 +1,135 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { BaseLayerControlComponent } from './base-layer-control.component'; +import { ReversePipe } from '@dlr-eoc/ngx-ukis-utilities'; +import { LayersService } from '@dlr-eoc/services-layers'; + + +import { MapStateService } from '@dlr-eoc/services-map-state'; +import { Component, Input, Injectable } from '@angular/core'; +import { of } from 'rxjs'; +import { RasterLayer } from '@dlr-eoc/services-layers'; +import { LayerGroup } from '@dlr-eoc/services-layers'; + +/** + * this service extends the LayersService to mimik its behaviour. The getLayerGroups function is overwritten to + * get test data for following tests. + */ +@Injectable() +class MockLayersService extends LayersService { + + getLayerGroups() { + const l = new RasterLayer( + { + url: 'blabl', + name: 'name', + id: '5', + type: 'wms', + filtertype: 'Baselayers' + } + ); + const group = new LayerGroup({ + id: 'g', + name: 'Test', + layers: [l], + filtertype: 'Baselayers' + }); + return of([group]); + } +} + + + +describe('BaseLayerControlComponent', () => { + let component: BaseLayerControlComponent; + let fixture: ComponentFixture; + let layersSvc: LayersService; + let mapStateSvc: MapStateService; + + beforeEach(waitForAsync(() => { + + + TestBed.configureTestingModule({ + imports: [BaseLayerControlComponent, ReversePipe, MockLayerentryGroupComponent, MockLayerentryComponent], + providers: [ + { provide: LayersService, useClass: MockLayersService }, + MapStateService + ] +}).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(BaseLayerControlComponent); + component = fixture.componentInstance; + layersSvc = new MockLayersService(); // TestBed.inject(MockLayersService); + mapStateSvc = TestBed.inject(MapStateService); + + // as we use directive @Input and do not inject the service, we need to instantiate a service here. + component.layersSvc = layersSvc; + component.mapStateSvc = mapStateSvc; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should have input layersSvc', () => { + expect(component.layersSvc instanceof LayersService).toBeTruthy(); + }); + + it('should have input mapStateSvc', () => { + expect(component.mapStateSvc instanceof MapStateService).toBeTruthy(); + }); + + it('should have 1 children of ukis-layerentry-group', () => { + fixture.detectChanges(); + const element = fixture.debugElement.nativeElement.querySelectorAll('ukis-layerentry-group'); + expect(element.length).toEqual(1); + + }); + + it('should have 0 children of ukis-layerentry', () => { + fixture.detectChanges(); + + const element = fixture.debugElement.nativeElement.querySelectorAll('ukis-layerentry'); + expect(element.length).toEqual(0); + + }); +}); + +/** + * to make testing easier, and only test base-layer-control use a Mock of LayerentryComponent + * and give its selector + */ +@Component({ + selector: 'ukis-layerentry', + template: '' +}) +class MockLayerentryComponent { + @Input('layersSvc') layersSvc: LayersService; + @Input('mapState') mapState?: MapStateService; + @Input('layer') layer; + + @Input('group') group?; + @Input('layerGroups') layerGroups?; + @Input('expanded') openProperties = false; + @Input('expandable') expandable = true; +} + + +/** + * to make testing easier, and only test base-layer-control use a Mock of LayerentryGroupComponent + * and give its selector + */ +@Component({ + selector: 'ukis-layerentry-group', + template: '' +}) +class MockLayerentryGroupComponent { + + @Input('layersSvc') layersSvc: LayersService; + @Input('mapState') mapState?: MapStateService; + @Input('group') group; + @Input('layerGroups') layerGroups; +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.ts new file mode 100644 index 000000000..b2ed2e2ed --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/base-layer-control/base-layer-control.component.ts @@ -0,0 +1,50 @@ +import { Component, OnInit, Input, OnDestroy } from '@angular/core'; + +import { LayersService } from '@dlr-eoc/services-layers'; +import { MapStateService } from '@dlr-eoc/services-map-state'; +import { LayerGroup, Layer } from '@dlr-eoc/services-layers'; +import { Subscription } from 'rxjs'; + +import { LayerentryGroupComponent } from '../layerentry-group/layerentry-group.component'; +import { LayerentryComponent } from '../layerentry/layerentry.component'; +import { ReversePipe } from '@dlr-eoc/ngx-ukis-utilities'; + +@Component({ + selector: 'ukis-base-layer-control', + templateUrl: './base-layer-control.component.html', + styleUrls: ['./base-layer-control.component.scss'], + imports: [LayerentryGroupComponent, LayerentryComponent, ReversePipe] +}) +export class BaseLayerControlComponent implements OnInit, OnDestroy { + @Input('layersSvc') layersSvc: LayersService; + @Input('mapStateSvc') mapStateSvc?: MapStateService; + + layerGroupsSubscription: Subscription; + layersSubscription: Subscription; + layergroups: Array; + + + constructor() { + this.layergroups = []; + } + + ngOnInit() { + this.layerGroupsSubscription = this.layersSvc.getLayerGroups().subscribe(layergroups => { + this.layergroups = layergroups.filter((group) => group.filtertype === 'Baselayers'); + // console.log(this.layergroups) + }); + } + + isLayerGroup(group: Layer | LayerGroup) { + if (group instanceof LayerGroup) { + return true; + } else { + return false; + } + } + + ngOnDestroy() { + this.layerGroupsSubscription.unsubscribe(); + } + +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-alert/alert.service.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/alert.service.spec.ts new file mode 100644 index 000000000..b20ed8c38 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/alert.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AlertService } from './alert.service'; + +describe('AlertService', () => { + let service: AlertService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AlertService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-alert/alert.service.ts b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/alert.service.ts new file mode 100644 index 000000000..f7bd151d2 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/alert.service.ts @@ -0,0 +1,21 @@ +import { Injectable } from '@angular/core'; +import { Subject } from 'rxjs'; + +export interface IAlert { + type: string | 'info'; + text: string; + closeable: boolean; + actions?: { title: string, callback: () => void }[]; +} + +@Injectable({ + providedIn: 'root' +}) +export class AlertService { + private alertSource = new Subject(); + alert$ = this.alertSource.asObservable(); + constructor() { } + alert(alert: IAlert) { + this.alertSource.next(alert); + } +} \ No newline at end of file diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.html b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.html new file mode 100644 index 000000000..6e2a10846 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.html @@ -0,0 +1 @@ +

global-alert works!

diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.spec.ts new file mode 100644 index 000000000..3aa29a710 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { GlobalAlertComponent } from './global-alert.component'; + +describe('GlobalAlertComponent', () => { + let component: GlobalAlertComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [GlobalAlertComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(GlobalAlertComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.ts new file mode 100644 index 000000000..69ffff899 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/global-alert/global-alert.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-global-alert', + imports: [], + templateUrl: './global-alert.component.html', + styleUrl: './global-alert.component.scss' +}) +export class GlobalAlertComponent { + +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.html b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.html new file mode 100644 index 000000000..382570c6c --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.html @@ -0,0 +1 @@ +

global-progress works!

diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.spec.ts new file mode 100644 index 000000000..1a787126d --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { GlobalProgressComponent } from './global-progress.component'; + +describe('GlobalProgressComponent', () => { + let component: GlobalProgressComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [GlobalProgressComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(GlobalProgressComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.ts new file mode 100644 index 000000000..7c36697d2 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/global-progress.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-global-progress', + imports: [], + templateUrl: './global-progress.component.html', + styleUrl: './global-progress.component.scss' +}) +export class GlobalProgressComponent { + +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-progress/progress.service.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/progress.service.spec.ts new file mode 100644 index 000000000..d6e678305 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/progress.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ProgressService } from './progress.service'; + +describe('ProgressService', () => { + let service: ProgressService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ProgressService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); \ No newline at end of file diff --git a/projects/ngx-ukis-ui-clarity/src/lib/global-progress/progress.service.ts b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/progress.service.ts new file mode 100644 index 000000000..500f3c3d0 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/global-progress/progress.service.ts @@ -0,0 +1,21 @@ +import { Injectable } from '@angular/core'; +import { Subject } from 'rxjs'; + +export interface IProgress { + value?: number; + max?: number; + class?: string; + indeterminate?: boolean; +} + +@Injectable({ + providedIn: 'root' +}) +export class ProgressService { + private progressSource = new Subject(); + progress$ = this.progressSource.asObservable(); + constructor() { } + progress(progress: IProgress) { + this.progressSource.next(progress); + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.html b/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.html new file mode 100644 index 000000000..4f5a95d66 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.html @@ -0,0 +1 @@ +

header works!

diff --git a/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.spec.ts new file mode 100644 index 000000000..204ed6e4b --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HeaderComponent } from './header.component'; + +describe('HeaderComponent', () => { + let component: HeaderComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [HeaderComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(HeaderComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.ts new file mode 100644 index 000000000..8897f8109 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/header/header.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-header', + imports: [], + templateUrl: './header.component.html', + styleUrl: './header.component.scss' +}) +export class HeaderComponent { + +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/icons/DLRLogoWhite.svg b/projects/ngx-ukis-ui-clarity/src/lib/icons/DLRLogoWhite.svg new file mode 100644 index 000000000..93f588453 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/icons/DLRLogoWhite.svg @@ -0,0 +1,19 @@ + + + + + + + + + diff --git a/projects/ngx-ukis-ui-clarity/src/lib/icons/eoc_white.svg b/projects/ngx-ukis-ui-clarity/src/lib/icons/eoc_white.svg new file mode 100644 index 000000000..05ac630c1 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/icons/eoc_white.svg @@ -0,0 +1,16 @@ + + + + + + diff --git a/projects/ngx-ukis-ui-clarity/src/lib/icons/ukis-01-01.svg b/projects/ngx-ukis-ui-clarity/src/lib/icons/ukis-01-01.svg new file mode 100644 index 000000000..1214ab3ca --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/icons/ukis-01-01.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + diff --git a/projects/ngx-ukis-ui-clarity/src/lib/icons/ukis.svg b/projects/ngx-ukis-ui-clarity/src/lib/icons/ukis.svg new file mode 100644 index 000000000..936e46ce5 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/icons/ukis.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + diff --git a/projects/ngx-ukis-ui-clarity/src/lib/icons/ukis.ts b/projects/ngx-ukis-ui-clarity/src/lib/icons/ukis.ts new file mode 100644 index 000000000..4cc2db2b4 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/icons/ukis.ts @@ -0,0 +1,36 @@ +type IconSvgString = string; +type IconNameString = string; +type IconShapeTuple = [IconNameString,IconSvgString]; + +export const ukisIcon: IconShapeTuple = ['ukis-icon', ` +ukis + + + + +`]; + +export const eocIcon: IconShapeTuple = ['eoc-icon', ` +eoc + +`]; + +export const dlrIcon: IconShapeTuple = ['dlr-icon', ` +dlr + +`]; diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.html b/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.html new file mode 100644 index 000000000..a7098e75f --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.html @@ -0,0 +1,26 @@ +
+ @for (group of layergroups | itemsfilter: checkClassHide | reverse; track group) { +
+ @if ( isLayerGroup(group) && group.filtertype===layerfilter) { + + + {{group.displayName || group.name}} + + + } + @if (!isLayerGroup(group) && group.filtertype === layerfilter) { + + + {{group.displayName || group.name}} + + + } +
+ } + +
\ No newline at end of file diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.scss new file mode 100644 index 000000000..1c1119720 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.scss @@ -0,0 +1,41 @@ +/** style for drag and drop */ +.list-item { + cursor: pointer; +} + +/** style for drag and drop */ +.move-item { + cursor: move; +} + +.cdk-drop-list-disabled { + .move-item { + cursor: pointer; + } +} + +.cdk-drag-preview { + display: flex; + align-items: center; + padding: 15px 10px; + box-sizing: border-box; + border-radius: 2px; + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + overflow: hidden; +} + +.cdk-drag-placeholder { + opacity: 0.2; +} + +.cdk-drag-animating { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} + +.example-box:last-child { + border: none; +} + +.cdk-drop-list-dragging .list-item:not(.cdk-drag-placeholder) { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} \ No newline at end of file diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.spec.ts new file mode 100644 index 000000000..843988785 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.spec.ts @@ -0,0 +1,56 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { LayerControlComponent } from '../layer-control/layer-control.component'; + +import { LayerentryGroupComponent } from '../layerentry-group/layerentry-group.component'; +import { LayerentryComponent } from '../layerentry/layerentry.component'; + +import { ClarityModule } from '@clr/angular'; +import { FormsModule } from '@angular/forms'; +import { LayersService } from '@dlr-eoc/services-layers'; +import { MapStateService } from '@dlr-eoc/services-map-state'; +import { ReversePipe, ObjTypePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; +import { DragDropModule } from '@angular/cdk/drag-drop'; + +describe('LayerControlComponent', () => { + let component: LayerControlComponent; + let fixture: ComponentFixture; + let layersSvc: LayersService; + let mapStateSvc: MapStateService; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [ClarityModule, FormsModule, DragDropModule, LayerControlComponent, LayerentryGroupComponent, LayerentryComponent, ObjTypePipe, ReversePipe, ItemsFilterPipe], + providers: [LayersService, MapStateService] +}).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(LayerControlComponent); + component = fixture.componentInstance; + layersSvc = TestBed.inject(LayersService); + mapStateSvc = TestBed.inject(MapStateService); + + component.layersSvc = layersSvc; + component.mapStateSvc = mapStateSvc; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should have input layersSvc', () => { + expect(component.layersSvc instanceof LayersService).toBeTruthy(); + }); + + it('should have input mapStateSvc', () => { + expect(component.mapStateSvc instanceof MapStateService).toBeTruthy(); + }); + + it('should have input layerfilter', () => { + component.layerfilter = 'Layers'; + expect(component.layerfilter).toBe('Layers'); + }); + +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.ts new file mode 100644 index 000000000..6b237373c --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layer-control/layer-control.component.ts @@ -0,0 +1,110 @@ +import { Component, OnInit, Input, OnDestroy } from '@angular/core'; + +import { LayersService } from '@dlr-eoc/services-layers'; +import { MapStateService } from '@dlr-eoc/services-map-state'; +import { LayerGroup, Layer } from '@dlr-eoc/services-layers'; +import { Subscription } from 'rxjs'; + +import { CdkDragDrop, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop'; + +import { LayerentryGroupComponent } from '../layerentry-group/layerentry-group.component'; +import { LayerentryComponent } from '../layerentry/layerentry.component'; +import { ReversePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; + +@Component({ + selector: 'ukis-layer-control', + templateUrl: './layer-control.component.html', + styleUrls: ['./layer-control.component.scss'], + imports: [CdkDropList, CdkDrag, LayerentryGroupComponent, CdkDragHandle, LayerentryComponent, ItemsFilterPipe, ReversePipe] +}) +export class LayerControlComponent implements OnInit, OnDestroy { + @Input('layersSvc') layersSvc: LayersService; + @Input('mapStateSvc') mapStateSvc?: MapStateService; + @Input('layerfilter') layerfilter: Layer['filtertype'] = 'Layers'; + @Input('layersSort') layersSort?: boolean = true; + @Input('groupLayersSort') groupLayersSort?: boolean = true; + + layerGroupsSubscription: Subscription; + layersSubscription: Subscription; + layergroups: Array; + + + constructor() { + this.layergroups = []; + } + + ngOnInit() { + this.layerGroupsSubscription = this.layersSvc.getLayerGroups().subscribe(layergroups => { + this.layergroups = layergroups; + /** + * filter only in template so reordering of layers with set layergroups is working + */ + // this.layergroups = layergroups.filter((group) => group.filtertype === this.layerfilter || group.filtertype === this.layerfilter); + }); + } + + isLayerGroup(group: Layer | LayerGroup) { + if (group instanceof LayerGroup) { + return true; + } else { + return false; + } + } + + ngOnDestroy() { + this.layerGroupsSubscription.unsubscribe(); + } + + + // CDKDRagAndDrop ------------------------------------------------------------- + // https://material.angular.io/cdk/drag-drop/api + drop(event: CdkDragDrop<(Layer | LayerGroup)[]>) { + const groupLayers = this.layergroups; + const groupLeng = groupLayers.length; + const fiteredLayers = event.container.data; // filtered by [cdkDropListData] + const groupFiteredLeng = fiteredLayers.length; + let previousIFinal, newIFinal; + + /** + * calc index with pipe reverse order + */ + if (groupLeng === groupFiteredLeng) { + const previousIndex = groupLeng - event.previousIndex - 1; + const newIndex = groupLeng - event.currentIndex - 1; + previousIFinal = previousIndex; + newIFinal = newIndex; + } else { + /** + * If array is filtered get previousIndex by item.data and try to calculate ne index + * get layers for cdk indexes - 'connect' 'event.container.data' and the original not filtered data + */ + const newLayer = fiteredLayers[event.currentIndex]; + const previousIndex = groupLayers.findIndex(l => l.id === event.item.data.id); + let newIndex = groupLayers.findIndex(l => l.id === newLayer.id); + + // Item is not moved + if (event.previousIndex === event.currentIndex) { + newIndex = previousIndex; + } + + previousIFinal = previousIndex; + newIFinal = newIndex; + } + + this.layersSvc.arrayMove(this.layergroups, previousIFinal, newIFinal); + this.layersSvc.setLayerGroups(this.layergroups); + } + + checkBaselayer(layer: Layer, group?: LayerGroup) { + if (layer.filtertype === 'Baselayers' || group && group.filtertype === 'Baselayers') { + return true; + } else { + return false; + } + } + + checkClassHide(layerOrGroup: Layer | LayerGroup) { + const hasHide = layerOrGroup?.cssClass?.includes('hide') || false; + return !hasHide; + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.html b/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.html new file mode 100644 index 000000000..07b48a395 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.html @@ -0,0 +1,122 @@ +
diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.scss new file mode 100644 index 000000000..b8172f474 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.scss @@ -0,0 +1,58 @@ +.title { + cursor: pointer; +} + +.item-title-replacement:empty { + display: none; +} + +/** style for drag and drop */ +.move-item { + cursor: move; +} + +.cdk-drop-list-disabled { + .move-item { + cursor: pointer; + } +} + +.cdk-drag-preview { + display: flex; + align-items: center; + padding: 0px 10px; + box-sizing: border-box; + border-radius: 2px; + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + overflow: hidden; +} + +.cdk-drag-placeholder { + opacity: 0.2; +} + +.cdk-drag-animating { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} + +.example-box:last-child { + border: none; +} + +.cdk-drop-list-dragging .sublayers:not(.cdk-drag-placeholder) { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} + +.info { + padding-left: 0.2rem; +} + + +.tabsbody { + overflow: hidden; + + img { + height: auto; + max-width: 100%; + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.spec.ts new file mode 100644 index 000000000..8eddaa30e --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.spec.ts @@ -0,0 +1,73 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { LayerentryGroupComponent } from './layerentry-group.component'; +import { LayerentryComponent } from '../layerentry/layerentry.component'; + +import { ClarityModule } from '@clr/angular'; +import { FormsModule } from '@angular/forms'; +import { Layer, LayerGroup, LayersService } from '@dlr-eoc/services-layers'; + +import { MapStateService } from '@dlr-eoc/services-map-state'; +import { ReversePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; +import { DragDropModule } from '@angular/cdk/drag-drop'; + +describe('LayerentryGroupComponent', () => { + let component: LayerentryGroupComponent; + let fixture: ComponentFixture; + let layersSvc: LayersService; + let mapStateSvc: MapStateService; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [ClarityModule, FormsModule, DragDropModule, LayerentryGroupComponent, LayerentryComponent, ReversePipe, ItemsFilterPipe], + providers: [LayersService, MapStateService] +}).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(LayerentryGroupComponent); + component = fixture.componentInstance; + layersSvc = TestBed.inject(LayersService); + mapStateSvc = TestBed.inject(MapStateService); + + const layer = new Layer({ + type: 'wms', + name: 'test layer', + id: 'test_layer', + expanded: true + }); + + component.group = new LayerGroup({ + filtertype: 'Overlays', + id: 'Overlays_group', + name: 'Overlays', + layers: [layer] + + }); + component.layersSvc = layersSvc; + component.mapState = mapStateSvc; + component.layerGroups = [component.group]; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should have input layersSvc', () => { + expect(component.layersSvc instanceof LayersService).toBeTruthy(); + }); + + it('should have input mapState', () => { + expect(component.mapState instanceof MapStateService).toBeTruthy(); + }); + + it('should have input group', () => { + expect(component.group instanceof LayerGroup).toBeTruthy(); + }); + + it('should get openAllLayersProperties from the expanded Layers', () => { + /** test_layer is expanded */ + expect(component.openAllLayersProperties).toBeTrue(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.ts new file mode 100644 index 000000000..668242e30 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layerentry-group/layerentry-group.component.ts @@ -0,0 +1,288 @@ +import { Component, OnInit, Input, HostBinding } from '@angular/core'; + + +// imports only for typings... +import { LayerGroup, Layer } from '@dlr-eoc/services-layers'; +import { MapStateService } from '@dlr-eoc/services-map-state'; +import { LayersService } from '@dlr-eoc/services-layers'; +import { CdkDragDrop, moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop'; +import { IDynamicComponent, DynamicComponent, ReversePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; + +import { ClarityIcons, folderIcon, folderOpenIcon, arrowIcon, eyeIcon, eyeHideIcon, cogIcon, imageIcon, infoStandardIcon, detailsIcon, zoomInIcon, trashIcon } from '@cds/core/icon'; +import { ClrIconModule, ClrCommonFormsModule } from '@clr/angular'; +import { NgClass } from '@angular/common'; +import { LayerentryComponent } from '../layerentry/layerentry.component'; +ClarityIcons.addIcons(...[folderIcon, folderOpenIcon, arrowIcon, eyeIcon, eyeHideIcon, cogIcon, imageIcon, infoStandardIcon, detailsIcon, zoomInIcon, trashIcon]); + + +enum EactiveTabs { + settings = 'settings', + legend = 'legend', + description = 'description' +} +type TactiveTabs = keyof typeof EactiveTabs; + +@Component({ + selector: 'ukis-layerentry-group', + templateUrl: './layerentry-group.component.html', + styleUrls: ['./layerentry-group.component.scss'], + imports: [ClrIconModule, NgClass, ClrCommonFormsModule, CdkDropList, CdkDrag, LayerentryComponent, CdkDragHandle, ItemsFilterPipe, ReversePipe, DynamicComponent] +}) +export class LayerentryGroupComponent implements OnInit { + @HostBinding('class.group-visible') get visible() { return this.group.visible; } + @HostBinding('class') get cssClass() { return this.group.cssClass; } + + @Input('layersSvc') layersSvc: LayersService; + @Input('mapState') mapState?: MapStateService; + @Input('group') group: LayerGroup; + @Input('layerGroups') layerGroups: Array; + @Input('groupSort') groupSort?: boolean = true; + @Input('groupLayersSort') groupLayersSort?: boolean = true; + + public set openAllLayersProperties(value: boolean) { + if (this.group && this.group.layers.length) { + this.group.layers.forEach(l => l.expanded = value); + } + } + public get openAllLayersProperties() { + if (this.group && this.group.layers.length) { + return this.group.layers.filter(l => l.expanded === true).length === this.group.layers.length; + } else { + return false; + } + } + // public visible: boolean = true; + public canZoomToGroup = false; + + public activeTabs = { + settings: false, + legend: true, + description: false + }; + + public dynamicComponents: { + legendImg: IDynamicComponent + action: IDynamicComponent + description: IDynamicComponent; + } = { legendImg: null, action: null, description: null }; + + constructor() { } + + ngOnInit() { + if (this.group.bbox && this.group.bbox.length >= 4) { + this.canZoomToGroup = true; + } + + if (typeof this.group?.expanded === 'object') { + if (Object.keys(EactiveTabs).includes(this.group.expanded.tab)) { + this.switchTab(this.group.expanded.tab as TactiveTabs); + /** let the user reset the default open tab */ + if(this.group.expanded.expanded === false){ + this.activeTabs[this.group.expanded.tab] = false; + } + } else { + this.setDefaultActiveTabs(); + } + + } else { + this.setDefaultActiveTabs(); + } + + } + + private setDefaultActiveTabs() { + if (!this.group?.action) { + this.activeTabs.settings = false; + } + } + + /** + * obj: {any| IDynamicComponent} + */ + checkIsComponentItem(group: LayerGroup, compProp: string): group is Omit & { legendImg: IDynamicComponent, action: IDynamicComponent, description: IDynamicComponent } { + /** + * TODO: This function is executed quite often!!! even if a user moves on tha map. Try to minimize work here or prevent calling it so often. + * + * creating new objects is needed to pass and change Inputs from the groups DynamicComponent to the dynamically created component bound on the layer. + * There is a new object created to hold the component, inputs and outputs so the group can be passed to the inputs without adding it recursively to itself. + **/ + + // https://stackoverflow.com/a/65347533/10850021 + const obj: IDynamicComponent = group[compProp]; + let isComp = false; + if (obj && typeof obj === 'object') { + if ('component' in obj) { + const component = obj.component; + + if (!obj.inputs) { + this.dynamicComponents[compProp] = { + component: component, + inputs: { group: group } + } + + } else if (obj.inputs && !obj.inputs.group) { + this.dynamicComponents[compProp] = { + component: obj.component, + // create a shallow copy of inputs so they are not changed on the original group + // keep in mind changing some deeper properties will reflect to the original group! + // https://2ality.com/2014/01/object-assign.html#2.3 + inputs: Object.assign({}, obj.inputs, { group: group }) + }; + + } else if (obj.inputs && obj.inputs.group) { + this.dynamicComponents[compProp] = { + component: obj.component, + // create a shallow copy of inputs so they are not changed on the original group + // keep in mind changing some deeper properties will reflect to the original group! + // https://2ality.com/2014/01/object-assign.html#2.3 + inputs: Object.assign({}, obj.inputs) + }; + } + + if (obj.outputs) { + // create a shallow copy of outputs so they are not changed on the original group + // keep in mind changing some deeper properties will reflect to the original group! + // https://2ality.com/2014/01/object-assign.html#2.3 + this.dynamicComponents[compProp].outputs = Object.assign({}, obj.outputs); + } + isComp = true; + } + } + return isComp; + } + + checkBaselayer(group: LayerGroup) { + if (group && group.filtertype === 'Baselayers') { + return true; + } else { + return false; + } + } + + checkClassHide(layer: Layer) { + const hasHide = layer?.cssClass?.includes('hide') || false; + return !hasHide; + } + + getLayerName(group: LayerGroup) { + if (group.displayName) { + return group.displayName; + } else { + return group.name; + } + } + + setLayerGroupIndex(group: LayerGroup, dir) { + this.layersSvc.setGroupLayerIndex(group, dir); + } + + setGroupLayersVisibility() { + this.group.visible = !this.group.visible; + this.layersSvc.updateLayerGroup(this.group); + } + + removeLayerGroup(group: LayerGroup) { + this.layersSvc.removeLayerGroup(group); + } + + + zoomTo(group: LayerGroup) { + if (this.mapState && group.bbox && group.bbox.length >= 4) { + this.mapState.setExtent(group.bbox); + } + } + + layerUpdate(event, group: LayerGroup) { + const layer = event.layer as Layer; + /** update event layer in the group... this is done by object reference!! */ + /* const updateLayerIndex = group.layers.findIndex(l => l.id === layer.id); + if (updateLayerIndex !== -1) { + group.layers[updateLayerIndex] = layer; + } */ + this.layersSvc.updateLayerGroup(group); + } + + + showProperties() { + this.group.expanded = !this.group.expanded; + } + + switchTab(tabName: TactiveTabs, toggle = true) { + for (const key of Object.keys(this.activeTabs)) { + const isTabName = tabName === key; + if (this.activeTabs[key] && toggle) { + this.activeTabs[key] = false; + } else { + this.activeTabs[key] = isTabName; + } + } + } + + showHideAllDetails() { + if (this.openAllLayersProperties) { + this.openAllLayersProperties = false; + for (const key of Object.keys(this.activeTabs)) { + this.activeTabs[key] = false; + } + + } else { + this.openAllLayersProperties = true; + + if (this.group.legendImg) { + this.switchTab('legend', false); + } else if (this.group.description) { + this.switchTab('description', false); + } else if (this.group.action) { + this.switchTab('settings', false); + } + } + } + + isFirst(group) { + return this.layersSvc.isGroupFirst(group, this.layerGroups, group.filtertype); + } + + isLast(group) { + return this.layersSvc.isGroupLast(group, this.layerGroups, group.filtertype); + } + + + // CDKDRagAndDrop ------------------------------------------------------------- + // https://material.angular.io/cdk/drag-drop/api + drop(event: CdkDragDrop) { + const groupLayers = this.group.layers; + const groupLeng = groupLayers.length; + const fiteredLayers = event.container.data; // filtered by [cdkDropListData] + const groupFiteredLeng = fiteredLayers.length; + let previousIFinal, newIFinal; + + /** + * calc index with pipe reverse order + */ + if (groupLeng === groupFiteredLeng) { + const previousIndex = groupLeng - event.previousIndex - 1; + const newIndex = groupLeng - event.currentIndex - 1; + previousIFinal = previousIndex; + newIFinal = newIndex; + } else { + /** + * If array is filtered get previousIndex by item.data and try to calculate ne index + * get layers for cdk indexes - 'connect' 'event.container.data' and the original not filtered data + */ + const newLayer = fiteredLayers[event.currentIndex]; + const previousIndex = groupLayers.findIndex(l => l.id === event.item.data.id); + let newIndex = groupLayers.findIndex(l => l.id === newLayer.id); + + // Item is not moved + if (event.previousIndex === event.currentIndex) { + newIndex = previousIndex; + } + + previousIFinal = previousIndex; + newIFinal = newIndex; + } + + moveItemInArray(this.group.layers, previousIFinal, newIFinal); + this.layersSvc.updateLayerGroup(this.group); + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.html b/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.html new file mode 100644 index 000000000..9b4063fe6 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.html @@ -0,0 +1,137 @@ +
+
+ + @if (hasTabsbody) { + + } + + +
+ +
+ @if (ref.children.length == 0) { + + {{getLayerName(layer)}} + + } + + + @if (!checkBaselayer(layer,group) && sorting) { + + + + + + } + + + + +
+ @if (expandable && expanded) { +
+ +
+ @if (!checkBaselayer(layer, group) || layer.action) { + + } + @if (layer.legendImg) { + + } + @if (layer.description) { + + } + + @for (item of layer.actions; track item) { + + + } + + @if (canZoomToLayer) { + + + } + @if (layer.removable) { + + } +
+ @if (hasTabsbody && hasActiveTabs()) { +
+ @if (activeTabs.settings) { +
+ + @if (!checkBaselayer(layer,group)) { +
+ + {{" "+layer.opacity}} +
+ } + + @if (layer.styles && layer.styles?.length > 1) { + + } + + @if (checkIsComponentItem(layer, 'action');) { + + + } +
+ } + + @if (activeTabs.legend && layer.legendImg) { +
+ @if (checkIsComponentItem(layer,'legendImg')) { + + } @else { + + } +
+ } + + @if (activeTabs.description && layer.description) { +
+ @if (checkIsComponentItem(layer,'description')) { + + } @else { + + } +
+ } +
+ } +
+ } + +
\ No newline at end of file diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.scss new file mode 100644 index 000000000..d890f76df --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.scss @@ -0,0 +1,20 @@ +.title { + cursor: pointer; +} + +.item-title-replacement:empty { + display: none; +} + +.body { + cursor: default; +} + +.tabsbody { + overflow: hidden; + + img { + height: auto; + max-width: 100%; + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.spec.ts new file mode 100644 index 000000000..9a2f4db76 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.spec.ts @@ -0,0 +1,93 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { LayerentryComponent } from './layerentry.component'; +import { ClarityModule } from '@clr/angular'; +import { FormsModule } from '@angular/forms'; +import { Layer, LayerGroup } from '@dlr-eoc/services-layers'; +import { LayersService } from '@dlr-eoc/services-layers'; +import { MapStateService } from '@dlr-eoc/services-map-state'; + +describe('LayerentryComponent', () => { + let component: LayerentryComponent; + let fixture: ComponentFixture; + let layersSvc: LayersService; + let mapStateSvc: MapStateService; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [ClarityModule, FormsModule, LayerentryComponent], + providers: [LayersService, MapStateService] +}).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(LayerentryComponent); + component = fixture.componentInstance; + layersSvc = TestBed.inject(LayersService); + mapStateSvc = TestBed.inject(MapStateService); + + component.layer = new Layer({ + type: 'wms', + name: 'test layer', + id: 'test_layer' + }); + + component.group = new LayerGroup({ + filtertype: 'Overlays', + id: 'Overlays_group', + name: 'Overlays', + layers: [component.layer] + + }); + + component.layerGroups = [component.group]; + component.layersSvc = layersSvc; + component.mapState = mapStateSvc; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should have input layersSvc', () => { + fixture.detectChanges(); + expect(component.layersSvc instanceof LayersService).toBeTruthy(); + }); + + it('should have input mapState', () => { + fixture.detectChanges(); + expect(component.mapState instanceof MapStateService).toBeTruthy(); + }); + + it('should have input layer', () => { + expect(component.layer instanceof Layer).toBeTruthy(); + }); + + it('should have input group', () => { + expect(component.group instanceof LayerGroup).toBeTruthy(); + }); + + it('should have input layerGroups', () => { + expect(component.layerGroups[0] instanceof LayerGroup).toBeTruthy(); + }); + + it('should have input expanded', () => { + component.expanded = true; + fixture.detectChanges(); + expect(component.expanded).toBe(true); + }); + + it('should set Layer.expanded from the input expanded', () => { + component.expanded = true; + fixture.detectChanges(); + expect(component.expanded).toBe(true); + expect(component.layer.expanded).toBe(true); + }); + + it('should have input expandable', () => { + component.expandable = true; + fixture.detectChanges(); + expect(component.expandable).toBe(true); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.ts new file mode 100644 index 000000000..2af0862b5 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/layerentry/layerentry.component.ts @@ -0,0 +1,363 @@ +import { Component, OnInit, Input, Output, EventEmitter, HostBinding } from '@angular/core'; +import { IDynamicComponent, DynamicComponent } from '@dlr-eoc/ngx-ukis-utilities'; + +// imports only for typings... +import { + LayerGroup, Layer, RasterLayer, LayersService, WmsLayer, WmtsLayer +} from '@dlr-eoc/services-layers'; +import { MapStateService } from '@dlr-eoc/services-map-state'; + +import { ClarityIcons, angleIcon, arrowIcon, circleIcon, dotCircleIcon, eyeIcon, eyeHideIcon, cogIcon, imageIcon, infoStandardIcon, zoomInIcon, trashIcon } from '@cds/core/icon'; +import { NgClass, NgStyle } from '@angular/common'; +import { ClrIconModule, ClrCommonFormsModule, ClrRangeModule, ClrSelectModule } from '@clr/angular'; +import { FormsModule } from '@angular/forms'; +ClarityIcons.addIcons(...[angleIcon, arrowIcon, circleIcon, dotCircleIcon, eyeIcon, eyeHideIcon, cogIcon, imageIcon, infoStandardIcon, zoomInIcon, trashIcon]); + +enum EactiveTabs { + settings = 'settings', + legend = 'legend', + description = 'description', +} +type TactiveTabs = keyof typeof EactiveTabs; + +@Component({ + selector: 'ukis-layerentry', + templateUrl: './layerentry.component.html', + styleUrls: ['./layerentry.component.scss'], + imports: [NgClass, ClrIconModule, NgStyle, ClrCommonFormsModule, ClrRangeModule, FormsModule, ClrSelectModule, DynamicComponent] +}) +export class LayerentryComponent implements OnInit { + @HostBinding('class.layer-visible') get visible() { return this.layer.visible; } + @HostBinding('class') get cssClass() { return this.layer.cssClass; } + + @Input('layersSvc') layersSvc: LayersService; + @Input('mapState') mapState?: MapStateService; + @Input('layer') layer: Layer; + + @Input('group') group?: LayerGroup; + @Input('layerGroups') layerGroups?: Array;; + @Input('expanded') set expanded(value: boolean) { + if (this.layer) { + this.layer.expanded = value; + } + } + get expanded() { + if (this.layer) { + return (this.layer.expanded) ? true : false; + } else { + return false; + } + } + @Input('expandable') expandable = true; + @Input('sorting') sorting?: boolean = true; + + + @Output() update = new EventEmitter<{ layer: Layer }>(); + + public canZoomToLayer = false; + + public activeTabs = { + settings: false, + legend: true, + description: false + }; + + public hasTabsbody = true; + + public dynamicComponents: { + legendImg: IDynamicComponent + action: IDynamicComponent + description: IDynamicComponent; + } = { legendImg: null, action: null, description: null }; + + constructor() { + + } + + /** + * obj: {any| IDynamicComponent} + * + * Check if the compProp on the layer is a dynamic Component, if yes pass it to `` so the component from the layer can be inserted here. + */ + checkIsComponentItem(layer: Layer, compProp: string): layer is Omit & { legendImg: IDynamicComponent, action: IDynamicComponent, description: IDynamicComponent } { + /** + * TODO: This function is executed quite often!!! even if a user moves on tha map. Try to minimize work here or prevent calling it so often. + * + * creating new objects is needed to pass and change Inputs from the layers DynamicComponent to the dynamically created component bound on the layer. + * There is a new object created to hold the component, inputs and outputs so the layer can be passed to the inputs without adding it recursively to itself. + **/ + + // https://stackoverflow.com/a/65347533/10850021 + const obj: IDynamicComponent = layer[compProp]; + let isComp = false; + if (obj && typeof obj === 'object') { + if ('component' in obj) { + const component = obj.component; + + if (!obj.inputs) { + this.dynamicComponents[compProp] = { + component: component, + inputs: { layer: layer } + } + + } else if (obj.inputs && !obj.inputs.layer) { + this.dynamicComponents[compProp] = { + component: obj.component, + // create a shallow copy of inputs so they are not changed on the original layer + // keep in mind changing some deeper properties will reflect to the original layer! + // https://2ality.com/2014/01/object-assign.html#2.3 + inputs: Object.assign({}, obj.inputs, { layer: layer }) + }; + + } else if (obj.inputs && obj.inputs.layer) { + this.dynamicComponents[compProp] = { + component: obj.component, + // create a shallow copy of inputs so they are not changed on the original layer + // keep in mind changing some deeper properties will reflect to the original layer! + // https://2ality.com/2014/01/object-assign.html#2.3 + inputs: Object.assign({}, obj.inputs) + }; + } + + if (obj.outputs) { + // create a shallow copy of outputs so they are not changed on the original layer + // keep in mind changing some deeper properties will reflect to the original layer! + // https://2ality.com/2014/01/object-assign.html#2.3 + this.dynamicComponents[compProp].outputs = Object.assign({}, obj.outputs); + } + isComp = true; + } + } + return isComp; + } + + getLayerName(layer: Layer) { + if (layer.displayName) { + return layer.displayName; + } else { + return layer.name; + } + } + + ngOnInit() { + if (!this.layersSvc) { + console.error('you need to provide a layersService!'); + } + + if (typeof this.layer?.expanded === 'object') { + if (Object.keys(EactiveTabs).includes(this.layer.expanded.tab)) { + this.switchTab(this.layer.expanded.tab as TactiveTabs); + /** let the user reset the default open tab */ + if (this.layer.expanded.expanded === false) { + this.activeTabs[this.layer.expanded.tab] = false; + } + } else { + this.setDefaultActiveTabs(); + } + + } else { + this.setDefaultActiveTabs(); + } + + + if (this.layer.bbox && this.layer.bbox.length >= 4) { + this.canZoomToLayer = true; + } + + + if (this.layer.filtertype === 'Baselayers' && !this.layer.legendImg && !this.layer.description && !this.layer.action && !this.layer.actions && !this.layer.styles && !(this.layer.styles?.length > 1)) { + this.hasTabsbody = false; + } + } + + private setDefaultActiveTabs() { + if (!this.layer.legendImg) { + this.switchTab('description'); + } + + if (!this.layer.legendImg && !this.layer.description) { + this.switchTab('settings'); + } + } + + /** + * show or hide the layer + */ + setLayerVisibility(selectedLayer: Layer, group?: LayerGroup) { + if (!group) { + if (selectedLayer.filtertype === 'Baselayers') { + selectedLayer.visible = !selectedLayer.visible; + const filterdlayers = this.layerGroups.filter((l) => l.filtertype === 'Baselayers'); + // console.log(filterdlayers); + for (const layer of filterdlayers) { + if (layer instanceof Layer && layer.id !== selectedLayer.id) { + layer.visible = !selectedLayer.visible; + this.layersSvc.updateLayer(layer, layer.filtertype || 'Baselayers'); + } + } + } else { + selectedLayer.visible = !selectedLayer.visible; + this.layersSvc.updateLayer(selectedLayer, selectedLayer.filtertype || 'Layers'); // TODO check for baselayers!!!!!! + } + } else { + if (group.layers.length > 0) { + /** "radio" for Baselayers */ + if (group.filtertype === 'Baselayers') { + for (const layer of group.layers) { + layer.visible = layer === selectedLayer; + } + this.update.emit({ + layer: this.layer + }); + /** "checkbox" for all other layers */ + } else { + const tempGroupVisible = group.visible; + /** change visibility of the selected layer */ + selectedLayer.visible = !selectedLayer.visible; + + /** check if group visibility has changed */ + if (tempGroupVisible !== group.visible) { + this.update.emit({ + layer: this.layer + }); + } else { + /** If the visibility of the group don't changes update only the layer */ + this.layersSvc.updateLayer(selectedLayer, selectedLayer.filtertype || 'Layers'); + } + } + } + } + } + /** + * setLayerIndex + */ + setLayerIndex(layer: Layer, dir, group?: LayerGroup) { + // console.log('is First', this.isFirst(layer)); + // console.log('is Last', this.isLast(layer)); + // console.log(layer, group); + if (group) { + this.layersSvc.setLayerIndexInGroup(layer, dir, group); + } else { + this.layersSvc.setGroupLayerIndex(layer, dir); + } + } + + /** + * remove the Layer if possible + */ + removeLayer(group: LayerGroup, selectedLayer: Layer) { + // console.log("delete ", group, selectedLayer) + if (group) { + // console.log("delete layer from group") + this.layersSvc.removeLayerFromGroup(selectedLayer, group); + } else { + // console.log('delete single layer'); + this.layersSvc.removeLayer(selectedLayer, selectedLayer.filtertype); + } + } + + zoomTo(layer: Layer) { + if (this.mapState && layer.bbox && layer.bbox.length >= 4) { + this.mapState.setExtent(layer.bbox as [number, number, number, number]); + } + } + + setLayerOpacity(layer) { + if (!this.group) { + this.layersSvc.updateLayer(layer, layer.filtertype || 'Layers'); // TODO check for baselayers!!!!!! + } else { + this.update.emit({ + layer + }); + } + } + + checkBaselayer(layer: Layer, group?: LayerGroup) { + if (layer.filtertype === 'Baselayers' || group && group.filtertype === 'Baselayers') { + return true; + } else { + return false; + } + } + + /** + * is expandable if layer has legend, description or opacity can be changed + */ + is_expandable() { + if (this.group) { + return !this.layer.legendImg && this.group.filtertype === 'Baselayers'; + } else { + return !this.hasTabsbody; + } + } + + showProperties() { + if (!this.is_expandable()) { + this.expanded = !this.expanded; + } + } + + switchTab(tabName: TactiveTabs, toggle = true) { + for (const key of Object.keys(this.activeTabs)) { + const isTabName = tabName === key; + if (this.activeTabs[key] && toggle) { + this.activeTabs[key] = false; + } else { + this.activeTabs[key] = isTabName; + } + } + } + + hasActiveTabs(){ + return Object.values(this.activeTabs).filter(v => v).length > 0; + } + + isSelectedStyle(styleName: string): boolean { + if (this.layer instanceof WmsLayer) { + return this.layer.params.STYLES === styleName; + } else if (this.layer instanceof WmtsLayer) { + return this.layer.params.style === styleName; + } else { + // TODO: how to compare styles for vector layers and custom layers? + return false; + } + } + + executeChangeStyle(evt: Event) { + const newStyleName = (evt.target as HTMLInputElement).value; + if (this.layer.styles) { + const newStyle = (this.layer as RasterLayer).styles.find(s => s.name === newStyleName); + if (newStyle) { + this.layer.legendImg = newStyle.legendURL; + if (this.layer instanceof WmsLayer) { + this.layer.params.STYLES = newStyle.name; + } else if (this.layer instanceof WmtsLayer) { + this.layer.params.style = newStyle.name; + } + this.layersSvc.updateLayer(this.layer, this.layer.filtertype); + } + } + } + + isFirst(layer) { + if (this.group) { + return this.layersSvc.isGroupFirst(layer, this.group.layers); + } else { + return this.layersSvc.isGroupFirst(layer, null, layer.filtertype); + } + } + + isLast(layer) { + if (this.group) { + return this.layersSvc.isGroupLast(layer, this.group.layers); + } else { + return this.layersSvc.isGroupLast(layer, null, layer.filtertype); + } + } + + getExpandShape() { + // return this.openProperties ? 'down' : 'right'; + return this.expanded ? { transform: 'rotate(180deg)' } : { transform: 'rotate(90deg)' }; + } + +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.html b/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.html new file mode 100644 index 000000000..e89e83982 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.html @@ -0,0 +1,78 @@ +
+ +
+
+
+
{{x}} {{toPrecision(mapCoordinates[0],precision)}}
+
{{y}} {{toPrecision(mapCoordinates[1],precision)}}
+
Zoom {{toPrecision(zoom,precision)}}
+
+
+
+
+ + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.scss new file mode 100644 index 000000000..d4ae2167a --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.scss @@ -0,0 +1,15 @@ +.mouse-position-control { + margin-left: 0.2rem; + // padding-right: 0.4rem; + padding-bottom: 0.4rem; + + .output-container { + line-height: 1.6rem; + } + + .input-container { + & .clr-form-control:first-child { + margin-top: 0rem; + } + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.spec.ts new file mode 100644 index 000000000..d6370fadb --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.spec.ts @@ -0,0 +1,29 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { MousePositionComponent } from './mouse-position.component'; +import { FormsModule } from '@angular/forms'; +import { MapOlService } from '@dlr-eoc/map-ol'; +import { ClarityModule } from '@clr/angular'; + +describe('MousePositionComponent', () => { + let component: MousePositionComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [FormsModule, ClarityModule, MousePositionComponent], + providers: [MapOlService] +}) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(MousePositionComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.ts new file mode 100644 index 000000000..571a849d5 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/mouse-position/mouse-position.component.ts @@ -0,0 +1,98 @@ +import { Component, OnInit, OnDestroy } from '@angular/core'; +import { MapOlService } from '@dlr-eoc/map-ol'; +import { transform as olTransform, get as olGetProjection, Projection as olProjection } from 'ol/proj'; +import { Subscription } from 'rxjs'; +import { ClrSelectModule, ClrCommonFormsModule, ClrNumberInputModule } from '@clr/angular'; + +import { FormsModule } from '@angular/forms'; + +interface ISelectProjection { + title: string; + value: string; +} + +@Component({ + selector: 'ukis-mouse-position', + templateUrl: './mouse-position.component.html', + styleUrls: ['./mouse-position.component.scss'], + imports: [ClrSelectModule, ClrCommonFormsModule, FormsModule, ClrNumberInputModule] +}) +export class MousePositionComponent implements OnInit, OnDestroy { + + public mapCoordinates: [number, number] | number[] = [0, 0]; + public zoom = 0; + public projections: ISelectProjection[]; + mapProjection: olProjection; + public selectedProjection: string; + public precision = 2; + x = 'Lon'; + y = 'Lat'; + mapSub: Subscription; + constructor(public mapSvc: MapOlService) { + this.mapSub = this.mapSvc.projectionChange.subscribe(projLike => { + this.mapProjection = projLike; + this.setProjection(projLike); + }); + } + + ngOnInit() { + this.mapSvc.map.on('pointermove', this.mapMoveSubscription); + this.mapSvc.map.on('moveend', this.mapOnMoveend); + } + + /** + * projLike: 'olProjection' + */ + setProjection(projLike: any) { + const epsg = projLike.getCode(); + if (epsg === 'EPSG:4326') { + this.projections = [ + { title: epsg, value: epsg } + ]; + } else { + this.projections = [ + { title: 'EPSG:4326', value: 'EPSG:4326' }, + { title: epsg, value: epsg } + ]; + } + this.selectedProjection = this.projections[0].value; + } + + ngOnDestroy() { + this.mapSvc.map.un('pointermove', this.mapMoveSubscription); + this.mapSvc.map.un('moveend', this.mapOnMoveend); + this.mapSub.unsubscribe(); + } + + mapMoveSubscription = (evt) => { + if (evt.coordinate) { + this.mapCoordinates = olTransform(evt.coordinate, this.mapProjection, olGetProjection(this.selectedProjection)); + } + } + + mapOnMoveend = (evt) => { + const newZoom = evt.map.getView().getZoom(); + if (this.zoom !== newZoom) { + // console.log('zoom end, new zoom: ' + newZoom); + this.zoom = newZoom; + } + } + + public onChangeProj(evt: Event) { + const epsgcode = (evt.target as HTMLInputElement).value; + if (epsgcode === 'EPSG:4326') { + this.x = 'Lon'; + this.y = 'Lat'; + } else { + this.x = 'X'; + this.y = 'Y'; + } + const oldSelection = this.selectedProjection; + this.selectedProjection = epsgcode; + this.mapCoordinates = olTransform(this.mapCoordinates, olGetProjection(oldSelection), olGetProjection(this.selectedProjection)); + } + + public toPrecision(input: number, value: number) { + return input.toFixed(value); + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.html b/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.html new file mode 100644 index 000000000..7e86b893d --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.html @@ -0,0 +1,32 @@ +
+
+
+
+ + + + + + + + + + + + +
+
+
+
+
+ + + + +
+
+
diff --git a/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.scss new file mode 100644 index 000000000..475699364 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.scss @@ -0,0 +1,11 @@ +.output-container { + & .clr-form-control:first-child { + margin-top: 0rem; + } +} + +.output-container { + .clr-input { + width: 90%; + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.spec.ts new file mode 100644 index 000000000..3060e6587 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.spec.ts @@ -0,0 +1,38 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { FormsModule } from '@angular/forms'; +import { MapNavigatorComponent } from './map-navigator.component'; +import { MapStateService } from '@dlr-eoc/services-map-state'; +import { MapState } from '@dlr-eoc/services-map-state'; +import { ClarityModule } from '@clr/angular'; + + +describe('MapNavigatorComponent', () => { + let component: MapNavigatorComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [FormsModule, ClarityModule, MapNavigatorComponent], + providers: [MapStateService] +}) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(MapNavigatorComponent); + component = fixture.componentInstance; + // inject Service + component.mapState = new MapStateService(); + // mock get state from Service + component.mapstate = new MapState(7, { + lat: 0, + lon: 0 + }, { notifier: 'user' }); + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.ts new file mode 100644 index 000000000..5355a7489 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/navigator/map-navigator.component.ts @@ -0,0 +1,57 @@ +import { Component, OnInit, Input, OnDestroy } from '@angular/core'; + +import { MapStateService, MapState } from '@dlr-eoc/services-map-state'; +import { Subscription } from 'rxjs'; +import { FormsModule } from '@angular/forms'; +import { ClrCommonFormsModule, ClrNumberInputModule } from '@clr/angular'; + +@Component({ + selector: 'ukis-map-navigator', + templateUrl: './map-navigator.component.html', + styleUrls: ['./map-navigator.component.scss'], + imports: [FormsModule, ClrCommonFormsModule, ClrNumberInputModule] +}) +export class MapNavigatorComponent implements OnInit, OnDestroy { + @Input('mapState') mapState?: MapStateService; + mapstate: MapState; + subscription: Subscription; + public inputStep = 0.01; + public precision = 2; + constructor() { } + + ngOnInit() { + this.subscription = this.mapState.getMapState().subscribe(mapstate => { this.mapstate = mapstate; }); + } + + ngOnDestroy() { + this.subscription.unsubscribe(); + } + + zoomIn() { + this.mapstate.zoom++; + this.setNewState(this.mapstate); + } + zoomOut() { + this.mapstate.zoom--; + this.setNewState(this.mapstate); + } + + setNewState(newstate: MapState) { + newstate.options.notifier = 'user'; + this.mapState.setMapState(newstate); + } + + stateChange(evt) { + this.setNewState(this.mapstate); + } + + setInputStep(evt: number) { + const value = Array.from(Array(evt), (_, x) => '0').join(''); + this.inputStep = 1 / Number(`1${value}`); + } + + public toPrecision(input: number, value: number) { + return input.toFixed(value); + } + +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.html b/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.html new file mode 100644 index 000000000..365f9f387 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.html @@ -0,0 +1,17 @@ +@if (projList) { +
+ @for (proj of projList; track proj) { +
+
+
+ + {{proj.title || proj.code}} + + +
+
+
+ } +
+} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.spec.ts new file mode 100644 index 000000000..553ae841a --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.spec.ts @@ -0,0 +1,34 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { ProjectionSwitchComponent } from './projection-switch.component'; +import { ClarityModule } from '@clr/angular'; +import { FormsModule } from '@angular/forms'; +import { MapOlService } from '@dlr-eoc/map-ol'; + +describe('ProjectionSwitchComponent', () => { + let component: ProjectionSwitchComponent; + let fixture: ComponentFixture; + let mapSvc: MapOlService; + const projList: any[] = []; + + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [ClarityModule, FormsModule, ProjectionSwitchComponent] +}) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ProjectionSwitchComponent); + component = fixture.componentInstance; + mapSvc = TestBed.inject(MapOlService); + component.mapSvc = mapSvc; + component.projList = projList; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.ts new file mode 100644 index 000000000..2e9da0f77 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.component.ts @@ -0,0 +1,55 @@ +import { Component, OnInit, Input } from '@angular/core'; +import { Subscription } from 'rxjs'; +import { MapOlService } from '@dlr-eoc/map-ol'; + +import { MapStateService } from '@dlr-eoc/services-map-state'; + +import { ClarityIcons, eyeIcon, eyeHideIcon } from '@cds/core/icon'; + +import { ClrIconModule } from '@clr/angular'; +ClarityIcons.addIcons(...[eyeIcon, eyeHideIcon]); + +@Component({ + selector: 'ukis-projection-switch', + templateUrl: './projection-switch.component.html', + styles: [], + imports: [ + ClrIconModule + ] +}) +export class ProjectionSwitchComponent implements OnInit { + @Input('mapSvc') mapSvc: MapOlService; + @Input('mapStateSvc') mapStateSvc: MapStateService; + @Input('projectionList') projList: IProjDef[]; + @Input('fitViewToNewExtent') fitViewToNewExtent? = false; + subscription: Subscription; + selectedProj: IProjDef; + constructor() { } + + ngOnInit() { + if (this.projList[0]) { + this.setNewProjection(this.projList[0]); + } + } + + setNewProjection(projection: IProjDef) { + this.mapSvc.registerProjection(projection); + const newProj = this.mapSvc.getOlProjection(projection); + this.mapSvc.setProjection(newProj); + if (this.fitViewToNewExtent) { + this.mapStateSvc.setExtent(projection.worldExtent); + } + this.selectedProj = projection; + } +} + +export interface IProjDef { + code: string; // e.g.: "EPSG:3857" + proj4js: string; // ' proj4 string, e.g.: "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs" + title: string; // projection title shown on switch, e.g.: "Spherical Mercator", + extent: [number, number, number, number]; // projection extent in projected coordinates, e.g.: [-20026376.39, -20048966.10, 20026376.39, 20048966.10], + worldExtent: [number, number, number, number]; // projection extent in geographical coordinates, e.g.:[-180.0, -85.06, 180.0, 85.06], + global: true | false; // whether is global or local projection + units: 'm'; +} + diff --git a/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.service.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.service.spec.ts new file mode 100644 index 000000000..d981210fa --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { ProjectionSwitchService } from './projection-switch.service'; + +describe('ProjectionSwitchService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: ProjectionSwitchService = TestBed.inject(ProjectionSwitchService); + expect(service).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.service.ts b/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.service.ts new file mode 100644 index 000000000..98983e8eb --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/projection-switch/projection-switch.service.ts @@ -0,0 +1,9 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class ProjectionSwitchService { + + constructor() { } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.html b/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.html new file mode 100644 index 000000000..cbad1c0e0 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.html @@ -0,0 +1,20 @@ + diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.scss new file mode 100644 index 000000000..d6daad493 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.scss @@ -0,0 +1,22 @@ +.login-wrapper { + height: auto; + background: none; + background-size: none; + background-position: none; + background-repeat: none; + + .login { + min-height: auto; + padding: 0 0; + + &::after { + display: none; + } + + .login-group { + .btn { + margin: 1rem 0 0 0; + } + } + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.spec.ts new file mode 100644 index 000000000..1626fa90f --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.spec.ts @@ -0,0 +1,36 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { LoginComponent } from './login.component'; +import { UserService, IAuthService, IUser, IUserinfo, ExampleAuthService } from '../user.service'; +import { ClarityModule } from '@clr/angular'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { of } from 'rxjs'; + +describe('LoginComponent', () => { + let component: LoginComponent; + let fixture: ComponentFixture; + let usrSvc: UserService; + let authService: IAuthService; + + + beforeEach(waitForAsync(() => { + authService = new ExampleAuthService(); + usrSvc = new UserService(); + usrSvc.setAuthService(authService); + + TestBed.configureTestingModule({ + imports: [ClarityModule, FormsModule, ReactiveFormsModule, LoginComponent], + providers: [{ provide: UserService, useValue: usrSvc }] +}).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(LoginComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.ts new file mode 100644 index 000000000..112078842 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/login/login.component.ts @@ -0,0 +1,77 @@ +import { Component, OnDestroy } from '@angular/core'; +import { FormGroup, FormControl, Validators, ValidationErrors, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { UserService, IUserinfo, IUser } from '../user.service'; +import { Subscription } from 'rxjs'; +import { ClrInputModule, ClrCommonFormsModule, ClrPasswordModule, ClrCheckboxModule } from '@clr/angular'; + +interface IusrInfoForm { + usrName: FormControl; + usrPass: FormControl; + remember: FormControl; +} +@Component({ + selector: 'ukis-login', + templateUrl: './login.component.html', + styleUrls: ['./login.component.scss'], + imports: [FormsModule, ReactiveFormsModule, ClrInputModule, ClrCommonFormsModule, ClrPasswordModule, ClrCheckboxModule] +}) +export class LoginComponent implements OnDestroy { + public usrInfoFormOptions: IusrInfoForm; + public usrInfoForm: FormGroup; + + usrSubsription: Subscription; + user: IUser; + submitted: boolean; + + constructor(public usrSvc: UserService) { + this.usrInfoFormOptions = { + usrName: new FormControl('', Validators.required), + usrPass: new FormControl('', [Validators.required, Validators.minLength(4)]), + remember: new FormControl(false) + }; + this.usrInfoForm = new FormGroup(this.usrInfoFormOptions, { updateOn: 'blur' }); + + this.usrSubsription = this.usrSvc.getUserInfo().subscribe((userinfo) => { + this.user = userinfo.current_user; + }, (error) => { + console.log(error); + }); + } + + login() { + const user: IUser = { + userName: this.usrInfoForm.get('usrName').value, + password: this.usrInfoForm.get('usrPass').value, + remember: this.usrInfoForm.get('remember').value + }; + this.usrSvc.login(user); + } + + getFormError(key) { + let error = ''; + const controlErrors: ValidationErrors = this.usrInfoForm.get(key).errors; + if (controlErrors != null) { + Object.keys(controlErrors).forEach((keyError, index) => { + let newError = keyError; + if (keyError !== 'required') { + newError = JSON.stringify(this.usrInfoForm.get(key).errors[keyError]); + } + if (index === 0) { + error += `${newError}`; + } else { + error += ` and ${newError}`; + } + }); + } + return error; + } + + logout() { + this.usrSvc.logout(); + } + + ngOnDestroy() { + this.usrSubsription.unsubscribe(); + } + +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.html b/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.html new file mode 100644 index 000000000..f2570e286 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.html @@ -0,0 +1,36 @@ + diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.scss new file mode 100644 index 000000000..d6daad493 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.scss @@ -0,0 +1,22 @@ +.login-wrapper { + height: auto; + background: none; + background-size: none; + background-position: none; + background-repeat: none; + + .login { + min-height: auto; + padding: 0 0; + + &::after { + display: none; + } + + .login-group { + .btn { + margin: 1rem 0 0 0; + } + } + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.spec.ts new file mode 100644 index 000000000..0b45f923d --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.spec.ts @@ -0,0 +1,37 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { RegisterComponent } from './register.component'; +import { ClarityModule } from '@clr/angular'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { UserService, ExampleAuthService, IAuthService } from '../user.service'; + + +describe('RegisterComponent', () => { + let component: RegisterComponent; + let fixture: ComponentFixture; + let usrSvc: UserService; + let authService: IAuthService; + + + beforeEach(waitForAsync(() => { + authService = new ExampleAuthService(); + usrSvc = new UserService(); + usrSvc.setAuthService(authService); + + TestBed.configureTestingModule({ + imports: [ClarityModule, FormsModule, ReactiveFormsModule, RegisterComponent], + providers: [{ provide: UserService, useValue: usrSvc }] +}) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(RegisterComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.ts new file mode 100644 index 000000000..af27f3511 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/register/register.component.ts @@ -0,0 +1,79 @@ +import { Component, OnDestroy } from '@angular/core'; +import { FormGroup, Validators, FormControl, ValidationErrors, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { Subscription } from 'rxjs'; +import { UserService, IRegisterUser, IUser } from '../user.service'; +import { ClrInputModule, ClrCommonFormsModule, ClrPasswordModule } from '@clr/angular'; + +interface IusrInfoForm { + usrName: FormControl; + usrPass: FormControl; + firstName: FormControl; + lastName: FormControl; + email: FormControl; +} +@Component({ + selector: 'ukis-register', + templateUrl: './register.component.html', + styleUrls: ['./register.component.scss'], + imports: [FormsModule, ReactiveFormsModule, ClrInputModule, ClrCommonFormsModule, ClrPasswordModule] +}) +export class RegisterComponent implements OnDestroy { + usrInfoFormOptions: IusrInfoForm; + usrInfoForm: FormGroup; + + usrSubsription: Subscription; + user: IUser; + submitted: false; + + constructor(private usrSvc: UserService) { + this.usrInfoFormOptions = { + usrName: new FormControl('', Validators.required), + usrPass: new FormControl('', [Validators.required, Validators.minLength(4)]), + firstName: new FormControl(''), + lastName: new FormControl(''), + email: new FormControl('', [Validators.required, Validators.email]), + }; + this.usrInfoForm = new FormGroup(this.usrInfoFormOptions); + + this.usrSubsription = this.usrSvc.getUserInfo().subscribe((userinfo) => { + this.user = userinfo.current_user; + }, (error) => { + console.log(error); + }); + } + + getFormError(key) { + let error = ''; + const controlErrors: ValidationErrors = this.usrInfoForm.get(key).errors; + if (controlErrors != null) { + Object.keys(controlErrors).forEach((keyError, index) => { + let newError = keyError; + if (keyError !== 'required') { + newError = JSON.stringify(this.usrInfoForm.get(key).errors[keyError]); + } + if (index === 0) { + error += `${newError}`; + } else { + error += ` and ${newError}`; + } + }); + } + return error; + } + + register() { + const user: IRegisterUser = { + userName: this.usrInfoForm.get('usrName').value, + password: this.usrInfoForm.get('usrPass').value, + email: this.usrInfoForm.get('email').value, + firstName: this.usrInfoForm.get('firstName').value, + lastName: this.usrInfoForm.get('lastName').value + }; + this.usrSvc.register(user); + } + + ngOnDestroy() { + this.usrSubsription.unsubscribe(); + } + +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.html b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.html new file mode 100644 index 000000000..01731b05f --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.html @@ -0,0 +1,17 @@ +@if (user) { +
+ @if (user.firstName) { +
Hello {{user.firstName}} {{user.lastName}}!
+ } + @if (!user.firstName && user.userName) { +
Hello {{user.userName}}!
+ } + @if (user.email) { +
your email is: {{user.email}}
+ } +
+ +
+ } diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.scss b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.scss new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.scss @@ -0,0 +1 @@ + diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.spec.ts new file mode 100644 index 000000000..78cea9916 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.spec.ts @@ -0,0 +1,37 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { UserDetailsComponent } from './user-details.component'; +import { UserService, IAuthService, ExampleAuthService } from '../user.service'; +import { ClarityModule } from '@clr/angular'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; + + +describe('UserDetailsComponent', () => { + let component: UserDetailsComponent; + let fixture: ComponentFixture; + let usrSvc: UserService; + let authService: IAuthService; + + + beforeEach(waitForAsync(() => { + authService = new ExampleAuthService(); + usrSvc = new UserService(); + usrSvc.setAuthService(authService); + + TestBed.configureTestingModule({ + imports: [ClarityModule, FormsModule, ReactiveFormsModule, UserDetailsComponent], + providers: [{ provide: UserService, useValue: usrSvc }] +}) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(UserDetailsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.ts b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.ts new file mode 100644 index 000000000..fc0b75337 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user-details/user-details.component.ts @@ -0,0 +1,32 @@ +import { Component, OnDestroy } from '@angular/core'; +import { Subscription } from 'rxjs'; +import { UserService } from '../user.service'; + + +@Component({ + selector: 'ukis-user-details', + templateUrl: './user-details.component.html', + styleUrls: ['./user-details.component.scss'], + imports: [] +}) +export class UserDetailsComponent implements OnDestroy { + + usrSubsription: Subscription; + user: any; // IUser; //angular language service error: https://github.com/angular/angular/issues/17953 + + constructor(public usrSvc: UserService) { + this.usrSubsription = this.usrSvc.getUserInfo().subscribe((userinfo) => { + this.user = userinfo.current_user; + }, (error) => { + console.log(error); + }); + } + + logout() { + this.usrSvc.logout(); + } + + ngOnDestroy() { + this.usrSubsription.unsubscribe(); + } +} diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/user.service.spec.ts b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user.service.spec.ts new file mode 100644 index 000000000..6cb4c1873 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user.service.spec.ts @@ -0,0 +1,54 @@ +import { TestBed } from '@angular/core/testing'; +import { HttpTestingController, provideHttpClientTesting } from '@angular/common/http/testing'; + +import { UserService } from './user.service'; +import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; + + + +describe('UserService', () => { + let service: UserService; + let httpMock: HttpTestingController; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [UserService, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting()] +}); + service = TestBed.inject(UserService); + httpMock = TestBed.inject(HttpTestingController); + }); + + afterEach(() => { + httpMock.verify(); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); + + it('should have one oth the loginmethodes', () => { + service.loginmethode = 'oauth_code'; + expect(service.loginmethode).toBe('oauth_code'); + }); + + it('should have a getUserInfo Methode', () => { + expect(typeof service.getUserInfo).toBe('function'); + }); + + it('should have a login Methode', () => { + expect(typeof service.login).toBe('function'); + }); + + it('should have a isloggedIn Methode', () => { + expect(typeof service.isloggedIn).toBe('function'); + }); + + it('should have a logout Methode', () => { + expect(typeof service.logout).toBe('function'); + }); + + it('should have a setAuthService Methode', () => { + expect(typeof service.setAuthService).toBe('function'); + }); +}); diff --git a/projects/ngx-ukis-ui-clarity/src/lib/user-info/user.service.ts b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user.service.ts new file mode 100644 index 000000000..77948613d --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/lib/user-info/user.service.ts @@ -0,0 +1,115 @@ +import { Injectable } from '@angular/core'; +import { Observable, of } from 'rxjs'; + +export interface IUrls { + login: string; + logout: string; + register: string; +} + +export interface IRegisterUser { + userName: string; + password: string; + email?: string; + firstName?: string; + lastName?: string; +} + +export interface IUserDetails { + userID?: string; + loggedIn?: boolean; + isAuthorized?: boolean; + remember?: boolean; + permissions?: Array; + firstName?: string; + lastName?: string; + email?: string; +} + +/** oauth_pass */ +export interface IBasicUser extends IUserDetails { + userName: string; + password: string; +} + +/** oauth_code */ +export interface ITokenUser extends IUserDetails { + token: string; +} + +export type IUser = IBasicUser | ITokenUser; + +export interface IUserinfo { + current_user: IUser; + urls: IUrls | null; +} + +export interface IAuthService { + loginmethode: 'oauth_pass' | 'oauth_code' | 'ukis_cas'; + login(user: IUser): Observable; + logout(user?: IUser): Observable; + getUserInfo(user?: IUser): Observable; + /** confirming the user is logged in and valid */ + isloggedIn(): boolean; + /** check if the user has access rights/privilege */ + checkSession?(); + checkAuthorization?(permissions: string[], user?: IUser): Observable; + // register?(user: IRegisterUser): Observable; +} + +export class ExampleAuthService implements IAuthService { + exampleUserInfo: IUserinfo = { + current_user: { + userName: 'name', + password: 'pass' + }, + urls: { + login: 'https://example/login', + logout: 'https://example/logout', + register: 'https://example/register' + } + }; + + loginmethode: 'oauth_pass'; + login = (user: IUser) => of(this.exampleUserInfo); + logout = (user?: IUser) => of(this.exampleUserInfo); + getUserInfo = (user?: IUser) => of(this.exampleUserInfo); + isloggedIn = () => true; +} + + + +@Injectable({ + providedIn: 'root' +}) +export class UserService implements IAuthService { + private authService: IAuthService; + loginmethode: 'oauth_pass' | 'oauth_code' | 'ukis_cas'; + constructor() { } + + getUserInfo(user?: IUser) { + return this.authService.getUserInfo(user); + } + + login(user: IUser) { + return this.authService.login(user); + } + + isloggedIn() { + return this.authService.isloggedIn(); + } + + logout(user?: IUser) { + return this.authService.logout(); + } + + register(user: IRegisterUser) { + console.log('TODO: inject Service to handle register'); + // this.mockLoginService(username, password, email, firstName, lastName); + } + + setAuthService(authService) { + this.authService = authService; + } + +} diff --git a/projects/ngx-ukis-ui-clarity/src/public-api.ts b/projects/ngx-ukis-ui-clarity/src/public-api.ts new file mode 100644 index 000000000..f1623f1b3 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/public-api.ts @@ -0,0 +1,24 @@ +/* + * Public API Surface of ngx-ukis-ui-clarity + */ + +export * from './lib/global-progress/global-progress.component'; +export * from './lib/global-progress/progress.service'; +export * from './lib/global-alert/global-alert.component'; +export * from './lib/global-alert/alert.service'; +export * from './lib/header/header.component'; +export * from './lib/icons/ukis'; + +export * from './lib/layer-control/layer-control.component'; +export * from './lib/base-layer-control/base-layer-control.component'; +export * from './lib/layerentry/layerentry.component'; +export * from './lib/layerentry-group/layerentry-group.component'; + +export * from './lib/mouse-position/mouse-position.component'; +export * from './lib/navigator/map-navigator.component'; +export * from './lib/projection-switch/projection-switch.component'; + +export * from './lib/user-info/user.service'; +export * from './lib/user-info/login/login.component'; +export * from './lib/user-info/register/register.component'; +export * from './lib/user-info/user-details/user-details.component'; diff --git a/projects/ngx-ukis-ui-clarity/src/test.ts b/projects/ngx-ukis-ui-clarity/src/test.ts new file mode 100644 index 000000000..70b007097 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/src/test.ts @@ -0,0 +1,17 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js'; +import 'zone.js/testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting(), { + teardown: { destroyAfterEach: false } +} +); diff --git a/projects/ngx-ukis-ui-clarity/tsconfig.lib.json b/projects/ngx-ukis-ui-clarity/tsconfig.lib.json new file mode 100644 index 000000000..ea356ef5e --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/tsconfig.lib.json @@ -0,0 +1,24 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [], + "lib": [ + "dom", + "es2018" + ] + }, + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "enableResourceInlining": true + }, + "exclude": [ + "src/test.ts", + "**/*.spec.ts" + ] +} diff --git a/projects/ngx-ukis-ui-clarity/tsconfig.lib.prod.json b/projects/ngx-ukis-ui-clarity/tsconfig.lib.prod.json new file mode 100644 index 000000000..17ecaa454 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/tsconfig.lib.prod.json @@ -0,0 +1,11 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} + diff --git a/projects/ngx-ukis-ui-clarity/tsconfig.schematics.json b/projects/ngx-ukis-ui-clarity/tsconfig.schematics.json new file mode 100644 index 000000000..08bea7676 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/tsconfig.schematics.json @@ -0,0 +1,35 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "lib": [ + "es2018", + "dom" + ], + "declaration": true, + "module": "commonjs", + "moduleResolution": "node", + "noEmitOnError": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitThis": true, + "noUnusedParameters": true, + "noUnusedLocals": true, + "rootDir": "schematics", + "outDir": "../../dist/ngx-ukis-ui-clarity/schematics", + "skipDefaultLibCheck": true, + "skipLibCheck": true, + "sourceMap": true, + "strictNullChecks": true, + "target": "es6", + "types": [ + "jasmine", + "node" + ] + }, + "include": [ + "schematics/**/*" + ], + "exclude": [ + "schematics/*/files/**/*" + ] +} diff --git a/projects/ngx-ukis-ui-clarity/tsconfig.spec.json b/projects/ngx-ukis-ui-clarity/tsconfig.spec.json new file mode 100644 index 000000000..715dd0a5d --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/tsconfig.spec.json @@ -0,0 +1,17 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/projects/ngx-ukis-ui-clarity/tslint.json b/projects/ngx-ukis-ui-clarity/tslint.json new file mode 100644 index 000000000..bdd3d3033 --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "ukis", + "camelCase" + ], + "component-selector": [ + true, + "element", + "ukis", + "kebab-case" + ] + } +} diff --git a/projects/ngx-ukis-ui-clarity/user-info.md b/projects/ngx-ukis-ui-clarity/user-info.md new file mode 100644 index 000000000..ee307c6ab --- /dev/null +++ b/projects/ngx-ukis-ui-clarity/user-info.md @@ -0,0 +1,63 @@ +# user-info + + +### how to use this in a ukis-angular project + +For a example [see demo auth](../demo-auth/README.md) + +#### add the following dependencies to the package.json +- "@dlr-eoc/ngx-ukis-ui-clarity" + + +#### create a auth service +This service (e.g. basic-auth.service) includes your business logic for authentication and authorization + +#### create an AuthGuardService +This service protects your routes and is registered in the AppConfig or App Component + +#### add the following to the app.component.ts +``` +import { LoginComponent, RegisterComponent, UserDetailsComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; +import { BasicAuthService } from './auth/basic-auth.service'; +import { HttpAuthInterceptor } from './auth/http-auth.interceptor'; + +... + imports: [ + ... + LoginComponent, RegisterComponent, UserDetailsComponent + ] + + providers: [ + BasicAuthService, + { + provide: HTTP_INTERCEPTORS, + useFactory: (BasicAuthService) => { + return new HttpAuthInterceptor(BasicAuthService); + }, + deps: [BasicAuthService], + multi: true + } + ] +``` + + +=== + +This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14. + +## Code scaffolding + +Run `ng generate component component-name --project user-info` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project user-info`. +> Note: Don't forget to add `--project user-info` or else it will be added to the default project in your `angular.json` file. + +## Build + +Run `ng build user-info` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test user-info` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). From 6d87c82d0276ed41cae0aaceccef3248a6220933 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Thu, 4 Sep 2025 11:20:06 +0200 Subject: [PATCH 17/30] fix (ngx-ukis-ui-clarity): path in karma conf --- projects/ngx-ukis-utilities/karma.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/ngx-ukis-utilities/karma.conf.js b/projects/ngx-ukis-utilities/karma.conf.js index 429d62960..4585d6106 100644 --- a/projects/ngx-ukis-utilities/karma.conf.js +++ b/projects/ngx-ukis-utilities/karma.conf.js @@ -25,7 +25,7 @@ module.exports = function (config) { suppressAll: true // removes the duplicated traces }, coverageReporter: { - dir: require('path').join(__dirname, '../../coverage/utilities'), + dir: require('path').join(__dirname, '../../coverage/ngx-ukis-ui-clarity'), subdir: '.', reporters: [ { type: 'html' }, From c7b1e089b0dfdee6614f3edc72e348e56aab3e13 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Thu, 4 Sep 2025 11:29:16 +0200 Subject: [PATCH 18/30] BREAKING CHANGE: move core-ui, layer-control, map-tools, user-info to ngx-ukis-ui-clarity #267 --- CHANGELOG.md | 5 + CONTRIBUTING.md | 2 +- README.md | 10 +- TUTORIALS.md | 20 +- angular.json | 118 +- package-lock.json | 1552 +++++++---------- package.json | 7 +- projects/core-ui/DEVELOPMENT.md | 68 - projects/core-ui/README.md | 132 -- projects/core-ui/karma.conf.js | 44 - projects/core-ui/ng-package.json | 23 - projects/core-ui/package.json | 50 - .../files/src/app/app-routing.module.ts | 9 - .../files/src/app/app.component.html | 12 - .../files/src/app/app.component.ts.template | 86 - .../add-routing/files/src/app/app.config.ts | 15 - .../add-routing/files/src/app/app.routes.ts | 12 - .../files/src/app/route-components/README.md | 17 - .../example-route.component.html | 13 - .../example-route.component.scss | 12 - .../example-route.component.ts.template | 17 - .../core-ui/schematics/add-routing/index.ts | 159 -- .../schematics/add-routing/index_spec.ts | 245 --- .../schematics/add-routing/schema.json | 25 - .../core-ui/schematics/add-routing/schema.ts | 6 - projects/core-ui/schematics/ast-utils.ts | 360 ---- projects/core-ui/schematics/collection.json | 15 - projects/core-ui/schematics/html-utils.ts | 103 -- projects/core-ui/schematics/json-utils.ts | 23 - .../schematics/migrations/migration.json | 4 - .../ng-add/files/src/app/app.component.html | 18 - .../ng-add/files/src/app/app.component.scss | 1 - .../files/src/app/app.component.ts.template | 88 - .../ng-add/files/src/app/components/README.md | 12 - .../example-view/example-view.component.html | 14 - .../example-view/example-view.component.scss | 10 - .../example-view.component.spec.ts | 26 - .../example-view/example-view.component.ts | 22 - .../ng-add/files/src/assets/.gitkeep | 0 .../files/src/assets/icons/icon-128x128.png | Bin 10112 -> 0 bytes .../files/src/assets/icons/icon-144x144.png | Bin 10691 -> 0 bytes .../files/src/assets/icons/icon-152x152.png | Bin 9586 -> 0 bytes .../files/src/assets/icons/icon-192x192.png | Bin 10055 -> 0 bytes .../files/src/assets/icons/icon-384x384.png | Bin 25208 -> 0 bytes .../files/src/assets/icons/icon-512x512.png | Bin 29130 -> 0 bytes .../files/src/assets/icons/icon-72x72.png | Bin 5258 -> 0 bytes .../files/src/assets/icons/icon-96x96.png | Bin 7302 -> 0 bytes .../files/src/assets/ukis-splash-white.svg | 37 - .../ng-add/files/src/assets/ukis.png | Bin 3392 -> 0 bytes .../schematics/ng-add/files/src/favicon.ico | Bin 1150 -> 0 bytes .../schematics/ng-add/files/src/styles.scss | 2 - .../src/styles/_clr-vertival-nav-layout.scss | 134 -- .../src/styles/_overwrites-clr-variables.scss | 4 - .../src/styles/_ukis-core-ui-layout.scss | 110 -- .../ng-add/files/src/styles/_ukis-inputs.scss | 33 - .../files/src/styles/_ukis-layer-nav.scss | 218 --- .../ng-add/files/src/styles/_ukis-theme.scss | 31 - .../files/src/styles/_ukis-variables.scss | 3 - projects/core-ui/schematics/ng-add/index.ts | 460 ----- .../core-ui/schematics/ng-add/index_spec.ts | 393 ----- .../core-ui/schematics/ng-add/schema.json | 45 - projects/core-ui/schematics/ng-add/schema.ts | 11 - .../core-ui/schematics/schema.tsconfig.ts | 529 ------ .../core-ui/schematics/workspace-utils.ts | 161 -- .../lib/global-alert/alert.service.spec.ts | 15 - .../src/lib/global-alert/alert.service.ts | 21 - .../global-alert/global-alert.component.html | 25 - .../global-alert/global-alert.component.scss | 1 - .../global-alert.component.spec.ts | 33 - .../global-alert/global-alert.component.ts | 25 - .../global-progress.component.html | 15 - .../global-progress.component.scss | 3 - .../global-progress.component.spec.ts | 33 - .../global-progress.component.ts | 19 - .../global-progress/progress.service.spec.ts | 12 - .../lib/global-progress/progress.service.ts | 21 - projects/core-ui/src/lib/header/README.md | 30 - .../src/lib/header/header.component.html | 27 - .../src/lib/header/header.component.scss | 1 - .../src/lib/header/header.component.spec.ts | 36 - .../src/lib/header/header.component.ts | 24 - .../core-ui/src/lib/icons/DLRLogoWhite.svg | 19 - projects/core-ui/src/lib/icons/eoc_white.svg | 16 - projects/core-ui/src/lib/icons/ukis-01-01.svg | 21 - projects/core-ui/src/lib/icons/ukis.svg | 22 - projects/core-ui/src/lib/icons/ukis.ts | 36 - projects/core-ui/src/public-api.ts | 10 - projects/core-ui/src/test.ts | 17 - projects/core-ui/tsconfig.lib.json | 25 - projects/core-ui/tsconfig.lib.prod.json | 10 - projects/core-ui/tsconfig.schematics.json | 35 - projects/core-ui/tsconfig.spec.json | 17 - projects/core-ui/tslint.json | 17 - projects/demo-auth/README.md | 4 +- projects/demo-auth/package.json | 3 +- projects/demo-auth/src/app/app.component.ts | 2 +- .../src/app/auth/auth-guard.service.ts | 2 +- .../src/app/auth/basic-auth.service.ts | 2 +- .../route-login/route-login.component.ts | 2 +- .../route-map/route-map.component.ts | 2 +- .../route-user/route-user.component.ts | 2 +- projects/demo-maps/README.md | 2 +- projects/demo-maps/package.json | 3 +- projects/demo-maps/src/app/app.routes.ts | 2 +- .../route-example-cesium.component.ts | 2 +- .../route-map4.component.ts | 2 +- .../route-map3.component.ts | 3 +- .../route-map6.component.ts | 2 +- .../route-map.component.ts | 2 +- .../route-map5.component.ts | 2 +- .../route-example-maplibre.component.ts | 2 +- .../route-map7.component.ts | 2 +- .../route-example-owc-layers.component.ts | 2 +- .../route-map2.component.ts | 4 +- .../route-example-threejs.component.ts | 2 +- projects/layer-control/README.md | 132 -- projects/layer-control/karma.conf.js | 44 - projects/layer-control/ng-package.json | 14 - projects/layer-control/package.json | 37 - .../base-layer-control.component.html | 12 - .../base-layer-control.component.scss | 1 - .../base-layer-control.component.spec.ts | 135 -- .../base-layer-control.component.ts | 50 - .../layer-control.component.html | 26 - .../layer-control.component.scss | 41 - .../layer-control.component.spec.ts | 56 - .../layer-control/layer-control.component.ts | 110 -- .../layerentry-group.component.html | 122 -- .../layerentry-group.component.scss | 58 - .../layerentry-group.component.spec.ts | 73 - .../layerentry-group.component.ts | 288 --- .../lib/layerentry/layerentry.component.html | 137 -- .../lib/layerentry/layerentry.component.scss | 20 - .../layerentry/layerentry.component.spec.ts | 93 - .../lib/layerentry/layerentry.component.ts | 363 ---- projects/layer-control/src/public-api.ts | 8 - projects/layer-control/src/test.ts | 17 - projects/layer-control/tsconfig.lib.json | 24 - projects/layer-control/tsconfig.lib.prod.json | 10 - projects/layer-control/tsconfig.spec.json | 17 - projects/layer-control/tslint.json | 17 - projects/map-cesium/README.md | 2 +- projects/map-maplibre/README.md | 4 +- projects/map-ol/README.md | 5 +- projects/map-tools/README.md | 184 -- projects/map-tools/karma.conf.js | 44 - projects/map-tools/ng-package.json | 12 - projects/map-tools/package.json | 34 - .../mouse-position.component.html | 78 - .../mouse-position.component.scss | 15 - .../mouse-position.component.spec.ts | 29 - .../mouse-position.component.ts | 98 -- .../navigator/map-navigator.component.html | 32 - .../navigator/map-navigator.component.scss | 11 - .../navigator/map-navigator.component.spec.ts | 38 - .../lib/navigator/map-navigator.component.ts | 57 - .../projection-switch.component.html | 17 - .../projection-switch.component.spec.ts | 34 - .../projection-switch.component.ts | 55 - .../projection-switch.service.spec.ts | 12 - .../projection-switch.service.ts | 9 - projects/map-tools/src/public-api.ts | 8 - projects/map-tools/src/test.ts | 17 - projects/map-tools/tsconfig.lib.json | 24 - projects/map-tools/tsconfig.lib.prod.json | 10 - projects/map-tools/tsconfig.spec.json | 17 - projects/map-tools/tslint.json | 17 - projects/services-layers/README.md | 2 +- projects/services-map-state/README.md | 3 +- projects/user-info/README.md | 63 - projects/user-info/karma.conf.js | 44 - projects/user-info/ng-package.json | 10 - projects/user-info/package.json | 31 - .../src/lib/login/login.component.html | 20 - .../src/lib/login/login.component.scss | 22 - .../src/lib/login/login.component.spec.ts | 36 - .../src/lib/login/login.component.ts | 77 - .../src/lib/register/register.component.html | 36 - .../src/lib/register/register.component.scss | 22 - .../lib/register/register.component.spec.ts | 37 - .../src/lib/register/register.component.ts | 79 - .../user-details/user-details.component.html | 17 - .../user-details/user-details.component.scss | 1 - .../user-details.component.spec.ts | 37 - .../user-details/user-details.component.ts | 32 - .../user-info/src/lib/user.service.spec.ts | 54 - projects/user-info/src/lib/user.service.ts | 115 -- projects/user-info/src/public-api.ts | 8 - projects/user-info/src/test.ts | 17 - projects/user-info/tsconfig.lib.json | 24 - projects/user-info/tsconfig.lib.prod.json | 10 - projects/user-info/tsconfig.spec.json | 17 - projects/user-info/tslint.json | 17 - 193 files changed, 698 insertions(+), 9064 deletions(-) delete mode 100644 projects/core-ui/DEVELOPMENT.md delete mode 100644 projects/core-ui/README.md delete mode 100644 projects/core-ui/karma.conf.js delete mode 100644 projects/core-ui/ng-package.json delete mode 100644 projects/core-ui/package.json delete mode 100644 projects/core-ui/schematics/add-routing/files/src/app/app-routing.module.ts delete mode 100644 projects/core-ui/schematics/add-routing/files/src/app/app.component.html delete mode 100644 projects/core-ui/schematics/add-routing/files/src/app/app.component.ts.template delete mode 100644 projects/core-ui/schematics/add-routing/files/src/app/app.config.ts delete mode 100644 projects/core-ui/schematics/add-routing/files/src/app/app.routes.ts delete mode 100644 projects/core-ui/schematics/add-routing/files/src/app/route-components/README.md delete mode 100644 projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.html delete mode 100644 projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.scss delete mode 100644 projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.ts.template delete mode 100644 projects/core-ui/schematics/add-routing/index.ts delete mode 100644 projects/core-ui/schematics/add-routing/index_spec.ts delete mode 100644 projects/core-ui/schematics/add-routing/schema.json delete mode 100644 projects/core-ui/schematics/add-routing/schema.ts delete mode 100644 projects/core-ui/schematics/ast-utils.ts delete mode 100644 projects/core-ui/schematics/collection.json delete mode 100644 projects/core-ui/schematics/html-utils.ts delete mode 100644 projects/core-ui/schematics/json-utils.ts delete mode 100644 projects/core-ui/schematics/migrations/migration.json delete mode 100644 projects/core-ui/schematics/ng-add/files/src/app/app.component.html delete mode 100644 projects/core-ui/schematics/ng-add/files/src/app/app.component.scss delete mode 100644 projects/core-ui/schematics/ng-add/files/src/app/app.component.ts.template delete mode 100644 projects/core-ui/schematics/ng-add/files/src/app/components/README.md delete mode 100644 projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.html delete mode 100644 projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.scss delete mode 100644 projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.spec.ts delete mode 100644 projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.ts delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/.gitkeep delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-128x128.png delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-144x144.png delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-152x152.png delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-192x192.png delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-384x384.png delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-512x512.png delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-72x72.png delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-96x96.png delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/ukis-splash-white.svg delete mode 100644 projects/core-ui/schematics/ng-add/files/src/assets/ukis.png delete mode 100644 projects/core-ui/schematics/ng-add/files/src/favicon.ico delete mode 100644 projects/core-ui/schematics/ng-add/files/src/styles.scss delete mode 100644 projects/core-ui/schematics/ng-add/files/src/styles/_clr-vertival-nav-layout.scss delete mode 100644 projects/core-ui/schematics/ng-add/files/src/styles/_overwrites-clr-variables.scss delete mode 100644 projects/core-ui/schematics/ng-add/files/src/styles/_ukis-core-ui-layout.scss delete mode 100644 projects/core-ui/schematics/ng-add/files/src/styles/_ukis-inputs.scss delete mode 100644 projects/core-ui/schematics/ng-add/files/src/styles/_ukis-layer-nav.scss delete mode 100644 projects/core-ui/schematics/ng-add/files/src/styles/_ukis-theme.scss delete mode 100644 projects/core-ui/schematics/ng-add/files/src/styles/_ukis-variables.scss delete mode 100644 projects/core-ui/schematics/ng-add/index.ts delete mode 100644 projects/core-ui/schematics/ng-add/index_spec.ts delete mode 100644 projects/core-ui/schematics/ng-add/schema.json delete mode 100644 projects/core-ui/schematics/ng-add/schema.ts delete mode 100644 projects/core-ui/schematics/schema.tsconfig.ts delete mode 100644 projects/core-ui/schematics/workspace-utils.ts delete mode 100644 projects/core-ui/src/lib/global-alert/alert.service.spec.ts delete mode 100644 projects/core-ui/src/lib/global-alert/alert.service.ts delete mode 100644 projects/core-ui/src/lib/global-alert/global-alert.component.html delete mode 100644 projects/core-ui/src/lib/global-alert/global-alert.component.scss delete mode 100644 projects/core-ui/src/lib/global-alert/global-alert.component.spec.ts delete mode 100644 projects/core-ui/src/lib/global-alert/global-alert.component.ts delete mode 100644 projects/core-ui/src/lib/global-progress/global-progress.component.html delete mode 100644 projects/core-ui/src/lib/global-progress/global-progress.component.scss delete mode 100644 projects/core-ui/src/lib/global-progress/global-progress.component.spec.ts delete mode 100644 projects/core-ui/src/lib/global-progress/global-progress.component.ts delete mode 100644 projects/core-ui/src/lib/global-progress/progress.service.spec.ts delete mode 100644 projects/core-ui/src/lib/global-progress/progress.service.ts delete mode 100644 projects/core-ui/src/lib/header/README.md delete mode 100644 projects/core-ui/src/lib/header/header.component.html delete mode 100644 projects/core-ui/src/lib/header/header.component.scss delete mode 100644 projects/core-ui/src/lib/header/header.component.spec.ts delete mode 100644 projects/core-ui/src/lib/header/header.component.ts delete mode 100644 projects/core-ui/src/lib/icons/DLRLogoWhite.svg delete mode 100644 projects/core-ui/src/lib/icons/eoc_white.svg delete mode 100644 projects/core-ui/src/lib/icons/ukis-01-01.svg delete mode 100644 projects/core-ui/src/lib/icons/ukis.svg delete mode 100644 projects/core-ui/src/lib/icons/ukis.ts delete mode 100644 projects/core-ui/src/public-api.ts delete mode 100644 projects/core-ui/src/test.ts delete mode 100644 projects/core-ui/tsconfig.lib.json delete mode 100644 projects/core-ui/tsconfig.lib.prod.json delete mode 100644 projects/core-ui/tsconfig.schematics.json delete mode 100644 projects/core-ui/tsconfig.spec.json delete mode 100644 projects/core-ui/tslint.json delete mode 100644 projects/layer-control/README.md delete mode 100644 projects/layer-control/karma.conf.js delete mode 100644 projects/layer-control/ng-package.json delete mode 100644 projects/layer-control/package.json delete mode 100644 projects/layer-control/src/lib/base-layer-control/base-layer-control.component.html delete mode 100644 projects/layer-control/src/lib/base-layer-control/base-layer-control.component.scss delete mode 100644 projects/layer-control/src/lib/base-layer-control/base-layer-control.component.spec.ts delete mode 100644 projects/layer-control/src/lib/base-layer-control/base-layer-control.component.ts delete mode 100644 projects/layer-control/src/lib/layer-control/layer-control.component.html delete mode 100644 projects/layer-control/src/lib/layer-control/layer-control.component.scss delete mode 100644 projects/layer-control/src/lib/layer-control/layer-control.component.spec.ts delete mode 100644 projects/layer-control/src/lib/layer-control/layer-control.component.ts delete mode 100644 projects/layer-control/src/lib/layerentry-group/layerentry-group.component.html delete mode 100644 projects/layer-control/src/lib/layerentry-group/layerentry-group.component.scss delete mode 100644 projects/layer-control/src/lib/layerentry-group/layerentry-group.component.spec.ts delete mode 100644 projects/layer-control/src/lib/layerentry-group/layerentry-group.component.ts delete mode 100644 projects/layer-control/src/lib/layerentry/layerentry.component.html delete mode 100644 projects/layer-control/src/lib/layerentry/layerentry.component.scss delete mode 100644 projects/layer-control/src/lib/layerentry/layerentry.component.spec.ts delete mode 100644 projects/layer-control/src/lib/layerentry/layerentry.component.ts delete mode 100644 projects/layer-control/src/public-api.ts delete mode 100644 projects/layer-control/src/test.ts delete mode 100644 projects/layer-control/tsconfig.lib.json delete mode 100644 projects/layer-control/tsconfig.lib.prod.json delete mode 100644 projects/layer-control/tsconfig.spec.json delete mode 100644 projects/layer-control/tslint.json delete mode 100644 projects/map-tools/README.md delete mode 100644 projects/map-tools/karma.conf.js delete mode 100644 projects/map-tools/ng-package.json delete mode 100644 projects/map-tools/package.json delete mode 100644 projects/map-tools/src/lib/mouse-position/mouse-position.component.html delete mode 100644 projects/map-tools/src/lib/mouse-position/mouse-position.component.scss delete mode 100644 projects/map-tools/src/lib/mouse-position/mouse-position.component.spec.ts delete mode 100644 projects/map-tools/src/lib/mouse-position/mouse-position.component.ts delete mode 100644 projects/map-tools/src/lib/navigator/map-navigator.component.html delete mode 100644 projects/map-tools/src/lib/navigator/map-navigator.component.scss delete mode 100644 projects/map-tools/src/lib/navigator/map-navigator.component.spec.ts delete mode 100644 projects/map-tools/src/lib/navigator/map-navigator.component.ts delete mode 100644 projects/map-tools/src/lib/projection-switch/projection-switch.component.html delete mode 100644 projects/map-tools/src/lib/projection-switch/projection-switch.component.spec.ts delete mode 100644 projects/map-tools/src/lib/projection-switch/projection-switch.component.ts delete mode 100644 projects/map-tools/src/lib/projection-switch/projection-switch.service.spec.ts delete mode 100644 projects/map-tools/src/lib/projection-switch/projection-switch.service.ts delete mode 100644 projects/map-tools/src/public-api.ts delete mode 100644 projects/map-tools/src/test.ts delete mode 100644 projects/map-tools/tsconfig.lib.json delete mode 100644 projects/map-tools/tsconfig.lib.prod.json delete mode 100644 projects/map-tools/tsconfig.spec.json delete mode 100644 projects/map-tools/tslint.json delete mode 100644 projects/user-info/README.md delete mode 100644 projects/user-info/karma.conf.js delete mode 100644 projects/user-info/ng-package.json delete mode 100644 projects/user-info/package.json delete mode 100644 projects/user-info/src/lib/login/login.component.html delete mode 100644 projects/user-info/src/lib/login/login.component.scss delete mode 100644 projects/user-info/src/lib/login/login.component.spec.ts delete mode 100644 projects/user-info/src/lib/login/login.component.ts delete mode 100644 projects/user-info/src/lib/register/register.component.html delete mode 100644 projects/user-info/src/lib/register/register.component.scss delete mode 100644 projects/user-info/src/lib/register/register.component.spec.ts delete mode 100644 projects/user-info/src/lib/register/register.component.ts delete mode 100644 projects/user-info/src/lib/user-details/user-details.component.html delete mode 100644 projects/user-info/src/lib/user-details/user-details.component.scss delete mode 100644 projects/user-info/src/lib/user-details/user-details.component.spec.ts delete mode 100644 projects/user-info/src/lib/user-details/user-details.component.ts delete mode 100644 projects/user-info/src/lib/user.service.spec.ts delete mode 100644 projects/user-info/src/lib/user.service.ts delete mode 100644 projects/user-info/src/public-api.ts delete mode 100644 projects/user-info/src/test.ts delete mode 100644 projects/user-info/tsconfig.lib.json delete mode 100644 projects/user-info/tsconfig.lib.prod.json delete mode 100644 projects/user-info/tsconfig.spec.json delete mode 100644 projects/user-info/tslint.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 1061b5a86..37bcbcd1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ - Update three.js from `^0.137.5` to `^0.176.0` see [three releases](https://github.com/mrdoob/three.js/releases) for all changes. - Update [@cesium/engine](https://github.com/CesiumGS/cesium/tree/main/packages/engine) from `^10.1.0` to `^17.0.0` and [@cesium/widgets](https://github.com/CesiumGS/cesium/tree/main/packages/widgets) from `^7.1.0` to `^12.0.0` (cesium from `1.120` to `1.129`) see [cesium changelog](https://github.com/CesiumGS/cesium/blob/1.129/CHANGES.md) for all changes. + - Renamed `@dlr-eoc/core-ui` to `@dlr-eoc/ngx-ukis-ui-clarity` + - Moved `@dlr-eoc/layer-control` to `@dlr-eoc/ngx-ukis-ui-clarity`. Import the components from there now. + - Moved `@dlr-eoc/map-tools` to `@dlr-eoc/ngx-ukis-ui-clarity`. Import the components from there now. + - Moved `@dlr-eoc/user-info` to `@dlr-eoc/ngx-ukis-ui-clarity`. Import the components from there now. + * **@dlr-eoc/core-ui:** - Removed `DynamicComponent` and moved it to new library `@dlr-eoc/ngx-ukis-utilities` [Issue #267](https://github.com/dlr-eoc/ukis-frontend-libraries/issues/267). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 75d56a914..ac90ea368 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -186,7 +186,7 @@ Example: ``` ### Features -* **@dlr-eoc/map-tools:** SV: added projection switch. See mariss client for example. +* **@dlr-eoc/ngx-ukis-ui-clarity (map-tools):** SV: added projection switch. See mariss client for example. ### Bug Fixes * **@dlr-eoc/map-ol:** SV: adjusted setProjection method. It creates a new View instance with keeping previously set settings with exception resolution-related parameters. They are calculated automatically by the OL. After applying new projection all existing layers are triggered to redraw their tiles * **@dlr-eoc/map-ol:** SV: created getZoom method in the map-ol.service in order to get zoom value from actual olView instance. diff --git a/README.md b/README.md index 73bc2dcea..8fbc3b8e7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -UKIS Logo Frontend Libraries for DLR UKIS (Map) Applications +UKIS Logo Frontend Libraries for DLR UKIS (Map) Applications ======================== ![CI](https://github.com/dlr-eoc/ukis-frontend-libraries/workflows/Test%20and%20Build%20CI/badge.svg) @@ -70,12 +70,12 @@ Then run: - See [Adding Clarity to an Angular project](https://clarity.design/documentation/get-started#seedProjectAngular) - If you use Clarity Core also [add the icons manually](https://core.clarity.design/foundation/icons/) -4. Run the ng add command for the UKIS core-ui -- `ng add @dlr-eoc/core-ui --project= [options]` +4. Run the ng add command for the ngx-ukis-ui-clarity +- `ng add @dlr-eoc/ngx-ukis-ui-clarity --project= [options]` - --routing=boolean // set up your project with [routing](https://angular.io/guide/router) - - [for more information see core-ui ng-add](projects/core-ui/schematics/ng-add/schema.json) + - [for more information see ngx-ukis-ui-clarity ng-add](projects/ngx-ukis-ui-clarity/schematics/ng-add/schema.json) -5. [See layout structure of the core-ui](projects/core-ui/README.md#layout-structure-of-the-core-ui) +5. [See layout structure of the ngx-ukis-ui-clarity](projects/ngx-ukis-ui-clarity/core-ui.md#layout-structure-of-the-core-ui) 6. [See clarity get-started to use their components](https://clarity.design/documentation/get-started) diff --git a/TUTORIALS.md b/TUTORIALS.md index 1cb3a1e41..94d271d9a 100644 --- a/TUTORIALS.md +++ b/TUTORIALS.md @@ -1,11 +1,11 @@ # Creating a basic web map application ## Introduction -In this guide you will follow the necessary steps for creating a basic web map application with the UKIS frontend libraries. At the end you should be able to set up an UKIS application yourself and start customizing it. The application contains the [core-ui](projects/core-ui/README.md), [map-ol](projects/map-ol/README.md), [base-layers-raster](projects/base-layers-raster/README.md) and [layer-control](projects/layer-control/README.md) libraries. The finished application integrates some layers from the [EOC GeoService](https://geoservice.dlr.de/web/). +In this guide you will follow the necessary steps for creating a basic web map application with the UKIS frontend libraries. At the end you should be able to set up an UKIS application yourself and start customizing it. The application contains the [ngx-ukis-ui-clarity](projects/ngx-ukis-ui-clarity/core-ui.md), [map-ol](projects/map-ol/README.md), [base-layers-raster](projects/base-layers-raster/README.md) and [layer-control](projects/ngx-ukis-ui-clarity/layer-control.md) libraries. The finished application integrates some layers from the [EOC GeoService](https://geoservice.dlr.de/web/). ## Requirements For this tutorial to work you need a code editor of your choice (e.g. Visual Studio Code) and npm installed. -## Setting up UKIS core-ui +## Setting up ngx-ukis-ui-clarity ### 1. Generate a new [Angular application](https://angular.dev/cli/new) in the same Version like specified in our package.json [@angular/core](package.json). For this you have to install `@angular/cli` in this specific Version first. - See ukis-frontend-libraries package.json [version of @angular/core](package.json) @@ -78,25 +78,25 @@ For more information see - [Adding Clarity to an Existing Angular Application](https://clarity.design/pages/developing#adding-clarity-to-an-existing-angular-application) -### 4. Run the ng add command for the UKIS core-ui +### 4. Run the ng add command for the ngx-ukis-ui-clarity - First you have to match the dependency of rxjs ([for ukis-frontend-libraries](package.json)), to do this you need to run ``` npm install rxjs@ ``` - Then run ``` -ng add @dlr-eoc/core-ui@ --project=project-tutorial-map +ng add @dlr-eoc/ngx-ukis-ui-clarity@ --project=project-tutorial-map ``` to add files and styles from ukis-frontend-libraries in the desired version. - Answer the promt with `Y` -- In this tutorial more additional options of the core-ui ng add like routing are not required. -- [for more information see core-ui ng-add](projects/core-ui/schematics/ng-add/schema.json) +- In this tutorial more additional options of the ngx-ukis-ui-clarity like routing are not required. +- [for more information see ngx-ukis-ui-clarity ng-add](projects/ngx-ukis-ui-clarity/schematics/ng-add/schema.json) If this does not work due to incorrect versions of peer dependencies, you can fix it as described below if you are sure that the current dependencies work together! ``` -npm install @dlr-eoc/core-ui@ --force -ng generate @dlr-eoc/core-ui:ng-add --project=project-tutorial-map +npm install @dlr-eoc/ngx-ukis-ui-clarity@ --force +ng generate @dlr-eoc/ngx-ukis-ui-clarity:ng-add --project=project-tutorial-map ``` ### 5. Start and view the application @@ -108,7 +108,7 @@ ng generate @dlr-eoc/core-ui:ng-add --project=project-tutorial-map In the following the components neccessary for the display of a web map are installed. More information can be found [in the map-ol library folder](projects/map-ol/README.md). ### 1. Add the following libraries: ``` -npm install @dlr-eoc/map-ol @dlr-eoc/layer-control @dlr-eoc/base-layers-raster +npm install @dlr-eoc/map-ol @dlr-eoc/ngx-ukis-ui-clarity @dlr-eoc/base-layers-raster ``` The base layers raster library is optional, but it makes it easier to add a basemap. Without a given basemap the map canvas would be empty. @@ -125,7 +125,7 @@ e.g. in your apps style file (src/styles.scss) ### 3. Add the following to example-view.component.ts: ``` import { MapOlComponent, MapOlService } from '@dlr-eoc/map-ol'; -import { LayerControlComponent, BaseLayerControlComponent} from '@dlr-eoc/layer-control'; +import { LayerControlComponent, BaseLayerControlComponent} from '@dlr-eoc/ngx-ukis-ui-clarity'; import { LayersService } from '@dlr-eoc/services-layers'; import { MapStateService } from '@dlr-eoc/services-map-state'; import { IMapControls } from '@dlr-eoc/map-ol'; diff --git a/angular.json b/angular.json index e6c37f246..2a04275a1 100644 --- a/angular.json +++ b/angular.json @@ -59,90 +59,6 @@ } } }, - "core-ui": { - "projectType": "library", - "root": "projects/core-ui", - "sourceRoot": "projects/core-ui/src", - "prefix": "ukis", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:ng-packagr", - "options": { - "tsConfig": "projects/core-ui/tsconfig.lib.json", - "project": "projects/core-ui/ng-package.json" - }, - "configurations": { - "production": { - "tsConfig": "projects/core-ui/tsconfig.lib.prod.json" - } - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "projects/core-ui/src/test.ts", - "tsConfig": "projects/core-ui/tsconfig.spec.json", - "karmaConfig": "projects/core-ui/karma.conf.js" - } - } - } - }, - "layer-control": { - "projectType": "library", - "root": "projects/layer-control", - "sourceRoot": "projects/layer-control/src", - "prefix": "ukis", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:ng-packagr", - "options": { - "tsConfig": "projects/layer-control/tsconfig.lib.json", - "project": "projects/layer-control/ng-package.json" - }, - "configurations": { - "production": { - "tsConfig": "projects/layer-control/tsconfig.lib.prod.json" - } - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "projects/layer-control/src/test.ts", - "tsConfig": "projects/layer-control/tsconfig.spec.json", - "karmaConfig": "projects/layer-control/karma.conf.js" - } - } - } - }, - "map-tools": { - "projectType": "library", - "root": "projects/map-tools", - "sourceRoot": "projects/map-tools/src", - "prefix": "ukis", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:ng-packagr", - "options": { - "tsConfig": "projects/map-tools/tsconfig.lib.json", - "project": "projects/map-tools/ng-package.json" - }, - "configurations": { - "production": { - "tsConfig": "projects/map-tools/tsconfig.lib.prod.json" - } - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "projects/map-tools/src/test.ts", - "tsConfig": "projects/map-tools/tsconfig.spec.json", - "karmaConfig": "projects/map-tools/karma.conf.js" - } - } - } - }, "map-ol": { "projectType": "library", "root": "projects/map-ol", @@ -283,34 +199,6 @@ } } }, - "user-info": { - "projectType": "library", - "root": "projects/user-info", - "sourceRoot": "projects/user-info/src", - "prefix": "ukis", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:ng-packagr", - "options": { - "tsConfig": "projects/user-info/tsconfig.lib.json", - "project": "projects/user-info/ng-package.json" - }, - "configurations": { - "production": { - "tsConfig": "projects/user-info/tsconfig.lib.prod.json" - } - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "projects/user-info/src/test.ts", - "tsConfig": "projects/user-info/tsconfig.spec.json", - "karmaConfig": "projects/user-info/karma.conf.js" - } - } - } - }, "demo-maps": { "projectType": "application", "schematics": { @@ -343,7 +231,7 @@ }, { "glob": "**/*", - "input": "./projects/core-ui/schematics/ng-add/files/src/assets", + "input": "./projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets", "output": "./assets" }, { @@ -496,7 +384,7 @@ }, { "glob": "**/*", - "input": "./projects/core-ui/schematics/ng-add/files/src/assets", + "input": "./projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets", "output": "./assets" } ], @@ -800,7 +688,7 @@ "build": { "builder": "@angular-devkit/build-angular:ng-packagr", "options": { - "project": "projects/utilities/ng-package.json" + "project": "projects/ngx-ukis-utilities/ng-package.json" }, "configurations": { "production": { diff --git a/package-lock.json b/package-lock.json index 0319c08d5..d4c7770e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,8 +13,6 @@ "scripts/library", "projects/cookie-alert", "projects/base-layers-raster", - "projects/core-ui", - "projects/map-tools", "projects/layer-control", "projects/map-ol", "projects/services-layers", @@ -23,7 +21,6 @@ "projects/services-map-state", "projects/demo-auth", "projects/demo-maps", - "projects/user-info", "projects/utils-browser", "projects/utils-maps", "projects/utils-ogc", @@ -582,6 +579,7 @@ "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.2.19.tgz", "integrity": "sha512-PCpJagurPBqciqcq4Z8+3OtKLb7rSl4w/qBJoIMua8CgnrjvA1i+SWawhdtfI1zlY8FSwhzLwXV0CmWWfFzQPg==", "license": "MIT", + "peer": true, "dependencies": { "parse5": "^7.1.2", "tslib": "^2.3.0" @@ -2537,120 +2535,6 @@ "modern-normalize": "1.1.0" } }, - "node_modules/@cesium/engine": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-17.0.0.tgz", - "integrity": "sha512-bvLWmWVY4QX9rfcx/zfBzA8R1xR8KzmaCDOVL6pFkNZeYmRtt8JN//IICYR3P45lznlcb0Dklw1iCb37t4tvLA==", - "license": "Apache-2.0", - "dependencies": { - "@tweenjs/tween.js": "^25.0.0", - "@zip.js/zip.js": "^2.7.34", - "autolinker": "^4.0.0", - "bitmap-sdf": "^1.0.3", - "dompurify": "^3.0.2", - "draco3d": "^1.5.1", - "earcut": "^3.0.0", - "grapheme-splitter": "^1.0.4", - "jsep": "^1.3.8", - "kdbush": "^4.0.1", - "ktx-parse": "^1.0.0", - "lerc": "^2.0.0", - "mersenne-twister": "^1.1.0", - "meshoptimizer": "^0.23.0", - "pako": "^2.0.4", - "protobufjs": "^7.1.0", - "rbush": "3.0.1", - "topojson-client": "^3.1.0", - "urijs": "^1.19.7" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@cesium/engine/node_modules/lerc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lerc/-/lerc-2.0.0.tgz", - "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==", - "license": "Apache-2.0" - }, - "node_modules/@cesium/engine/node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", - "license": "ISC" - }, - "node_modules/@cesium/engine/node_modules/rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "license": "MIT", - "dependencies": { - "quickselect": "^2.0.0" - } - }, - "node_modules/@cesium/wasm-splats": { - "version": "0.1.0-alpha.2", - "resolved": "https://registry.npmjs.org/@cesium/wasm-splats/-/wasm-splats-0.1.0-alpha.2.tgz", - "integrity": "sha512-t9pMkknv31hhIbLpMa8yPvmqfpvs5UkUjgqlQv9SeO8VerCXOYnyP8/486BDaFrztM0A7FMbRjsXtNeKvqQghA==", - "license": "Apache-2.0" - }, - "node_modules/@cesium/widgets": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-12.3.0.tgz", - "integrity": "sha512-5Aa54lCrdywogY1ypOwRmRrb72LVrPvrOzOrcYeQ50DDZSs5hCxVXWecYYsq3qoeK0buA9wP/5TBWE7RlsV7OA==", - "license": "Apache-2.0", - "dependencies": { - "@cesium/engine": "^18.3.0", - "nosleep.js": "^0.12.0" - }, - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/@cesium/widgets/node_modules/@cesium/engine": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-18.3.0.tgz", - "integrity": "sha512-ILNA1a+RX2gNsQGyF2zq27Ucaj5UMj19paYoJbKxX/U0QtxLuFUhJ2yg6wr2eBtC3X3kd475o7kAx0LpfCZxpg==", - "license": "Apache-2.0", - "dependencies": { - "@cesium/wasm-splats": "^0.1.0-alpha.2", - "@spz-loader/core": "0.1.0", - "@tweenjs/tween.js": "^25.0.0", - "@zip.js/zip.js": "^2.7.34", - "autolinker": "^4.0.0", - "bitmap-sdf": "^1.0.3", - "dompurify": "^3.0.2", - "draco3d": "^1.5.1", - "earcut": "^3.0.0", - "grapheme-splitter": "^1.0.4", - "jsep": "^1.3.8", - "kdbush": "^4.0.1", - "ktx-parse": "^1.0.0", - "lerc": "^2.0.0", - "mersenne-twister": "^1.1.0", - "meshoptimizer": "^0.24.0", - "pako": "^2.0.4", - "protobufjs": "^7.1.0", - "rbush": "^4.0.1", - "topojson-client": "^3.1.0", - "urijs": "^1.19.7" - }, - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/@cesium/widgets/node_modules/lerc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lerc/-/lerc-2.0.0.tgz", - "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==", - "license": "Apache-2.0" - }, - "node_modules/@cesium/widgets/node_modules/meshoptimizer": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.24.0.tgz", - "integrity": "sha512-Iq/8cM5cK2B0P0QdKHexr30zEJn5sQxjXKtQJGp6LO7r1VUPwhgxau18pvybVDnEDsKE49GdlJYwqPX9A/P9Sw==", - "license": "MIT" - }, "node_modules/@clr/angular": { "version": "17.11.2", "resolved": "https://registry.npmjs.org/@clr/angular/-/angular-17.11.2.tgz", @@ -3251,14 +3135,6 @@ "resolved": "projects/cookie-alert", "link": true }, - "node_modules/@dlr-eoc/core-ui": { - "resolved": "projects/core-ui", - "link": true - }, - "node_modules/@dlr-eoc/layer-control": { - "resolved": "projects/layer-control", - "link": true - }, "node_modules/@dlr-eoc/map-cesium": { "resolved": "projects/map-cesium", "link": true @@ -3275,8 +3151,8 @@ "resolved": "projects/map-three", "link": true }, - "node_modules/@dlr-eoc/map-tools": { - "resolved": "projects/map-tools", + "node_modules/@dlr-eoc/ngx-ukis-ui-clarity": { + "resolved": "projects/ngx-ukis-ui-clarity", "link": true }, "node_modules/@dlr-eoc/ngx-ukis-utilities": { @@ -3303,10 +3179,6 @@ "resolved": "projects/shared-assets", "link": true }, - "node_modules/@dlr-eoc/user-info": { - "resolved": "projects/user-info", - "link": true - }, "node_modules/@dlr-eoc/utilities": { "resolved": "projects/utilities", "link": true @@ -4489,126 +4361,6 @@ "win32" ] }, - "node_modules/@mapbox/geojson-rewind": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", - "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", - "license": "ISC", - "dependencies": { - "get-stream": "^6.0.1", - "minimist": "^1.2.6" - }, - "bin": { - "geojson-rewind": "geojson-rewind" - } - }, - "node_modules/@mapbox/geojson-rewind/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mapbox/point-geometry": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-1.1.0.tgz", - "integrity": "sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==", - "license": "ISC" - }, - "node_modules/@mapbox/tiny-sdf": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.7.tgz", - "integrity": "sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==", - "license": "BSD-2-Clause" - }, - "node_modules/@mapbox/togeojson": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@mapbox/togeojson/-/togeojson-0.16.2.tgz", - "integrity": "sha512-DcApudmw4g/grOrpM5gYPZfts6Kr8litBESN6n/27sDsjR2f+iJhx4BA0J2B+XrLlnHyJkKztYApe6oCUZpzFA==", - "license": "BSD-2-Clause", - "dependencies": { - "@xmldom/xmldom": "^0.8.10", - "concat-stream": "~2.0.0", - "minimist": "1.2.8" - }, - "bin": { - "togeojson": "togeojson" - } - }, - "node_modules/@mapbox/unitbezier": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", - "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", - "license": "BSD-2-Clause" - }, - "node_modules/@mapbox/vector-tile": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-2.0.4.tgz", - "integrity": "sha512-AkOLcbgGTdXScosBWwmmD7cDlvOjkg/DetGva26pIRiZPdeJYjYKarIlb4uxVzi6bwHO6EWH82eZ5Nuv4T5DUg==", - "license": "BSD-3-Clause", - "dependencies": { - "@mapbox/point-geometry": "~1.1.0", - "@types/geojson": "^7946.0.16", - "pbf": "^4.0.1" - } - }, - "node_modules/@mapbox/whoots-js": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", - "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", - "license": "ISC", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@maplibre/maplibre-gl-style-spec": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-23.3.0.tgz", - "integrity": "sha512-IGJtuBbaGzOUgODdBRg66p8stnwj9iDXkgbYKoYcNiiQmaez5WVRfXm4b03MCDwmZyX93csbfHFWEJJYHnn5oA==", - "license": "ISC", - "dependencies": { - "@mapbox/jsonlint-lines-primitives": "~2.0.2", - "@mapbox/unitbezier": "^0.0.1", - "json-stringify-pretty-compact": "^4.0.0", - "minimist": "^1.2.8", - "quickselect": "^3.0.0", - "rw": "^1.3.3", - "tinyqueue": "^3.0.0" - }, - "bin": { - "gl-style-format": "dist/gl-style-format.mjs", - "gl-style-migrate": "dist/gl-style-migrate.mjs", - "gl-style-validate": "dist/gl-style-validate.mjs" - } - }, - "node_modules/@maplibre/vt-pbf": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@maplibre/vt-pbf/-/vt-pbf-4.0.3.tgz", - "integrity": "sha512-YsW99BwnT+ukJRkseBcLuZHfITB4puJoxnqPVjo72rhW/TaawVYsgQHcqWLzTxqknttYoDpgyERzWSa/XrETdA==", - "license": "MIT", - "dependencies": { - "@mapbox/point-geometry": "^1.1.0", - "@mapbox/vector-tile": "^2.0.4", - "@types/geojson-vt": "3.2.5", - "@types/supercluster": "^7.1.3", - "geojson-vt": "^4.0.2", - "pbf": "^4.0.1", - "supercluster": "^8.0.1" - } - }, "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", @@ -5703,70 +5455,6 @@ "node": ">=14" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "license": "BSD-3-Clause" - }, "node_modules/@rollup/plugin-json": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", @@ -6252,16 +5940,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@spz-loader/core": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@spz-loader/core/-/core-0.1.0.tgz", - "integrity": "sha512-atqn/DLy0xNkqRgz3l/5CD12y1M44JdjTmAFQYDKvzf0pIyj+NlJ/PeCRlSJQfXmZ2JndNOCpcGOFVldANf/EA==", - "license": "Apache-2.0", - "engines": { - "node": ">=16", - "pnpm": ">=8" - } - }, "node_modules/@thednp/event-listener": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/@thednp/event-listener/-/event-listener-2.0.10.tgz", @@ -6363,12 +6041,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@tweenjs/tween.js": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz", - "integrity": "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==", - "license": "MIT" - }, "node_modules/@types/body-parser": { "version": "1.19.6", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", @@ -6482,15 +6154,6 @@ "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", "license": "MIT" }, - "node_modules/@types/geojson-vt": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", - "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", - "license": "MIT", - "dependencies": { - "@types/geojson": "*" - } - }, "node_modules/@types/http-errors": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", @@ -6661,15 +6324,6 @@ "@types/node": "*" } }, - "node_modules/@types/supercluster": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", - "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", - "license": "MIT", - "dependencies": { - "@types/geojson": "*" - } - }, "node_modules/@types/toposort": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/toposort/-/toposort-2.0.7.tgz", @@ -6966,15 +6620,6 @@ "integrity": "sha512-loGD63sacRzOzSJgQnB9ZAhaQGkN7wl2Zuw7tsphI5Isa0irijrRo6EnJii/GgjGefIFO8AIO7UivzRhFaEk9w==", "license": "BSD-3-Clause" }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", - "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -6995,17 +6640,6 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "license": "BSD-2-Clause" }, - "node_modules/@zip.js/zip.js": { - "version": "2.7.73", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.73.tgz", - "integrity": "sha512-I2UP8/rdQE5hTtVVL08B7P8XuwXiKuuMUPjNuFOVL/9b+8IsExR9S5jz2H58u0rJjU4M1BikLgqEMG8gZJZVBw==", - "license": "BSD-3-Clause", - "engines": { - "bun": ">=0.7.0", - "deno": ">=1.0.0", - "node": ">=16.5.0" - } - }, "node_modules/abbrev": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", @@ -7352,16 +6986,12 @@ "license": "MIT" }, "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "license": "MIT", - "dependencies": { - "array-uniq": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/array-uniq": { @@ -7375,13 +7005,12 @@ } }, "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/asn1": { @@ -7428,18 +7057,6 @@ "node": ">= 4.0.0" } }, - "node_modules/autolinker": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-4.1.5.tgz", - "integrity": "sha512-vEfYZPmvVOIuE567XBVCsx8SBgOYtjB2+S1iAaJ+HgH+DNjAcrHem2hmAeC9yaNGWayicv4yR+9UaJlkF3pvtw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - }, - "engines": { - "pnpm": ">=10.10.0" - } - }, "node_modules/autoprefixer": { "version": "10.4.20", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", @@ -7691,12 +7308,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bitmap-sdf": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", - "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==", - "license": "MIT" - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -7955,6 +7566,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, "license": "MIT" }, "node_modules/builtin-modules": { @@ -8206,13 +7818,15 @@ } }, "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, + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/caniuse-lite": { @@ -8839,21 +8453,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, - "node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "engines": [ - "node >= 6.0" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", @@ -9367,6 +8966,29 @@ "node": ">=0.10.0" } }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/del/node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -9527,18 +9149,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/depcheck/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/depcheck/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -9572,15 +9182,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, - "node_modules/depcheck/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/depcheck/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -9603,21 +9204,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/depcheck/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/depcheck/node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -9651,15 +9237,6 @@ "node": ">=8.10.0" } }, - "node_modules/depcheck/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/depcheck/node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -9896,15 +9473,6 @@ "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/dompurify": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", - "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, "node_modules/domutils": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", @@ -9927,12 +9495,6 @@ "dev": true, "license": "MIT" }, - "node_modules/draco3d": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", - "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==", - "license": "Apache-2.0" - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -9986,9 +9548,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.212", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.212.tgz", - "integrity": "sha512-gE7ErIzSW+d8jALWMcOIgf+IB6lpfsg6NwOhPVwKzDtN2qcBix47vlin4yzSregYDxTCXOUqAZjVY/Z3naS7ww==", + "version": "1.5.214", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.214.tgz", + "integrity": "sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==", "dev": true, "license": "ISC" }, @@ -11258,12 +10820,6 @@ "node": ">=6.9.0" } }, - "node_modules/geojson-vt": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", - "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==", - "license": "ISC" - }, "node_modules/geotiff": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz", @@ -11369,12 +10925,6 @@ "assert-plus": "^1.0.0" } }, - "node_modules/gl-matrix": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", - "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", - "license": "MIT" - }, "node_modules/glob": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", @@ -11436,6 +10986,22 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", @@ -11505,6 +11071,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globby/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -11524,12 +11100,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "license": "ISC" }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "license": "MIT" - }, "node_modules/hammerjs": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", @@ -12095,10 +11665,9 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "license": "MIT", "engines": { "node": ">= 4" @@ -12175,6 +11744,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -12856,15 +12434,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsep": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", - "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", - "license": "MIT", - "engines": { - "node": ">= 10.16.0" - } - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -12919,12 +12488,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/json-stringify-pretty-compact": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", - "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", - "license": "MIT" - }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -13491,12 +13054,6 @@ "node": ">=10" } }, - "node_modules/kdbush": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", - "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", - "license": "ISC" - }, "node_modules/keycharm": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.2.0.tgz", @@ -13523,12 +13080,6 @@ "graceful-fs": "^4.1.11" } }, - "node_modules/ktx-parse": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.1.0.tgz", - "integrity": "sha512-mKp3y+FaYgR7mXWAbyyzpa/r1zDWeaunH+INJO4fou3hb45XuNSwar+7llrRyvpMWafxSIi99RNFJ05MHedaJQ==", - "license": "MIT" - }, "node_modules/launch-editor": { "version": "2.11.1", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.11.1.tgz", @@ -14049,12 +13600,6 @@ "dev": true, "license": "MIT" }, - "node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", - "license": "Apache-2.0" - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -14155,49 +13700,6 @@ "dev": true, "license": "MIT" }, - "node_modules/mapbox-to-css-font": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-3.2.0.tgz", - "integrity": "sha512-kvsEfzvLik34BiFj+S19bv5d70l9qSdkUzrq99dvZ9d5POaLyB4vJMQmq3BoJ5D6lFG1GYnMM7o7cm5Jh8YEEg==", - "license": "BSD-2-Clause" - }, - "node_modules/maplibre-gl": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.7.0.tgz", - "integrity": "sha512-Hs+Y0qbR1iZo+07WuSbYUCOOUK45pPRzA3+7Pes8Y9jCcAqZendIMcVP6O99CWD1V/znh3qHgaZOAi3jlVxwcg==", - "license": "BSD-3-Clause", - "dependencies": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/point-geometry": "^1.1.0", - "@mapbox/tiny-sdf": "^2.0.7", - "@mapbox/unitbezier": "^0.0.1", - "@mapbox/vector-tile": "^2.0.4", - "@mapbox/whoots-js": "^3.1.0", - "@maplibre/maplibre-gl-style-spec": "^23.3.0", - "@maplibre/vt-pbf": "^4.0.3", - "@types/geojson": "^7946.0.16", - "@types/geojson-vt": "3.2.5", - "@types/supercluster": "^7.1.3", - "earcut": "^3.0.2", - "geojson-vt": "^4.0.2", - "gl-matrix": "^3.4.4", - "kdbush": "^4.0.2", - "murmurhash-js": "^1.0.0", - "pbf": "^4.0.1", - "potpack": "^2.1.0", - "quickselect": "^3.0.0", - "supercluster": "^8.0.1", - "tinyqueue": "^3.0.0" - }, - "engines": { - "node": ">=16.14.0", - "npm": ">=8.1.0" - }, - "funding": { - "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" - } - }, "node_modules/marked": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/marked/-/marked-7.0.3.tgz", @@ -14291,18 +13793,6 @@ "node": ">= 8" } }, - "node_modules/mersenne-twister": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mersenne-twister/-/mersenne-twister-1.1.0.tgz", - "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==", - "license": "MIT" - }, - "node_modules/meshoptimizer": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.23.0.tgz", - "integrity": "sha512-zAZcfhHE3wBbwEN8MfCMI9PKRyOpz8491wcR2dxkv3IlNwDZrq2hEs5JZVtzfBrmjWhBZZtZZUO0OBSNFq5iUQ==", - "license": "MIT" - }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -14430,16 +13920,15 @@ "license": "ISC" }, "node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "dev": true, + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", "license": "ISC", "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "20 || >=22" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -14747,24 +14236,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/multimatch/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/multimatch/node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -14787,12 +14258,6 @@ "node": "*" } }, - "node_modules/murmurhash-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", - "license": "MIT" - }, "node_modules/mute-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", @@ -15253,12 +14718,6 @@ "node": ">=0.10.0" } }, - "node_modules/nosleep.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", - "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==", - "license": "MIT" - }, "node_modules/npm-bundled": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", @@ -15455,19 +14914,6 @@ "url": "https://opencollective.com/openlayers" } }, - "node_modules/ol-mapbox-style": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-12.6.1.tgz", - "integrity": "sha512-bpN7ZvqbQX/JZnru0MTQgPIAUBAgPOvYDj/9BoJoqCvFYjHxCpRFDQJEoD10PLw3vGHNJFYBUvY82yfW26otQg==", - "license": "BSD-2-Clause", - "dependencies": { - "@maplibre/maplibre-gl-style-spec": "^23.1.0", - "mapbox-to-css-font": "^3.1.2" - }, - "peerDependencies": { - "ol": "*" - } - }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -16185,9 +15631,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", - "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.1.tgz", + "integrity": "sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==", "dev": true, "license": "ISC", "engines": { @@ -16484,12 +15930,6 @@ "dev": true, "license": "MIT" }, - "node_modules/potpack": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.1.0.tgz", - "integrity": "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==", - "license": "ISC" - }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -16552,30 +15992,6 @@ "hammerjs": "^2.0.8" } }, - "node_modules/protobufjs": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", - "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/protocol-buffers-schema": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", @@ -16645,6 +16061,16 @@ "concat-map": "0.0.1" } }, + "node_modules/protractor/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/protractor/node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -17464,12 +16890,12 @@ } }, "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/resolve-protobuf-schema": { @@ -17717,12 +17143,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause" - }, "node_modules/rxjs": { "version": "7.8.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", @@ -19143,15 +18563,6 @@ "node": ">=6" } }, - "node_modules/supercluster": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", - "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", - "license": "ISC", - "dependencies": { - "kdbush": "^4.0.2" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -19388,12 +18799,6 @@ "tslib": "^2" } }, - "node_modules/three": { - "version": "0.176.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.176.0.tgz", - "integrity": "sha512-PWRKYWQo23ojf9oZSlRGH8K09q7nRSWx6LY/HF/UUrMdYgN9i1e2OwJYHoQjwc6HF/4lvvYLC5YC1X8UJL2ZpA==", - "license": "MIT" - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -19424,12 +18829,6 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinyqueue": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", - "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", - "license": "ISC" - }, "node_modules/tmp": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", @@ -19462,26 +18861,6 @@ "node": ">=0.6" } }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "license": "ISC", - "dependencies": { - "commander": "2" - }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" - } - }, - "node_modules/topojson-client/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, "node_modules/toposort": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", @@ -19905,12 +19284,6 @@ "dev": true, "license": "MIT" }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "license": "MIT" - }, "node_modules/typescript": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", @@ -20134,12 +19507,6 @@ "node": ">=6" } }, - "node_modules/urijs": { - "version": "1.19.11", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", - "license": "MIT" - }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -21775,69 +21142,14 @@ "@angular/core": "^19.2.12" } }, - "projects/core-ui": { - "name": "@dlr-eoc/core-ui", - "version": "16.0.0-next.0", - "license": "Apache-2.0", - "dependencies": { - "@angular-devkit/core": "^19.2.13", - "@angular-devkit/schematics": "^19.2.13", - "@schematics/angular": "^19.2.13", - "parse5-html-rewriting-stream": "^7.1.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "@angular-devkit/architect": "^0.1902.13", - "@angular/platform-browser-dynamic": "^19.2.12", - "jasmine": "^5.7.1", - "typescript": "^5.8.3", - "zone.js": "~0.15.0" - }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "@angular/router": "^19.2.12", - "@cds/core": "^6.15.1", - "@clr/angular": "^17.10.0", - "jsonc-parser": "^3.3.1", - "rxjs": "~7.8.2" - } - }, - "projects/core-ui/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "projects/core-ui/node_modules/parse5-html-rewriting-stream": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.1.0.tgz", - "integrity": "sha512-2ifK6Jb+ONoqOy5f+cYHsqvx1obHQdvIk13Jmt/5ezxP0U9p+fqd+R6O73KblGswyuzBYfetmsfK9ThMgnuPPg==", - "license": "MIT", - "dependencies": { - "entities": "^6.0.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "projects/demo-auth": { "version": "16.0.0-next.0", "license": "Apache-2.0", "dependencies": { "@dlr-eoc/base-layers-raster": "16.0.0-next.0", "@dlr-eoc/cookie-alert": "16.0.0-next.0", - "@dlr-eoc/layer-control": "16.0.0-next.0", "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/user-info": "16.0.0-next.0" + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0" }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", @@ -21858,12 +21170,11 @@ "license": "Apache-2.0", "dependencies": { "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/layer-control": "16.0.0-next.0", "@dlr-eoc/map-cesium": "16.0.0-next.0", "@dlr-eoc/map-maplibre": "16.0.0-next.0", "@dlr-eoc/map-ol": "16.0.0-next.0", "@dlr-eoc/map-three": "16.0.0-next.0", - "@dlr-eoc/map-tools": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0", "@dlr-eoc/services-ogc": "16.0.0-next.0", "@dlr-eoc/shared-assets": "16.0.0-next.0", "@dlr-eoc/utils-maps": "16.0.0-next.0" @@ -21884,31 +21195,6 @@ "rxjs": "~7.8.2" } }, - "projects/layer-control": { - "name": "@dlr-eoc/layer-control", - "version": "16.0.0-next.0", - "license": "Apache-2.0", - "dependencies": { - "@angular/cdk": "^19.2.12", - "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "@angular/platform-browser-dynamic": "^19.2.12", - "zone.js": "~0.15.0" - }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "@angular/forms": "^19.2.12", - "@cds/core": "^6.15.1", - "@clr/angular": "^17.10.0", - "@clr/ui": "^17.10.0", - "rxjs": "~7.8.2" - } - }, "projects/map-cesium": { "name": "@dlr-eoc/map-cesium", "version": "16.0.0-next.0", @@ -21930,100 +21216,561 @@ "rxjs": "~7.8.2" } }, - "projects/map-maplibre": { - "name": "@dlr-eoc/map-maplibre", - "version": "16.0.0-next.0", + "projects/map-cesium/node_modules/@cesium/engine": { + "version": "17.0.0", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/utilities": "16.0.0-next.0", - "@mapbox/togeojson": "0.16.2", - "maplibre-gl": "^5.5.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0" + "@tweenjs/tween.js": "^25.0.0", + "@zip.js/zip.js": "^2.7.34", + "autolinker": "^4.0.0", + "bitmap-sdf": "^1.0.3", + "dompurify": "^3.0.2", + "draco3d": "^1.5.1", + "earcut": "^3.0.0", + "grapheme-splitter": "^1.0.4", + "jsep": "^1.3.8", + "kdbush": "^4.0.1", + "ktx-parse": "^1.0.0", + "lerc": "^2.0.0", + "mersenne-twister": "^1.1.0", + "meshoptimizer": "^0.23.0", + "pako": "^2.0.4", + "protobufjs": "^7.1.0", + "rbush": "3.0.1", + "topojson-client": "^3.1.0", + "urijs": "^1.19.7" }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "rxjs": "~7.8.2" + "engines": { + "node": ">=14.0.0" } }, - "projects/map-ol": { - "name": "@dlr-eoc/map-ol", - "version": "16.0.0-next.0", - "license": "Apache-2.0", - "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/utils-maps": "16.0.0-next.0", - "ol": "^v10.5.0", - "ol-mapbox-style": "^12.4.0", - "proj4": "^2.17.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0", - "zone.js": "~0.15.0" - }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "rxjs": "~7.8.2" - } + "projects/map-cesium/node_modules/@cesium/wasm-splats": { + "version": "0.1.0-alpha.2", + "license": "Apache-2.0" }, - "projects/map-three": { - "name": "@dlr-eoc/map-three", - "version": "16.0.0-next.0", + "projects/map-cesium/node_modules/@cesium/widgets": { + "version": "12.3.0", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/utils-maps": "16.0.0-next.0", - "proj4": "^2.17.0", - "three": "^0.176.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "@angular/platform-browser-dynamic": "^19.2.12", - "zone.js": "~0.15.0" + "@cesium/engine": "^18.3.0", + "nosleep.js": "^0.12.0" }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12" + "engines": { + "node": ">=20.19.0" } }, - "projects/map-tools": { - "name": "@dlr-eoc/map-tools", - "version": "16.0.0-next.0", + "projects/map-cesium/node_modules/@cesium/widgets/node_modules/@cesium/engine": { + "version": "18.3.0", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "@angular/platform-browser-dynamic": "^19.2.12", + "@cesium/wasm-splats": "^0.1.0-alpha.2", + "@spz-loader/core": "0.1.0", + "@tweenjs/tween.js": "^25.0.0", + "@zip.js/zip.js": "^2.7.34", + "autolinker": "^4.0.0", + "bitmap-sdf": "^1.0.3", + "dompurify": "^3.0.2", + "draco3d": "^1.5.1", + "earcut": "^3.0.0", + "grapheme-splitter": "^1.0.4", + "jsep": "^1.3.8", + "kdbush": "^4.0.1", + "ktx-parse": "^1.0.0", + "lerc": "^2.0.0", + "mersenne-twister": "^1.1.0", + "meshoptimizer": "^0.24.0", + "pako": "^2.0.4", + "protobufjs": "^7.1.0", + "rbush": "^4.0.1", + "topojson-client": "^3.1.0", + "urijs": "^1.19.7" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "projects/map-cesium/node_modules/@cesium/widgets/node_modules/meshoptimizer": { + "version": "0.24.0", + "license": "MIT" + }, + "projects/map-cesium/node_modules/@cesium/widgets/node_modules/quickselect": { + "version": "3.0.0", + "license": "ISC" + }, + "projects/map-cesium/node_modules/@cesium/widgets/node_modules/rbush": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "quickselect": "^3.0.0" + } + }, + "projects/map-cesium/node_modules/@spz-loader/core": { + "version": "0.1.0", + "license": "Apache-2.0", + "engines": { + "node": ">=16", + "pnpm": ">=8" + } + }, + "projects/map-cesium/node_modules/@tweenjs/tween.js": { + "version": "25.0.0", + "license": "MIT" + }, + "projects/map-cesium/node_modules/@zip.js/zip.js": { + "version": "2.7.73", + "license": "BSD-3-Clause", + "engines": { + "bun": ">=0.7.0", + "deno": ">=1.0.0", + "node": ">=16.5.0" + } + }, + "projects/map-cesium/node_modules/autolinker": { + "version": "4.1.5", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + }, + "engines": { + "pnpm": ">=10.10.0" + } + }, + "projects/map-cesium/node_modules/bitmap-sdf": { + "version": "1.0.4", + "license": "MIT" + }, + "projects/map-cesium/node_modules/dompurify": { + "version": "3.2.6", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "projects/map-cesium/node_modules/draco3d": { + "version": "1.5.7", + "license": "Apache-2.0" + }, + "projects/map-cesium/node_modules/jsep": { + "version": "1.4.0", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + } + }, + "projects/map-cesium/node_modules/kdbush": { + "version": "4.0.2", + "license": "ISC" + }, + "projects/map-cesium/node_modules/ktx-parse": { + "version": "1.1.0", + "license": "MIT" + }, + "projects/map-cesium/node_modules/lerc": { + "version": "2.0.0", + "license": "Apache-2.0" + }, + "projects/map-cesium/node_modules/long": { + "version": "5.3.2", + "license": "Apache-2.0" + }, + "projects/map-cesium/node_modules/meshoptimizer": { + "version": "0.23.0", + "license": "MIT" + }, + "projects/map-cesium/node_modules/nosleep.js": { + "version": "0.12.0", + "license": "MIT" + }, + "projects/map-cesium/node_modules/protobufjs": { + "version": "7.5.4", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "projects/map-cesium/node_modules/quickselect": { + "version": "2.0.0", + "license": "ISC" + }, + "projects/map-cesium/node_modules/rbush": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "projects/map-cesium/node_modules/urijs": { + "version": "1.19.11", + "license": "MIT" + }, + "projects/map-maplibre": { + "name": "@dlr-eoc/map-maplibre", + "version": "16.0.0-next.0", + "license": "Apache-2.0", + "dependencies": { + "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-map-state": "16.0.0-next.0", + "@dlr-eoc/utilities": "16.0.0-next.0", + "@mapbox/togeojson": "0.16.2", + "maplibre-gl": "^5.5.0", + "tslib": "^2.6.3" + }, + "devDependencies": { + "@dlr-eoc/base-layers-raster": "16.0.0-next.0", + "@dlr-eoc/shared-assets": "16.0.0-next.0" + }, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12", + "rxjs": "~7.8.2" + } + }, + "projects/map-maplibre/node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "license": "ISC", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "projects/map-maplibre/node_modules/@mapbox/point-geometry": { + "version": "1.1.0", + "license": "ISC" + }, + "projects/map-maplibre/node_modules/@mapbox/tiny-sdf": { + "version": "2.0.7", + "license": "BSD-2-Clause" + }, + "projects/map-maplibre/node_modules/@mapbox/togeojson": { + "version": "0.16.2", + "license": "BSD-2-Clause", + "dependencies": { + "@xmldom/xmldom": "^0.8.10", + "concat-stream": "~2.0.0", + "minimist": "1.2.8" + }, + "bin": { + "togeojson": "togeojson" + } + }, + "projects/map-maplibre/node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "license": "BSD-2-Clause" + }, + "projects/map-maplibre/node_modules/@mapbox/vector-tile": { + "version": "2.0.4", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/point-geometry": "~1.1.0", + "@types/geojson": "^7946.0.16", + "pbf": "^4.0.1" + } + }, + "projects/map-maplibre/node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "23.3.0", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^3.0.0", + "rw": "^1.3.3", + "tinyqueue": "^3.0.0" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "projects/map-maplibre/node_modules/@maplibre/vt-pbf": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "@mapbox/point-geometry": "^1.1.0", + "@mapbox/vector-tile": "^2.0.4", + "@types/geojson-vt": "3.2.5", + "@types/supercluster": "^7.1.3", + "geojson-vt": "^4.0.2", + "pbf": "^4.0.1", + "supercluster": "^8.0.1" + } + }, + "projects/map-maplibre/node_modules/@types/geojson-vt": { + "version": "3.2.5", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "projects/map-maplibre/node_modules/@types/supercluster": { + "version": "7.1.3", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "projects/map-maplibre/node_modules/@xmldom/xmldom": { + "version": "0.8.11", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "projects/map-maplibre/node_modules/geojson-vt": { + "version": "4.0.2", + "license": "ISC" + }, + "projects/map-maplibre/node_modules/get-stream": { + "version": "6.0.1", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "projects/map-maplibre/node_modules/gl-matrix": { + "version": "3.4.4", + "license": "MIT" + }, + "projects/map-maplibre/node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "license": "MIT" + }, + "projects/map-maplibre/node_modules/kdbush": { + "version": "4.0.2", + "license": "ISC" + }, + "projects/map-maplibre/node_modules/maplibre-gl": { + "version": "5.7.0", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^1.1.0", + "@mapbox/tiny-sdf": "^2.0.7", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^2.0.4", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/maplibre-gl-style-spec": "^23.3.0", + "@maplibre/vt-pbf": "^4.0.3", + "@types/geojson": "^7946.0.16", + "@types/geojson-vt": "3.2.5", + "@types/supercluster": "^7.1.3", + "earcut": "^3.0.2", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.4", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^4.0.1", + "potpack": "^2.1.0", + "quickselect": "^3.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } + }, + "projects/map-maplibre/node_modules/potpack": { + "version": "2.1.0", + "license": "ISC" + }, + "projects/map-maplibre/node_modules/supercluster": { + "version": "8.0.1", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "projects/map-maplibre/node_modules/tinyqueue": { + "version": "3.0.0", + "license": "ISC" + }, + "projects/map-ol": { + "name": "@dlr-eoc/map-ol", + "version": "16.0.0-next.0", + "license": "Apache-2.0", + "dependencies": { + "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-map-state": "16.0.0-next.0", + "@dlr-eoc/utils-maps": "16.0.0-next.0", + "ol": "^v10.5.0", + "ol-mapbox-style": "^12.4.0", + "proj4": "^2.17.0", + "tslib": "^2.6.3" + }, + "devDependencies": { + "@angular/platform-browser-dynamic": "^19.2.12", + "@dlr-eoc/base-layers-raster": "16.0.0-next.0", + "@dlr-eoc/shared-assets": "16.0.0-next.0", + "zone.js": "~0.15.0" + }, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12", + "rxjs": "~7.8.2" + } + }, + "projects/map-ol/node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "license": "BSD-2-Clause" + }, + "projects/map-ol/node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "23.3.0", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^3.0.0", + "rw": "^1.3.3", + "tinyqueue": "^3.0.0" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "projects/map-ol/node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "license": "MIT" + }, + "projects/map-ol/node_modules/mapbox-to-css-font": { + "version": "3.2.0", + "license": "BSD-2-Clause" + }, + "projects/map-ol/node_modules/ol-mapbox-style": { + "version": "12.6.1", + "license": "BSD-2-Clause", + "dependencies": { + "@maplibre/maplibre-gl-style-spec": "^23.1.0", + "mapbox-to-css-font": "^3.1.2" + }, + "peerDependencies": { + "ol": "*" + } + }, + "projects/map-ol/node_modules/tinyqueue": { + "version": "3.0.0", + "license": "ISC" + }, + "projects/map-three": { + "name": "@dlr-eoc/map-three", + "version": "16.0.0-next.0", + "license": "Apache-2.0", + "dependencies": { + "@dlr-eoc/map-ol": "16.0.0-next.0", + "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-map-state": "16.0.0-next.0", + "@dlr-eoc/utils-maps": "16.0.0-next.0", + "proj4": "^2.17.0", + "three": "^0.176.0", + "tslib": "^2.6.3" + }, + "devDependencies": { + "@angular/platform-browser-dynamic": "^19.2.12", + "zone.js": "~0.15.0" + }, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12" + } + }, + "projects/map-three/node_modules/three": { + "version": "0.176.0", + "license": "MIT" + }, + "projects/ngx-ukis-ui-clarity": { + "name": "@dlr-eoc/ngx-ukis-ui-clarity", + "version": "16.0.0-next.0", + "license": "Apache-2.0", + "dependencies": { + "@angular-devkit/core": "^19.2.13", + "@angular-devkit/schematics": "^19.2.13", + "@schematics/angular": "^19.2.13", + "parse5-html-rewriting-stream": "^7.1.0", + "tslib": "^2.6.3" + }, + "devDependencies": { + "@angular-devkit/architect": "^0.1902.13", + "@angular/platform-browser-dynamic": "^19.2.12", + "jasmine": "^5.7.1", + "typescript": "^5.8.3", "zone.js": "~0.15.0" }, "peerDependencies": { + "@angular/cdk": "^19.2.12", "@angular/common": "^19.2.12", "@angular/core": "^19.2.12", "@angular/forms": "^19.2.12", + "@angular/router": "^19.2.12", "@cds/core": "^6.15.1", "@clr/angular": "^17.10.0", "@clr/ui": "^17.10.0", + "@dlr-eoc/map-ol": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", + "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-map-state": "16.0.0-next.0", + "jsonc-parser": "^3.3.1", "ol": "^v10.5.0", "proj4": "^2.17.0", "rxjs": "~7.8.2" } }, + "projects/ngx-ukis-ui-clarity/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "projects/ngx-ukis-ui-clarity/node_modules/parse5-html-rewriting-stream": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.1.0.tgz", + "integrity": "sha512-2ifK6Jb+ONoqOy5f+cYHsqvx1obHQdvIk13Jmt/5ezxP0U9p+fqd+R6O73KblGswyuzBYfetmsfK9ThMgnuPPg==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "projects/ngx-ukis-utilities": { "name": "@dlr-eoc/ngx-ukis-utilities", "version": "16.0.0-next.0", @@ -22034,7 +21781,8 @@ "devDependencies": {}, "peerDependencies": { "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12" + "@angular/core": "^19.2.12", + "@angular/platform-browser-dynamic": "^19.2.12" } }, "projects/services-layers": { @@ -22154,27 +21902,6 @@ "license": "Apache-2.0", "devDependencies": {} }, - "projects/user-info": { - "name": "@dlr-eoc/user-info", - "version": "16.0.0-next.0", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.3" - }, - "devDependencies": { - "@angular/platform-browser-dynamic": "^19.2.12", - "zone.js": "~0.15.0" - }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "@angular/forms": "^19.2.12", - "@cds/core": "^6.15.1", - "@clr/angular": "^17.10.0", - "@clr/ui": "^17.10.0", - "rxjs": "~7.8.2" - } - }, "projects/utilities": { "name": "@dlr-eoc/utilities", "version": "16.0.0-next.0", @@ -22243,7 +21970,8 @@ "devDependencies": { "@types/jasmine": "^5.1.8", "@types/node": "^22.15.21", - "@types/toposort": "^2.0.3" + "@types/toposort": "^2.0.3", + "tslib": "^2.6.3" }, "engines": { "node": ">= 18.13.0", @@ -22257,6 +21985,8 @@ }, "scripts/library/node_modules/commander": { "version": "14.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz", + "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==", "license": "MIT", "engines": { "node": ">=20" diff --git a/package.json b/package.json index f830345c1..6d264a477 100644 --- a/package.json +++ b/package.json @@ -22,11 +22,11 @@ "start": "ng serve demo-maps", "build": "node scripts/library/index.js --build", "test": "node scripts/library/index.js --test", - "schematics:test": "npm run schematics:test --workspace=projects/core-ui", + "schematics:test": "npm run schematics:test --workspace=projects/ngx-ukis-ui-clarity", "syncVersionsInWorkspaces": "node scripts/library/index.js --set-source", "build:scripts": "npx tsc -p scripts/library/tsconfig.json", "lint": "ng lint", - "compodoc": "compodoc -p tsconfig.doc.json -a projects/core-ui/schematics/ng-add/files/src/assets -n \"UKIS Frontend libraries\"", + "compodoc": "compodoc -p tsconfig.doc.json -a projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets -n \"UKIS Frontend libraries\"", "compodoc-serve": "compodoc -r 8081 -s", "build:license": "npx license-checker --json --out ./projects/demo-maps/src/assets/licenses.json", "postinstall": "patch-package" @@ -118,8 +118,6 @@ "scripts/library", "projects/cookie-alert", "projects/base-layers-raster", - "projects/core-ui", - "projects/map-tools", "projects/layer-control", "projects/map-ol", "projects/services-layers", @@ -128,7 +126,6 @@ "projects/services-map-state", "projects/demo-auth", "projects/demo-maps", - "projects/user-info", "projects/utils-browser", "projects/utils-maps", "projects/utils-ogc", diff --git a/projects/core-ui/DEVELOPMENT.md b/projects/core-ui/DEVELOPMENT.md deleted file mode 100644 index 23d949517..000000000 --- a/projects/core-ui/DEVELOPMENT.md +++ /dev/null @@ -1,68 +0,0 @@ -## Test the Schematics locally on a new angular project -https://blog.angular.io/schematics-an-introduction-dc1dfbc2a2b2 - -1. Use stricter checks in editor (e.g. add the following to main tsconfig.json or use tsconfig.schematics.json) -```` -"compilerOptions": { - ... - "noFallthroughCasesInSwitch": true, - "noUnusedParameters": true, - "noUnusedLocals": true, - "strictNullChecks": true, - ... -} -``` - -2. build the schematics `npm run build --workspace=projects/core-ui && npm run schematics:build --workspace=projects/core-ui` - -3. create a new project `ng new my-project` - -4. link to the Schematics in the new project `npm link $PATH_TO_SCHEMATIC_PROJECT` e.g. (`npm link ../frontend-libraries/dist/core-ui`) - -5. run the schematics in the new project `schematics @dlr-eoc/core-ui:ng-add` or `ng generate @dlr-eoc/core-ui:ng-add --project=` or `ng generate @dlr-eoc/core-ui:ng-add --project= --routing=true` - -6. Update -> run step 2. again (You don't have to unlink and relink) - - -to unlink use -`npm unlink $PATH_TO_SCHEMATIC_PROJECT` (`npm unlink ../frontend-libraries/dist/core-ui`) // this unfortunately does not remove the full link so you have to run -`npm uninstall @dlr-eoc/core-ui -g` // this leaves an empty folder @dlr-eoc in the global directory (`npm config get prefix`/node_modules) so remove it later if not needed - - -remove files in test app: -- `git clean -fd && git checkout .` - -### Unit Testing - -`npm run schematics:test --workspace=projects/core-ui` will run the unit tests, using Jasmine as a runner and test framework. -`ng test core-ui` will run the unit tests of the lib via [Karma](https://karma-runner.github.io). - -### Build Schematics - -- `npm run build --workspace=projects/core-ui && npm run schematics:build --workspace=projects/core-ui` - -The above command compiles the schematics -`tsc -p projects/core-ui/tsconfig.schematics.json` - -and copies the files (ng build core-ui ng-package.json assets) -- `projects/core-ui/schematics/collection.json dist/core-ui/schematics/` -- `projects/core-ui/schematics/**/schema.json dist/core-ui/schematics/` -- `projects/core-ui/schematics/*/files/** dist/core-ui/schematics/` -- `projects/core-ui/src/lib/global-alert/** dist/core-ui/schematics/ng-add/files/src/app/components/global-alert/` -- `projects/core-ui/src/lib/global-progress/** dist/core-ui/schematics/ng-add/files/src/app/components/global-progress/` -- ... - -### Publishing - -*for local publish use* -- in dist/ `npm pack` this creates a ukis-schematics-.tgz file which we can copy. - - -For further information how to build custom schematics see [angular schematics](https://angular.io/guide/schematics) and [@angular-devkit](https://github.com/angular/angular-cli/tree/master/packages/angular_devkit). - - -## Update schematics -- https://timdeschryver.dev/blog/ng-update-the-setup - -- https://github.com/angular/angular/blob/14.0.5/packages/core/package.json#L28 -- https://github.com/angular/angular/blob/14.0.5/packages/core/schematics/migrations.json diff --git a/projects/core-ui/README.md b/projects/core-ui/README.md deleted file mode 100644 index f188c4393..000000000 --- a/projects/core-ui/README.md +++ /dev/null @@ -1,132 +0,0 @@ -# @dlr-eoc/core-ui (Schematics for UKIS core-ui) - -This project includes some schematics to add the base UKIS-Layout to an angular application. -The Layout is based on Clarity so [add this first](https://clarity.design/get-started/developing/angular)! - -## What the ng-add command is doing? - -``` -ng add @dlr-eoc/core-ui -``` - -- [add paths for library project in tsconfig.base.json](schematics/ng-add/index.ts#L273) - -- [add styles and files (for core-ui)](schematics/ng-add/index.ts#L61) - -- [adjust index.html and add favicon](schematics/ng-add/index.ts#L312) - -- [add default components (core-ui) for the app and register all in the app module](schematics/ng-add/index.ts#L177) - - -**options:** - ---project=string // the project in the angular workspace (default 'defaultProject') - ---routing=boolean // sets up angular routing (default false) - ---addClr=boolean // run's @clr/angular:ng-add (default false) // does not work anymore, we need to remove this - - -> The following are not implemented right now! - ---addMap=boolean // adds a map component (default false) - ---auth=boolean // default false, adjusts the app for authentication and user login - - -## layout structure of the core-ui - -The UKIS core-ui (created by the the schematics) is based on the [Clarity Application Layout](https://clarity.design/documentation/app-layout). - -It uses the angular components from Clarity to get a responsive navigation. - -### For an application with routes: -Use a basic layout like the following, containing the router-outlet which then shows route components as the Clarity `content-container`. -``` - - @if(ui.alert){ - - } - @if(ui.progress){ - - } - - ... - - - -``` - -### For an application without routes: -Replace the router-outlet with a view component which also adds the Clarity `content-container` class as HostBinding. -``` - - @if(ui.alert){ - - } - @if(ui.progress){ - - } - - ... - - - -``` - -- A css class `floating` on the `content-container` (which is mostly placed in your route components) makes the [Clarity Vertical Nav](https://clarity.design/documentation/vertical-nav/collapsible-nav/normal) floating above the `content-container` so it takes less space. For this, however, you have to worry about the placement of the elements in the `content-container` if the `vertical-nav` is expanded. -- The `global-alert` and `global-progress` can be activated with their responsible services which you can inject in your components. -- For more doku about the `ukis-header` [see the header README](src/lib/header/README.md) - - -**Always check that yout layout structure is like following (with direct childs)**: -``` -main-container - content-container - content-area -``` - -and keep in mind that the router is placing the routes outside of the router-outlet (so they are not children) -``` -main-container - router-outlet - route-component - ... -``` - -due to this you must add the class `content-container` as HostBinding to each 'route-component'. - - -### Layout of a route or view component -The basic layout of a route or view component (see below) is the same so you can easily change it if you decide later to switch between routing or not. - -``` -
-

This is the content-area

-
- - - - - - - -``` - -- The route or view component uses the `content-container` class like described before, so you should normally be able to put everything in there which is shown in the documentation of [Clarity Application Layout](https://clarity.design/documentation/app-layout). - -- The `content-area` is the place where we put the map normally. If you like to do this ad the class `map-view` (`content-area map-view`) to remove the padding from the `content-area`. - -- As Aside we mostly use the `vertical-nav`. The default placement is on the left side like in the Clarity Layout, but with the class `right` the navigation will stick to the right side. -There are also some styles for the `layer-control` inside a `vertical-nav`, so this is the place where we put the `layer-control`. - -- A section with the class `footer` will get you a footer element independent for each route. If it should be the same for all routes, you can add it in the `main-container`. For an example with the footer see the `demo-maps` route 'route-example-layout'. - -- Use the `sidenav` if you don't want the navigation collapsible, but we have no style for a `layer-control` inside it. - -- All our styles (ukis-theme) are in the styles folder and get imported in the main styles.scss. -For app over all styles you can use the styles.scss, otherwise use the style files of your components to write custom styles. diff --git a/projects/core-ui/karma.conf.js b/projects/core-ui/karma.conf.js deleted file mode 100644 index ef23b1102..000000000 --- a/projects/core-ui/karma.conf.js +++ /dev/null @@ -1,44 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client: { - jasmine: { - // you can add configuration options for Jasmine here - // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html - // for example, you can disable the random execution with `random: false` - // or set a specific seed with `seed: 4321` - }, - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - jasmineHtmlReporter: { - suppressAll: true // removes the duplicated traces - }, - coverageReporter: { - dir: require('path').join(__dirname, '../../coverage/core-ui'), - subdir: '.', - reporters: [ - { type: 'html' }, - { type: 'text-summary' } - ] - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false, - restartOnFileChange: true - }); -}; diff --git a/projects/core-ui/ng-package.json b/projects/core-ui/ng-package.json deleted file mode 100644 index c320c41ee..000000000 --- a/projects/core-ui/ng-package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", - "dest": "../../dist/core-ui", - "lib": { - "entryFile": "src/public-api.ts" - }, - "allowedNonPeerDependencies": [ - "tslib", - "@angular-devkit/core", - "@angular-devkit/schematics", - "@schematics/angular", - "parse5-html-rewriting-stream" - ], - "assets": [ - { "input": "schematics", "glob": "**/*.json", "output": "schematics/" }, - { "input": "schematics/ng-add/files", "glob": "**/*.*", "output": "schematics/ng-add/files/" }, - { "input": "schematics/add-routing/files", "glob": "**/*.*", "output": "schematics/add-routing/files/" }, - { "input": "src/lib/global-alert", "glob": "**.*", "output": "schematics/ng-add/files/src/app/components/global-alert/" }, - { "input": "src/lib/global-progress", "glob": "**.*", "output": "schematics/ng-add/files/src/app/components/global-progress/" }, - { "input": "src/lib/header", "glob": "**.*", "output": "schematics/ng-add/files/src/app/components/header/" }, - { "input": "src/lib/icons", "glob": "**.*", "output": "schematics/ng-add/files/src/app/components/icons/" } - ] -} diff --git a/projects/core-ui/package.json b/projects/core-ui/package.json deleted file mode 100644 index 2d93032d7..000000000 --- a/projects/core-ui/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "@dlr-eoc/core-ui", - "version": "16.0.0-next.0", - "main": "src/public-api", - "license": "Apache-2.0", - "author": "Team UKIS", - "description": "This project includes schematics to add the base UKIS-Layout to an angular application. The Layout is based on Clarity so [add this first](https://clarity.design/get-started/developing/angular)!", - "keywords": [ - "schematics", - "@dlr-eoc", - "core-ui" - ], - "schematics": "./schematics/collection.json", - "scripts": { - "build": "ng build core-ui --configuration=production --watch=false", - "schematics:build": "tsc -p tsconfig.schematics.json", - "postbuild": "npm run schematics:build", - "preschematics:test": "npm run build", - "schematics:test": "npx jasmine ../../dist/core-ui/schematics/**/*_spec.js" - }, - "ng-add": { - "save": "dependencies" - }, - "ng-update": { - "migrations": "./schematics/migrations/migration.json" - }, - "dependencies": { - "@angular-devkit/core": "^19.2.13", - "@angular-devkit/schematics": "^19.2.13", - "@schematics/angular": "^19.2.13", - "parse5-html-rewriting-stream": "^7.1.0", - "tslib": "^2.6.3" - }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "@angular/router": "^19.2.12", - "@clr/angular": "^17.10.0", - "@cds/core": "^6.15.1", - "rxjs": "~7.8.2", - "jsonc-parser": "^3.3.1" - }, - "devDependencies": { - "typescript": "^5.8.3", - "jasmine": "^5.7.1", - "zone.js": "~0.15.0", - "@angular/platform-browser-dynamic": "^19.2.12", - "@angular-devkit/architect": "^0.1902.13" - } -} diff --git a/projects/core-ui/schematics/add-routing/files/src/app/app-routing.module.ts b/projects/core-ui/schematics/add-routing/files/src/app/app-routing.module.ts deleted file mode 100644 index a09a19648..000000000 --- a/projects/core-ui/schematics/add-routing/files/src/app/app-routing.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { routes } from './app.routes'; - -@NgModule({ - imports: [RouterModule.forRoot(routes, {})], - exports: [RouterModule] -}) -export class AppRoutingModule { } diff --git a/projects/core-ui/schematics/add-routing/files/src/app/app.component.html b/projects/core-ui/schematics/add-routing/files/src/app/app.component.html deleted file mode 100644 index ac0aed86f..000000000 --- a/projects/core-ui/schematics/add-routing/files/src/app/app.component.html +++ /dev/null @@ -1,12 +0,0 @@ - - @if(ui.alert){ - - } - @if(ui.progress){ - - } - - example route - - - diff --git a/projects/core-ui/schematics/add-routing/files/src/app/app.component.ts.template b/projects/core-ui/schematics/add-routing/files/src/app/app.component.ts.template deleted file mode 100644 index 79cd2e2a6..000000000 --- a/projects/core-ui/schematics/add-routing/files/src/app/app.component.ts.template +++ /dev/null @@ -1,86 +0,0 @@ -import { Component } from '@angular/core'; - -import { HeaderComponent } from './components/header/header.component'; - -import { GlobalAlertComponent } from './components/global-alert/global-alert.component'; -import { AlertService, IAlert } from './components/global-alert/alert.service'; - -import { GlobalProgressComponent } from './components/global-progress/global-progress.component'; -import { ProgressService, IProgress } from './components/global-progress/progress.service'; - -import { Router, RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router'; -import { Subscription } from 'rxjs'; -import { ClrMainContainerModule, ClrNavigationModule } from '@clr/angular'; - -interface IUi { - alert: null | IAlert; - progress: null | IProgress; - subs: Subscription[]; -} - -@Component({ - selector: '<%= appPrefix %>-root', - imports: [ClrMainContainerModule, ClrNavigationModule, GlobalAlertComponent, GlobalProgressComponent, HeaderComponent, RouterLink, RouterLinkActive, RouterOutlet], - templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'] -}) -export class AppComponent { - title = ''; - shortTitle = ''; - - ui: IUi = { - alert: null, - progress: null, - subs: [] - }; - - constructor( - private alertService: AlertService, - private progressService: ProgressService, - public router: Router - ) { - const meta = this.getHtmlMeta(['title', 'version', 'description', 'short-title']); - if (meta['title']) { - this.title = meta['title']; - } - if (meta['short-title']) { - this.shortTitle = meta['short-title']; - } - this.ui.subs = this.sub2AlertAndProgress(); - } - - /** - * returns an object with the keys from the input array - */ - getHtmlMeta(names: string[]) { - const ref = document.getElementsByTagName('meta'); - const obj: { [name: string]: string } = {}; - for (let i = 0, len = ref.length; i < len; i++) { - const meta = ref[i]; - const name = meta.getAttribute('name'); - if (name && names.includes(name)) { - const cv = meta.getAttribute('content') || meta.getAttribute('value'); - if (cv) { - obj[name] = cv; - } - } - } - return obj; - } - - sub2AlertAndProgress() { - const subs: Subscription[] = [ - this.alertService.alert$.subscribe((alert) => { - this.ui.alert = alert; - }), - this.progressService.progress$.subscribe((progress) => { - this.ui.progress = progress; - }) - ]; - return subs; - } - - ngOnDestroy() { - this.ui.subs.map(s => s.unsubscribe()); - } -} diff --git a/projects/core-ui/schematics/add-routing/files/src/app/app.config.ts b/projects/core-ui/schematics/add-routing/files/src/app/app.config.ts deleted file mode 100644 index a4bfa27b5..000000000 --- a/projects/core-ui/schematics/add-routing/files/src/app/app.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ApplicationConfig, importProvidersFrom, provideZoneChangeDetection } from '@angular/core'; -import { provideRouter } from '@angular/router'; - -import { routes } from './app.routes'; -import { BrowserModule } from '@angular/platform-browser'; -import { ClarityModule } from '@clr/angular'; -import { provideAnimations } from '@angular/platform-browser/animations'; - -export const appConfig: ApplicationConfig = { - providers: [ - provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes), - importProvidersFrom(BrowserModule, ClarityModule), - provideAnimations(), - ] -}; \ No newline at end of file diff --git a/projects/core-ui/schematics/add-routing/files/src/app/app.routes.ts b/projects/core-ui/schematics/add-routing/files/src/app/app.routes.ts deleted file mode 100644 index e2dfe4b78..000000000 --- a/projects/core-ui/schematics/add-routing/files/src/app/app.routes.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Routes } from '@angular/router'; -import { ExampleRouteComponent } from './route-components/example-route/example-route.component'; - -export const routes: Routes = [ - { path: '', redirectTo: 'example', pathMatch: 'full', }, - { - path: 'example', component: ExampleRouteComponent, - data: { - title: 'example' - } - }, -]; \ No newline at end of file diff --git a/projects/core-ui/schematics/add-routing/files/src/app/route-components/README.md b/projects/core-ui/schematics/add-routing/files/src/app/route-components/README.md deleted file mode 100644 index 133ae7743..000000000 --- a/projects/core-ui/schematics/add-routing/files/src/app/route-components/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# In this folder there are the components for each angular application route - -- the route component.ts must have a ```@HostBinding('class') class = 'content-container';``` to work with the clarity layout! - -- if the routes don't should share the same services e.g you want a new map instance on a other route use e.g. -```providers: [MapOlService, MapStateService, LayersService]``` - -- the route template should have a clarity content-area and e.g. a clr-vertical-nav -``` -
- -``` - -for more information see: -- [clarity application layout](https://clarity.design/documentation/app-layout) and -- [clarity navigation](https://clarity.design/documentation/navigation) and -- [clarity vertical nav](https://clarity.design/documentation/vertical-nav/) diff --git a/projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.html b/projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.html deleted file mode 100644 index bd70f7ac3..000000000 --- a/projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.html +++ /dev/null @@ -1,13 +0,0 @@ -
-

content-area

-
- - - - - diff --git a/projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.scss b/projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.scss deleted file mode 100644 index 82bd2d04a..000000000 --- a/projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.scss +++ /dev/null @@ -1,12 +0,0 @@ -/** workaround for footer inside a route */ -:host-context(.content-container) { - &>* { - // width: 100vw; - height: 90%; - } - - .ukis-footer { - height: 10%; - padding: 0rem 1rem; - } -} diff --git a/projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.ts.template b/projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.ts.template deleted file mode 100644 index 63af76e0d..000000000 --- a/projects/core-ui/schematics/add-routing/files/src/app/route-components/example-route/example-route.component.ts.template +++ /dev/null @@ -1,17 +0,0 @@ -import { Component, OnInit, HostBinding } from '@angular/core'; -import { ClrNavigationModule, ClrVerticalNavModule, } from '@clr/angular'; - -@Component({ - selector: '<%= appPrefix %>-example-route', - imports: [ClrNavigationModule, ClrVerticalNavModule], - templateUrl: './example-route.component.html', - styleUrls: ['./example-route.component.scss'] -}) -export class ExampleRouteComponent implements OnInit { - @HostBinding('class') class = 'content-container'; - constructor() { } - - ngOnInit() { - } - -} diff --git a/projects/core-ui/schematics/add-routing/index.ts b/projects/core-ui/schematics/add-routing/index.ts deleted file mode 100644 index 1f67e8ca9..000000000 --- a/projects/core-ui/schematics/add-routing/index.ts +++ /dev/null @@ -1,159 +0,0 @@ -import { - Rule, Tree, chain, apply, url, mergeWith, move, - filter, noop, applyTemplates, SchematicContext -} from '@angular-devkit/schematics'; -import { normalize, join, getSystemPath, Path } from '@angular-devkit/core'; -import { getWorkspace } from '@schematics/angular/utility/workspace'; -import { UkisNgAddRoutingSchema } from './schema'; -import { getProjectName, checkProjectSourceRoot } from '../workspace-utils'; -import { addServiceComponentModule, getMainPath, ImoduleImport } from '../ast-utils'; -import { isStandaloneApp } from '@schematics/angular/utility/ng-ast-utils'; - - - -// https://angular.io/guide/schematics-for-libraries -// https://dev.to/thisdotmedia/schematics-pt-3-add-tailwind-css-to-your-angular-project-40pp -export function addRouting(options: UkisNgAddRoutingSchema): Rule { - const rules: Rule[] = [ - (options.addFiles === false) ? noop() : chain([ruleAddFiles(options), ruleRemoveFiles(options.project)]), - (options.updateFiles === false) ? noop() : ruleAddImportsInAppModule(options.project), - // (_options.skip === true) ? noop() : ruleAddImportsInAppComponent(_options) - ]; - - return chain(rules); -} - -/** - * add files from template folder - * - app - * - app/route-components - * - * TODO: update app.component.ts not override - */ -function ruleAddFiles(options: UkisNgAddRoutingSchema): Rule { - return async (tree: Tree, context: SchematicContext) => { - const workspace = await getWorkspace(tree); - const projectName = getProjectName(workspace, options.project); - if (projectName) { - const project = workspace.projects.get(projectName); - - if (project && checkProjectSourceRoot(project, context)) { - const sourcePath = join(normalize(project.root), project.sourceRoot); // project.sourceRoot - const appPath = join(sourcePath, 'app'); - const templateVariabels = Object.assign(options, { - appPrefix: project.prefix - }); - - const appTemplateSource = apply(url('./files/src/app'), [ - applyTemplates({ ...templateVariabels }), - filter((path: Path) => { - const removeFiles = ['app.component.html', 'app.component.ts', 'app-routing.module.ts', 'app.config.ts', 'app.routes.ts']; - /** - * check for existing files and remove them so the are allowed to overwrite! - */ - const destPath = join(appPath, path); - if (tree.exists(destPath)) { - for (const f of removeFiles) { - if (destPath.includes(f)) { - tree.delete(destPath); - } - } - } - return true; - }), - move(getSystemPath(appPath)), - ]); - - return chain([ - mergeWith(appTemplateSource) - ]); - - } - } - }; -} - - -/** - * remove files if isStandaloneApp - * - routing.module - */ -function ruleRemoveFiles(optionsProject: UkisNgAddRoutingSchema['project']): Rule { - return async (tree: Tree, context: SchematicContext) => { - // check if /views/example-view is existing from ng-add - - const workspace = await getWorkspace(tree); - const projectName = getProjectName(workspace, optionsProject); - if (projectName) { - const project = workspace.projects.get(projectName); - - if (project && checkProjectSourceRoot(project, context)) { - let mainPath = getMainPath(project); - const sourcePath = join(tree.root.path, normalize(project.root), project.sourceRoot); // project.sourceRoot - - const isStandalone = isStandaloneApp(tree, mainPath); - const appPath = join(sourcePath, 'app'); - const standaloneRemove = ['app-routing.module.ts'].map(f => join(appPath, f)); - const moduleRemove = ['app.config.ts'].map(f => join(appPath, f)); - const removeFiles = (isStandalone) ? standaloneRemove : moduleRemove; - - /** - * loop over the tree and then use tree.delete - * check that the path is correct src/.. or /src/... - */ - tree.visit(file => { - for (const f of removeFiles) { - if (file.startsWith(f)) { - tree.delete(file); - } - } - }); - } - } - }; -} - - -/** - * app.module.ts add imports - * - core-ui components - * - AppRoutingModule - * - HttpClientModule? - */ -function ruleAddImportsInAppModule(optionsProject: UkisNgAddRoutingSchema['project']): Rule { - const rules: Rule[] = []; - const imports: ImoduleImport[] = [ - { classifiedName: 'AppRoutingModule', path: './app-routing.module', module: true }, - { classifiedName: 'ExampleRouteComponent', path: './route-components/example-route/example-route.component', declare: true } - ]; - - /** - * create a rule for each insertImport/addProviderToModule because addProviderToModule is not working multiple times in one Rule??? - */ - imports.map(item => { - rules.push(addServiceComponentModule(optionsProject, item)); - }); - - // then chain the rules to one - return chain(rules); -} - -/** - * https://www.softwarearchitekt.at/aktuelles/generating-custom-angular-code-with-the-cli-and-schematics-part-iii/ - * TODO - */ -/* function ruleAddImportsInAppComponent(_options: UkisNgAddRoutingSchema): Rule { - const appCompPath = '/src/app/app.component.ts'; - const rules: Rule[] = []; - const imports: ImoduleImport[] = [ - { classifiedName: 'Router', path: '@angular/router' } - ]; - // create a rule for each insertImport/addProviderToModule because addProviderToModule is not working multiple times in one Rule??? - imports.map(item => { - rules.push(addServiceComponentModule(_options, item, appCompPath)); - }); - - // then chain the rules to one - return chain(rules); -} */ - diff --git a/projects/core-ui/schematics/add-routing/index_spec.ts b/projects/core-ui/schematics/add-routing/index_spec.ts deleted file mode 100644 index 3038f3a0b..000000000 --- a/projects/core-ui/schematics/add-routing/index_spec.ts +++ /dev/null @@ -1,245 +0,0 @@ -import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; -import { Schema as WorkspaceOptions } from '@schematics/angular/workspace/schema'; -import { Schema as ApplicationOptions, Style } from '@schematics/angular/application/schema'; -import { UkisNgAddRoutingSchema } from './schema'; -import * as path from 'path'; - - -const collectionPath = require.resolve(path.join(__dirname, '../collection.json')); - -describe('add-routing Module or standalone', () => { - const schematicRunner = new SchematicTestRunner('@dlr-eoc/schematics', collectionPath); - - let appTree: UnitTestTree; - - const ngAddOptions: UkisNgAddRoutingSchema = { - project: 'ukisapp', - addFiles: true, - updateFiles: true - }; - - const workspaceOptions: WorkspaceOptions = { - name: 'workspace', - newProjectRoot: 'projects', - version: '9.0.0', - }; - - const appOptions: ApplicationOptions = { - name: 'ukisapp', - projectRoot: '', - standalone: false, // no standalone API. - inlineStyle: false, - inlineTemplate: false, - routing: true, - style: Style.Css, - skipTests: false - }; - - beforeEach(async () => { - appTree = await schematicRunner.runExternalSchematic('@schematics/angular', 'workspace', workspaceOptions); - appTree = await schematicRunner.runExternalSchematic( - '@schematics/angular', - 'application', - appOptions, - appTree, - ); - }); - - it('should add/update app files', async () => { - const testFiles = [ - '/src/app/app.component.html', - '/src/app/app.component.ts', - '/src/app/app.routes.ts', - '/src/app/route-components/README.md', - '/src/app/route-components/example-route/example-route.component.html', - '/src/app/route-components/example-route/example-route.component.ts', - '/src/app/route-components/example-route/example-route.component.scss' - ]; - const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); - testFiles.every(f => { - expect(tree.files).toContain(f); - }); - }); -}); - - -describe('add-routing Module App', () => { - const schematicRunner = new SchematicTestRunner('@dlr-eoc/schematics', collectionPath); - - let appTree: UnitTestTree; - - const ngAddOptions: UkisNgAddRoutingSchema = { - project: 'ukisapp', - addFiles: true, - updateFiles: true - }; - - const workspaceOptions: WorkspaceOptions = { - name: 'workspace', - newProjectRoot: 'projects', - version: '9.0.0', - }; - - const appOptions: ApplicationOptions = { - name: 'ukisapp', - projectRoot: '', - standalone: false, // no standalone API. - inlineStyle: false, - inlineTemplate: false, - routing: true, - style: Style.Css, - skipTests: false - }; - - beforeEach(async () => { - appTree = await schematicRunner.runExternalSchematic('@schematics/angular', 'workspace', workspaceOptions); - appTree = await schematicRunner.runExternalSchematic( - '@schematics/angular', - 'application', - appOptions, - appTree, - ); - }); - - it('should add app files', async () => { - const testFiles = [ - '/src/app/app.routes.ts', - '/src/app/app-routing.module.ts', - ]; - const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); - testFiles.every(f => { - expect(tree.files).toContain(f); - }); - }); - - it('should not have app.config.ts', async () => { - const testFiles = [ - '/src/app/app.config.ts' - ]; - const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); - testFiles.every(f => { - expect(tree.files).not.toContain(f); - }); - }); - - it('should add Imports', async () => { - const testImports = [ - 'AppRoutingModule', - 'ExampleRouteComponent' - ]; - const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); - const appModule = tree.readContent('/src/app/app.module.ts'); - testImports.every(i => { - expect(appModule).toContain(i); - }); - }); - - it('should remove imports from views if routing is true', async () => { - const testImports = [ - 'ExampleViewComponent' - ]; - const routingOptions = Object.assign({}, ngAddOptions, { routing: true }); - const tree = await schematicRunner.runSchematic('ng-add', routingOptions, appTree); - const appModuleSource = tree.readContent('/src/app/app.module.ts').split('@NgModule'); - const appModule = appModuleSource[0]; - - testImports.map(i => { - expect(appModule).not.toContain(i); - }); - }); - - it('should remove Declarations from views if routing is true', async () => { - const testDeclarations = [ - 'ExampleViewComponent' - ]; - const routingOptions = Object.assign({}, ngAddOptions, { routing: true }); - const tree = await schematicRunner.runSchematic('ng-add', routingOptions, appTree); - const appModuleSource = tree.readContent('/src/app/app.module.ts').split('@NgModule'); - const appNgModule = `@NgModule${appModuleSource[1]}`; - - testDeclarations.map(i => { - expect(appNgModule).not.toContain(i); - }); - }); -}); - -describe('add-routing standalone App', () => { - const schematicRunner = new SchematicTestRunner('@dlr-eoc/schematics', collectionPath); - - let appTree: UnitTestTree; - - const ngAddOptions: UkisNgAddRoutingSchema = { - project: 'ukisapp', - addFiles: true, - updateFiles: true - }; - - const workspaceOptions: WorkspaceOptions = { - name: 'workspace', - newProjectRoot: 'projects', - version: '9.0.0', - }; - - const appOptions: ApplicationOptions = { - name: 'ukisapp', - projectRoot: '', - standalone: true, // standalone API. - inlineStyle: false, - inlineTemplate: false, - routing: true, - style: Style.Css, - skipTests: false - }; - - beforeEach(async () => { - appTree = await schematicRunner.runExternalSchematic('@schematics/angular', 'workspace', workspaceOptions); - appTree = await schematicRunner.runExternalSchematic( - '@schematics/angular', - 'application', - appOptions, - appTree, - ); - }); - - - it('should add app files', async () => { - const testFiles = [ - '/src/app/app.config.ts', - ]; - const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); - testFiles.every(f => { - expect(tree.files).toContain(f); - }); - }); - - it('should not have app-routing.module.ts', async () => { - const testFiles = [ - '/src/app/app-routing.module.ts' - ]; - const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); - testFiles.every(f => { - expect(tree.files).not.toContain(f); - }); - }); - - it('should remove import view from app if routing is true', async () => { - const testImports = [ - 'ExampleViewComponent' - ]; - const routingOptions = Object.assign({}, ngAddOptions, { routing: true }); - const tree = await schematicRunner.runSchematic('ng-add', routingOptions, appTree); - const appComponentSource = tree.readContent('/src/app/app.component.ts').split('@Component'); - const appComponent = appComponentSource[0]; - - testImports.map(i => { - expect(appComponent).not.toContain(i); - }); - }); - - it('should have Routes in app.config.ts', async () => { - const tree = await schematicRunner.runSchematic('add-routing', ngAddOptions, appTree); - const appConfig = tree.readContent('/src/app/app.config.ts'); - expect(appConfig).toContain(`import { routes } from './app.routes'`); - expect(appConfig).toContain(`provideRouter(routes)`); - }); -}); diff --git a/projects/core-ui/schematics/add-routing/schema.json b/projects/core-ui/schematics/add-routing/schema.json deleted file mode 100644 index c3d0799aa..000000000 --- a/projects/core-ui/schematics/add-routing/schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "$schema": "http://json-schema.org/schema", - "$id": "SchematicsNgAdd", - "title": "Ng Add Schema", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the angular project you want to add @dlr-eoc/core-ui.", - "$default": { - "$source": "defaultProject" - } - }, - "addFiles": { - "description": "Add files for routing to your application.", - "type": "boolean", - "default": true - }, - "updateFiles": { - "description": "Update files in your application.", - "type": "boolean", - "default": true - } - } -} diff --git a/projects/core-ui/schematics/add-routing/schema.ts b/projects/core-ui/schematics/add-routing/schema.ts deleted file mode 100644 index be83727c7..000000000 --- a/projects/core-ui/schematics/add-routing/schema.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface UkisNgAddRoutingSchema { - // The name of the angular project you want to add @dlr-eoc/core-ui. - project?: string; - addFiles?: boolean; - updateFiles?: boolean; -} diff --git a/projects/core-ui/schematics/ast-utils.ts b/projects/core-ui/schematics/ast-utils.ts deleted file mode 100644 index f494c4af3..000000000 --- a/projects/core-ui/schematics/ast-utils.ts +++ /dev/null @@ -1,360 +0,0 @@ -import { Tree, SchematicsException, SchematicContext, Rule, UpdateRecorder, noop } from '@angular-devkit/schematics'; -import { UkisNgAddSchema } from './ng-add/schema'; -import { getWorkspace } from '@schematics/angular/utility/workspace'; -import { addProviderToModule, insertImport, addImportToModule, addDeclarationToModule, findNodes, getDecoratorMetadata, getMetadataField } from '@schematics/angular/utility/ast-utils'; - -import { Change, RemoveChange, NoopChange, InsertChange, ReplaceChange } from '@schematics/angular/utility/change'; -import { normalize, join } from '@angular-devkit/core'; -import { getAppModulePath, isStandaloneApp } from '@schematics/angular/utility/ng-ast-utils'; -import { addRootProvider } from '@schematics/angular/utility'; - - -/** - * https://github.com/angular/angular-cli/blob/fb14945c02a3f150d6965e77324416b1ec7cc575/packages/schematics/angular/utility/ast-utils.ts#L9 - * angular schematics is using it's own typescript so we have to import the same and not -> import * as ts from 'typescript'; - */ -import * as ts from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript'; -import { tags } from '@angular-devkit/core'; -import { checkProjectSourceRoot, getProjectName, hasArchitectBuildOptionsMain } from './workspace-utils'; -import { ProjectDefinition } from '@angular-devkit/core/src/workspace'; - -export interface ImoduleImport { - classifiedName: string; - path: string; - module?: boolean; - provide?: boolean; - declare?: boolean; - standalone?: boolean; -} - -type TmetadataFields = 'providers' | 'imports' | 'declarations' | 'exports' | 'bootstrap' | 'entryComponents'; - -function applyToUpdateRecorder(recorder: UpdateRecorder, changes: Change[]): void { - for (const change of changes) { - if (change instanceof InsertChange) { - recorder.insertLeft(change.pos, change.toAdd); - } else if (change instanceof RemoveChange) { - recorder.remove(change.order, change.toRemove.length); - } else if (change instanceof ReplaceChange) { - recorder.remove(change.order, change.oldText.length); - recorder.insertLeft(change.order, change.newText); - } else if (!(change instanceof NoopChange)) { - throw new Error('Unknown Change type encountered when updating a recorder.'); - } - } -} - - -function applyChanges(changes: Change[], tree: Tree, modulePath: string) { - const recorder = tree.beginUpdate(modulePath); - applyToUpdateRecorder(recorder, changes); - tree.commitUpdate(recorder); -} - - - -export interface AddInjectionContext { - componentPath: string; - // e. g. /src/app/app.component.ts - servicePath: string; - // e. g. ./core/side-menu/side-menu.service - serviceClassName: string; - // e. g. SideMenuService -} - -export function getMainPath(project: ProjectDefinition) { - let mainPath: string = join(normalize(project.root), project.sourceRoot || join(normalize(project.root), 'src'), 'main.ts'); - - // https://github.com/angular/angular-cli/blob/HEAD/packages/angular/pwa/pwa/index.ts#L100 - if (hasArchitectBuildOptionsMain(project.extensions)) { - mainPath = join(normalize(project.root), project.extensions.architect.build.options.main); - } - - return mainPath; -} - - -export function addServiceComponentModule(optionsProject: UkisNgAddSchema['project'], item: ImoduleImport, modulePathStr?: string): Rule { - return async (tree: Tree, context: SchematicContext) => { - const workspace = await getWorkspace(tree); - const projectName = getProjectName(workspace, optionsProject); - if (projectName) { - const project = workspace.projects.get(projectName); - if (project && checkProjectSourceRoot(project, context)) { - let mainPath = getMainPath(project); - - const isStandalone = isStandaloneApp(tree, mainPath); - if (isStandalone) { - - if (item.provide) { - return addRootProvider(projectName, ({ code, external }) => - code`${external(item.classifiedName, item.path)}`, - ); - } else { - return noop(); - } - } else { - let modulePath = getAppModulePath(tree, mainPath); - - if (modulePathStr && tree.exists(modulePathStr)) { - modulePath = modulePathStr; - } - - context.logger.debug(`module path: ${modulePath}`); - - const moduleSource = getTsSourceFile(tree, modulePath); - - if (!item.standalone) { - if (item.provide) { - const changes = addProviderToModule(moduleSource, modulePath, item.classifiedName, item.path); - applyChanges(changes, tree, modulePath); - } else if (item.module) { - const change = addImportToModule(moduleSource, modulePath, item.classifiedName, item.path); - applyChanges(change, tree, modulePath); - } else if (item.declare) { - const changes = addDeclarationToModule(moduleSource, modulePath, item.classifiedName, item.path); - applyChanges(changes, tree, modulePath); - } else { - const change = [insertImport(moduleSource, modulePath, item.classifiedName, item.path)]; - applyChanges(change, tree, modulePath); - } - } - } - } - } - }; -} - - -export function removeServiceComponentModule(optionsProject: UkisNgAddSchema['project'], item: ImoduleImport, modulePathStr?: string): Rule { - return async (tree: Tree, context: SchematicContext) => { - const workspace = await getWorkspace(tree); - const projectName = getProjectName(workspace, optionsProject); - if (projectName) { - const project = workspace.projects.get(projectName); - if (project && checkProjectSourceRoot(project, context)) { - let mainPath = getMainPath(project); - - const isStandalone = isStandaloneApp(tree, mainPath); - if (isStandalone) { - // TODO remove things - return noop(); - } else { - let modulePath = getAppModulePath(tree, mainPath); - if (modulePathStr && tree.exists(modulePathStr)) { - modulePath = modulePathStr; - } - context.logger.debug(`module path: ${modulePath}`); - - const moduleSource = getTsSourceFile(tree, modulePath); - - if (!item.standalone) { - if (item.provide) { - const changes = removeProviderFromModule(moduleSource, modulePath, item.classifiedName, item.path); - applyChanges(changes, tree, modulePath); - } else if (item.module) { - const change = removeImportFromModule(moduleSource, modulePath, item.classifiedName, item.path); - applyChanges(change, tree, modulePath); - } else if (item.declare) { - const changes = removeDeclarationFromModule(moduleSource, modulePath, item.classifiedName, item.path); - applyChanges(changes, tree, modulePath); - } else { - const symbolName = item.classifiedName.replace(/\..*$/, ''); - const change = [...removeImport(moduleSource, modulePath, symbolName, item.path)]; - applyChanges(change, tree, modulePath); - } - } - } - } - } - }; -} - - - -function removeProviderFromModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { - return removeSymbolFromNgModuleMetadata(source, modulePath, 'providers', classifiedName, importPath); -} - -function removeImportFromModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { - return removeSymbolFromNgModuleMetadata(source, modulePath, 'imports', classifiedName, importPath); -} - -function removeDeclarationFromModule(source: ts.SourceFile, modulePath: string, classifiedName: string, importPath: string): Change[] { - return removeSymbolFromNgModuleMetadata(source, modulePath, 'declarations', classifiedName, importPath); -} - -/** - * https://github.com/angular/angular-cli/blob/fb14945c02a3f150d6965e77324416b1ec7cc575/packages/schematics/angular/utility/ast-utils.ts#L22 - * RemoveChange: host.read => content.substring // from pos to remove length - * - * If there are multiple same imports all get removed - */ -function removeImport(source: ts.SourceFile, fileToEdit: string, symbolName: string, fileName: string, isDefault = false): Change[] { - const rootNode = source; - // SyntaxKind: https://github.com/microsoft/TypeScript/blob/v4.2.3/src/compiler/types.ts#L21 - const allImports = findNodes(rootNode, ts.SyntaxKind.ImportDeclaration); - - // get nodes that map to import statements from the file fileName - const relevantImports = allImports.filter(node => { - // StringLiteral of the ImportDeclaration is the import file (fileName in this case). - const importFiles = node.getChildren() - .filter(ts.isStringLiteral) - .map(n => n.text); - - return importFiles.filter(file => file === fileName).length === 1; - }); - - if (relevantImports.length > 0) { - let importsAsterisk = false; - // imports from import file - // Node: https://github.com/microsoft/TypeScript/blob/v4.2.3/src/compiler/types.ts#L837 - const imports: ts.Node[] = []; - relevantImports.forEach(node => { - Array.prototype.push.apply(imports, findNodes(node, ts.SyntaxKind.Identifier)); - if (findNodes(node, ts.SyntaxKind.AsteriskToken).length > 0) { - importsAsterisk = true; - } - }); - - // if imports * from fileName, don't add symbolName - if (importsAsterisk) { - return [new NoopChange()]; - } - - const importTextNodes = imports.filter(n => (n as ts.Identifier).text === symbolName); - // console.log(importTextNodes); - - // remove import if it's there - if (importTextNodes.length) { - const open = isDefault ? '' : '{ '; - const close = isDefault ? '' : ' }'; - - const changes = importTextNodes.map(node => { - const position = node.getStart(); - const toRemove = `import ${open}${symbolName}${close}` + - ` from '${fileName}'}`; - return new RemoveChange(fileToEdit, position, toRemove); - }); - - return changes; - } else { - return [new NoopChange()]; - } - } else { - return [new NoopChange()]; - } -} - -/** - * https://github.com/angular/angular-cli/blob/fb14945c02a3f150d6965e77324416b1ec7cc575/packages/schematics/angular/utility/ast-utils.ts#L341 - */ -function removeSymbolFromNgModuleMetadata( - source: ts.SourceFile, - ngModulePath: string, - metadataField: TmetadataFields, - symbolName: string, - importPath: string | null = null, -): Change[] { - const nodes = getDecoratorMetadata(source, 'NgModule', '@angular/core'); - let nodeArray = null as any as ts.NodeArray; - let node: ts.Node = nodes[0]; // tslint:disable-line:no-any - - /* const printNodes = nodes.map(n => { - const tempnode: any = n; - tempnode.kindText = Object.keys(ts.SyntaxKind).map(k => { - const value = (ts.SyntaxKind as any)[k]; - if (value === n.kind) { - return k; - } - }).find(i => i !== undefined); - return tempnode; - }); - console.log(printNodes); */ - - // Find the decorator declaration. - if (!node) { - return []; - } - - // Get all the children property assignment of object literals. - const matchingProperties = getMetadataField( - node as ts.ObjectLiteralExpression, - metadataField, - ); - - // We have found the field in the metadata declaration. So we try to remove it. - if (matchingProperties.length) { - const assignment = matchingProperties[0] as ts.PropertyAssignment; - - // If it's not an array, nothing we can do really. - if (assignment.initializer.kind !== ts.SyntaxKind.ArrayLiteralExpression) { - return []; - } - - const arrLiteral = assignment.initializer as ts.ArrayLiteralExpression; - if (arrLiteral.elements.length === 0) { - // Forward the property. - node = arrLiteral; - } else { - nodeArray = arrLiteral.elements; - } - - if (Array.isArray(nodeArray) && nodeArray.length) { - // const nodeArray = node; - const symbolsArray = nodeArray.map(n => tags.oneLine`${n.getText()}`); - const hasIndex = symbolsArray.indexOf(tags.oneLine`${symbolName}`); - // found symbol in nodes array - if (hasIndex !== -1) { - node = nodeArray[hasIndex]; - } else { - // not found so return; - return []; - } - } - - let toRemove: string; - let position = node.getStart(); - if (node.kind === ts.SyntaxKind.ArrayLiteralExpression) { - // We found the field but it's empty. Insert it just before the `]`. - position--; - toRemove = `\n${tags.indentBy(4)`${symbolName}`}\n `; - console.log('We found the field but its empty', position, toRemove); - return []; - } else { - // Get the indentation of the last element, if any. - const text = node.getFullText(source); - const matches = text.match(/^(\r?\n)(\s*)/); - if (matches) { - toRemove = `,${matches[1]}${tags.indentBy(matches[2].length)`${symbolName}`}`; - } else { - toRemove = `, ${symbolName}`; - } - } - - if (importPath !== null) { - return [ - new RemoveChange(ngModulePath, position, toRemove), - ...removeImport(source, ngModulePath, symbolName.replace(/\..*$/, ''), importPath), - ]; - } - - return [new RemoveChange(ngModulePath, position, toRemove)]; - } else { - return [new NoopChange()]; - } -} - - - - -function getTsSourceFile(host: Tree, path: string): ts.SourceFile { - const buffer = host.read(path); - if (!buffer) { - throw new SchematicsException(`Could not read file (${path}).`); - } - const content = buffer.toString(); - const source = ts.createSourceFile(path, content, ts.ScriptTarget.Latest, true); - - return source; -} diff --git a/projects/core-ui/schematics/collection.json b/projects/core-ui/schematics/collection.json deleted file mode 100644 index 2616118f5..000000000 --- a/projects/core-ui/schematics/collection.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", - "schematics": { - "ng-add": { - "description": "Add UKIS specific files to your project.", - "factory": "./ng-add/index#ngAdd", - "schema": "./ng-add/schema.json" - }, - "add-routing": { - "description": "Add routing to your UKIS project.", - "factory": "./add-routing/index#addRouting", - "schema": "./add-routing/schema.json" - } - } -} diff --git a/projects/core-ui/schematics/html-utils.ts b/projects/core-ui/schematics/html-utils.ts deleted file mode 100644 index 832034d8d..000000000 --- a/projects/core-ui/schematics/html-utils.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Rule, SchematicContext, SchematicsException, } from '@angular-devkit/schematics'; -import { Tree } from '@angular-devkit/schematics/src/tree/interface'; -import { Readable, Writable } from 'stream'; - -export function loadEsmModule(modulePath: string | URL): Promise { - return new Function('modulePath', `return import(modulePath);`)(modulePath) as Promise; -} - -interface Iparse5Tag { - tagName: string; - attrs: []; - selfClosing: boolean; - sourceCodeLocation: { - startLine: number; - startCol: number; - startOffset: number; - endLine: number; - endCol: number; - endOffset: number; - }; -} - -/** - * Update a HTML File with 'parse5-html-rewriting-stream' - * https://github.com/angular/angular-cli/blob/aedfcc1862afc599ea18c578248d0aa373a947bb/packages/angular_devkit/build_angular/src/utils/index-file/html-rewriting-stream.ts#L11 - */ -export function updateHtmlFile(path: string, startTagStr: string, endTagStr: string, items: string | string[]): Rule { - return async (tree: Tree, context: SchematicContext) => { - - const buffer = tree.read(path); - if (buffer === null) { - throw new SchematicsException(`Could not read index file: ${path}`); - } - - const { RewritingStream } = await loadEsmModule( - 'parse5-html-rewriting-stream', - ); - - const rewriter = new RewritingStream(); - const startTags: Iparse5Tag[] = []; - rewriter.on('startTag', (startTag: Iparse5Tag) => { - startTags.push(startTag); - rewriter.emitStartTag(startTag); - }); - - const endTags: Iparse5Tag[] = []; - rewriter.on('endTag', (endTag: Iparse5Tag) => { - endTags.push(endTag); - if (endTag.tagName === endTagStr) { - if (Array.isArray(items)) { - for (const item of items) { - rewriter.emitRaw(item); - } - } else { - rewriter.emitRaw(items); - } - } - rewriter.emitEndTag(endTag); - }); - // context.logger.info(`INFO: update of some Tags in ${path}`); - - - return new Promise(resolve => { - const input = new Readable({ - encoding: 'utf8', - read(): void { - this.push(buffer); - this.push(null); - }, - }); - - const chunks: Array = []; - const output = new Writable({ - write(chunk: string | Buffer, encoding: string, callback: () => void): void { - // https://github.com/microsoft/TypeScript/issues/23155 - if (typeof chunk === 'string') { - chunks.push(Buffer.from(chunk as any, encoding as any)); - } else { - chunks.push(chunk); - } - callback(); - }, - final(callback: (error?: Error) => void): void { - const full = Buffer.concat(chunks); - - const hasStartTag = startTags.find(i => i.tagName === startTagStr); - if (!hasStartTag) { - context.logger.warn(`startTag: ${startTagStr} is not in the file ${path}`); - } - const hasEndTag = endTags.find(i => i.tagName === endTagStr); - if (!hasEndTag) { - context.logger.warn(`endTag: ${endTagStr} is not in the file ${path}`); - } - tree.overwrite(path, full.toString()); - callback(); - resolve(); - }, - }); - - input.pipe(rewriter).pipe(output); - }); - }; -} diff --git a/projects/core-ui/schematics/json-utils.ts b/projects/core-ui/schematics/json-utils.ts deleted file mode 100644 index 56af03d36..000000000 --- a/projects/core-ui/schematics/json-utils.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Rule, SchematicsException, Tree } from '@angular-devkit/schematics'; -import { parse } from 'jsonc-parser'; - -/** - * Update a JSON File - * - * The callback function gets the actual file - */ -export function updateJsonFile(path: string, cb: (jsonData: T) => T): Rule { - return (tree: Tree) => { - if (!tree.exists(path)) { - throw new SchematicsException(`${path} is not in the workspace!`); - } - const source = tree.read(path); - if (source) { - const sourceText = source.toString('utf-8'); - let json = parse(sourceText) as any as T; - json = cb(json); - tree.overwrite(path, JSON.stringify(json, null, 2)); - } - return tree; - }; -} diff --git a/projects/core-ui/schematics/migrations/migration.json b/projects/core-ui/schematics/migrations/migration.json deleted file mode 100644 index 68146ca0c..000000000 --- a/projects/core-ui/schematics/migrations/migration.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "../../../../node_modules/@angular-devkit/schematics/collection-schema.json", - "schematics": {} -} diff --git a/projects/core-ui/schematics/ng-add/files/src/app/app.component.html b/projects/core-ui/schematics/ng-add/files/src/app/app.component.html deleted file mode 100644 index 5935f8361..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/app/app.component.html +++ /dev/null @@ -1,18 +0,0 @@ - - @if(ui.alert){ - - } - @if(ui.progress){ - - } - - - - - - diff --git a/projects/core-ui/schematics/ng-add/files/src/app/app.component.scss b/projects/core-ui/schematics/ng-add/files/src/app/app.component.scss deleted file mode 100644 index 8b1378917..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/app/app.component.scss +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/core-ui/schematics/ng-add/files/src/app/app.component.ts.template b/projects/core-ui/schematics/ng-add/files/src/app/app.component.ts.template deleted file mode 100644 index a8e9727d1..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/app/app.component.ts.template +++ /dev/null @@ -1,88 +0,0 @@ -import { Component, OnDestroy } from '@angular/core'; - -import { ClrMainContainerModule, ClrNavigationModule } from '@clr/angular'; - -import '@cds/core/icon/register.js'; - -import { HeaderComponent } from './components/header/header.component'; - -import { GlobalAlertComponent } from './components/global-alert/global-alert.component'; -import { AlertService, IAlert } from './components/global-alert/alert.service'; - -import { GlobalProgressComponent } from './components/global-progress/global-progress.component'; -import { ProgressService, IProgress } from './components/global-progress/progress.service'; - -import { Subscription } from 'rxjs'; -import { ExampleViewComponent } from './views/example-view/example-view.component'; - -interface IUi { - alert: null | IAlert; - progress: null | IProgress; - subs: Subscription[]; -} - -@Component({ - selector: '<%= appPrefix %>-root', - imports: [ClrMainContainerModule, ClrNavigationModule, GlobalAlertComponent, GlobalProgressComponent, HeaderComponent, ExampleViewComponent], - templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'] -}) -export class AppComponent implements OnDestroy { - title = ''; - shortTitle = ''; - - ui: IUi = { - alert: null, - progress: null, - subs: [] - }; - - constructor( - private alertService: AlertService, - private progressService: ProgressService - ) { - const meta = this.getHtmlMeta(['title', 'version', 'description', 'short-title']); - if (meta['title']) { - this.title = meta['title']; - } - if (meta['short-title']) { - this.shortTitle = meta['short-title']; - } - this.ui.subs = this.sub2AlertAndProgress(); - } - - /** - * returns an object with the keys from the input array - */ - getHtmlMeta(names: string[]) { - const ref = document.getElementsByTagName('meta'); - const obj: { [name: string]: string } = {}; - for (let i = 0, len = ref.length; i < len; i++) { - const meta = ref[i]; - const name = meta.getAttribute('name'); - if (name && names.includes(name)) { - const cv = meta.getAttribute('content') || meta.getAttribute('value'); - if (cv) { - obj[name] = cv; - } - } - } - return obj; - } - - sub2AlertAndProgress() { - const subs: Subscription[] = [ - this.alertService.alert$.subscribe((alert) => { - this.ui.alert = alert; - }), - this.progressService.progress$.subscribe((progress) => { - this.ui.progress = progress; - }) - ]; - return subs; - } - - ngOnDestroy() { - this.ui.subs.map(s => s.unsubscribe()); - } -} diff --git a/projects/core-ui/schematics/ng-add/files/src/app/components/README.md b/projects/core-ui/schematics/ng-add/files/src/app/components/README.md deleted file mode 100644 index fb18cd5bc..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/app/components/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# In this folder there are the components with are reused in routes - -## There are some default components which you can adjust for your needs -- ukis-global-alert -- ukis-global-progress -- ukis-header -- icons - -to generate new components use `ng generate components/ [options]` - -for more information see: -- [ng generate](https://angular.io/cli/generate) diff --git a/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.html b/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.html deleted file mode 100644 index a6f6a6fc1..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.html +++ /dev/null @@ -1,14 +0,0 @@ -
-

This is the content-area

-
- - - - - - - diff --git a/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.scss b/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.scss deleted file mode 100644 index 9f0d6f21a..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.scss +++ /dev/null @@ -1,10 +0,0 @@ -.content-area { - height: 90%; -} - - -.ukis-footer { - min-height: 10%; - height: auto; - padding: 0rem 1rem; -} diff --git a/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.spec.ts b/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.spec.ts deleted file mode 100644 index f2d485d4b..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.spec.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { ExampleViewComponent } from './example-view.component'; -import { ClrNavigationModule, ClrVerticalNavModule } from '@clr/angular'; - -describe('ExampleViewComponent', () => { - let component: ExampleViewComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [ClrNavigationModule, ClrVerticalNavModule], - declarations: [ ExampleViewComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ExampleViewComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.ts b/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.ts deleted file mode 100644 index b33226d67..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/app/views/example-view/example-view.component.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Component, OnInit, HostBinding, OnDestroy } from '@angular/core'; -import { ClrNavigationModule, ClrVerticalNavModule, } from '@clr/angular'; - - - -@Component({ - selector: 'app-example-view', - templateUrl: './example-view.component.html', - imports: [ClrNavigationModule, ClrVerticalNavModule], - styleUrls: ['./example-view.component.scss'] -}) -export class ExampleViewComponent implements OnInit, OnDestroy { - @HostBinding('class') class = 'content-container'; - constructor() { } - ngOnInit(): void { - - } - - ngOnDestroy(): void { - - } -} diff --git a/projects/core-ui/schematics/ng-add/files/src/assets/.gitkeep b/projects/core-ui/schematics/ng-add/files/src/assets/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-128x128.png b/projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-128x128.png deleted file mode 100644 index 5570d1d98394d7a023a1833eaf699fe105e150b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10112 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 Yi<*IMu0sLwXB|LJN=dRp!YKHE0ECXNHUIzs diff --git a/projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-144x144.png b/projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-144x144.png deleted file mode 100644 index 30bff726d3f22470ab1301bfbd61de199f7682a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10691 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 diff --git a/projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-152x152.png b/projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-152x152.png deleted file mode 100644 index 330715e604f2b6f2baf2c4ba5c63083a0758ccc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9586 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 diff --git a/projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-192x192.png b/projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-192x192.png deleted file mode 100644 index 3a60314926d3f4d216173726ae092c2102b9a412..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10055 zcma)C^;cBi*S-TogER~v-6h5kODx1aiM)J=`NUM^H>wQ1FFH3TK(n@U$w2QR(>X`UT)u+bnjs%nOF zXcpzYGpMyyNoussKwN@KvrH3qS7Kx~U5B?mU1QhAT)fJeg4<$U)F2^_Mxij(7#?Pz z)Q*O!f)6(k3e=do2;A2b0iJ-;je7{tPNrT%*i8ex3UrDrVDF>7@}$(Hf_9 z*^LPlwOE&qox8MWYKvSVN4p%i%#8P_HOU5>uH>0pl3`;2Te=|zWFhEM01ZGREQ%cn zl0wc?frp|?cSR;rWkO-VT=PUP#)N6?3qsqxz%K-$dPRniWu9N( zK2Bqi(EIUeY}K=Jc`-l~0MSQ-(BDG0h*`h6jnpd_u%uJHqMXK=;T2HF47`Ve*Pb=z z%N1j2YlJGM4l(z}J`**rR6_`Xet-rdic~8FGv?(Sb&2v7)B6=zQkMc|$6;K7x;%%` zj8Y!zqN7_n4-Zpm#q6w0KVnHIb4KiqBTEh5F~vSx=M94^O+hgQ%~>mg}(*B+qqM=1w%;=y@uaBe^EQ7FQ~exU>4v> z6WN~ILeZkj4;S@v$!7$wKF4|hMiEZ<4a@>=lI>`9h>2JK}aTI*#PEm9$C;|L6 z1AJDI*W&6vu6n`y&gz7eaJgRYIJ_A84%!JV$-K(SBh3K*BFGphts4hTmPGLq{&v4c zglcw-EBz`GZYo9tK||0gLZw87-3M-RM`S?^V65GCt0H~NA!mPFVNKE}VMr&A`2e<9 zt4r=omrh=0pc*sr+ zp+`*rVBxY44N}8rmj)!^JmID>7%Zski&QOTjV6y)P#bL!o(sKlQPC{ttb&-{U0XEM z+YpE>`e4LHy!vb8mHrv^os*~UXI21R^K@vsoGZ%+)59EeBuB-q0(B4w=E?i0$hU~| z)kJime4~V%0}B8Nv1tZB2}l1enuSs~i!H8v(Tp>Ni>^?Pd_B-U-N)RcKwuGz60Tct zpH$IXnfmALiwL-BJsspfR>&L&UKNv9`{WkXDQynEROXKVgV*FR%rE%|9!4Wi8?5ZOrkbhqi|0s6a1RxiwEjO0LT<1 zv@o4FXkCAMnH(B#f$R9BJJxZ%7B(Gh3jcbnZyPZDwy}%vUyRfDk;M890{`sOI8?=5m+~GxeH<8jt2QfpEe>)b> zlef+T_O zNHht5QH=p5$iFA0EkO6;=Ftn+G&BN2+wf>7W2Ula*40~uBGn^@6+&>spqv4gDQh>Q zN0p+NkBGo`u~YPDUxnPcX;_hhXf_8$b!qw!6Zfg2BPeZOe0bIfoj1;M#4roRH!@WV zv0G`2&EJ(JH^gyj=S7z`iBTOxW?OAwkmEwPJ=&|)af1|M_n^!j%+72$p+5=a)$VK# zQshc$G85FQ*syS86k*3)`gz4^_pvZ-A=y%CQ93W6<>J~ph%}!Cg7#c8ZKbOW*~VQX z@BQ!#oqXDr`XDkcpgEuU(BPCGxgl(AkhQl1fP1qQEd2y;<4rxr>27nsT>^nF32PsO zaZ5}TfeNOf3@)0kCw_BHCilgORkR|1Ih1S=guko#AJ(37 zCui(OFaW&veh6J7^MpucjdwlWvJh>(_Qz3*ZNF0i_I7;4c~PfH@@OmF^9ujhb@aes zidcT-A0##;FNO@>Cm5E9))|?LgMvpq6KF9bgmLZeiDC1lpDI6S+=~F1PW3;)%6C>E z=EMpa%~n~CBDfCo+xNJjdY#Y1cvjFXw2k=fg~U75vgYuP@=u|E8aF; zb^1hbHhzeW7b=3^S5Z&TYi6SGn`~VQvpFFz0$$&0rIq49>cwmjwvHsHU1t2Z%@VZs z%wP_gzhFH{j2lL7?O_UO)6fa(wI{SKHY~X}=d2%QnjY0@`$6rTA7xOqDUlvw=4z)w z{KAt}@^5(TSWmVys9Z7Qh^bX{QpU?r4rWcPv>I$Ff_>tK&!cLGR{yHuuHFz7u^Ddo zgCo(iToHF5V}FvUO@mHLOK8XNxpl;0@Au{o4@$|LA{gnr`1Y`klmo=>k_nCH|V8`CHM z^h`8#?c6fbZhcH;yTTvtMzi%Yn|x-x&9K*t^>rrr#OP*%&Q`S+10`zm>i0)gD`}kL zk5oxfEQK${&CL@OW%e5MN$*d(oU=C;oBH?mM^HDr(H_1?Ugf1F`H}^`$U+Ww`#~`? z(%CrNbbva?45W2uv!c>)XwH}?4}%C9!>kkFz}F6++6gJ5>DQuW7Z-}-LPUfj-Y#*q z&Ob4WxAyD`tDOY_3JJ0#(pR6>9&ZRGQ+RoavKaAqH!ZtfpUuU4QUHX_Z~D-Kb|qj*N1ywr+` za!6gO;h%S)iF$8r99X5IY-`)@)9&MFIdw7*v)HC9Y!V_3jB%5ySctkIeX4~`PF-(t z;AIszQ3UJHd(U?v;q^S4fHg2^J@g`94!dKDqR|ajwS%=+i{28-!g>5;bwqSh^5z#O zFuJZ!T3s}!*&u@s06}=VZBOq+mC3`_i;v5$l(|U}b$^=(gF;KBkM#j4REScldKQXn z)6##8jBnxf*`(Se(c#~OYCKtiqW6^3Ow(Dp`ZfI*tIt3EZ5$V)9&qGsb~#FH&j4_i zg5B+}XG*`v%O(K6=|(4v)%A+HmA#^F6~Kd1>*oF5gElpbPqQ6G)&2PA{&|U6qZcpC zr|M3b2@6&Kz|qk@HtvcMI}I3w8kx#y%^0S?&i za$ps4Ey!Hk2=`O+Shv~)s~put=qSL+ZkD@dhx2EM-rpGs@;Ady58hF-uJGZ6(<0G8 zqk%}6&{9R(=g0c35w5+KY??1uW1ZjQ$n+_a zppQ)x8l5xN#lUUs#Z&FYX8AE}W4<9A2S?2&DiL953@^V#=cvy>GW(k0$?*^w!I_9< zTmQg)NWv?NhqEyx);C@eZOqO6>+0z*YoaW>xilx}G@*n)sdI^CsylhpFL60$4h{q% zpPv0lFpGnD_~bynbFr9A1e+CIch*<|t-3sSV7Jt3fMSrUfJ*XHbUgfl zEs!J&6wHUGg`;!9mP*nj_YQ@|>T3$tGl7Y8i)+k1mRemewgUki?{OUy+rFxSjBr{2LI>mTXP_#TOy`pKfCJoudZD zb9-L&r`Z;(l!Phi)hw|lSqMgYGdDBfXbxWQ(OdWJW)>a2G9dAJyiE3abM4o6s0K3a zxsjb;Svgd#vzA25!_SrOClmgqyNJs==o<45TdHdo`sTG&>rbYH-bkmjc#il<)zl*T zQS7HXDl9D2*^8#)CAVoL7x~gWT|TH65Sf>)(NwM zdxA`9rVTSH zIf#^X8&B`5letbEfhpC649KtwqQ5==&9yq;`ga*8(2liSMF;b;@?RyfFIEJw2x>gW;3d=t@vWfTkL!nkju zb1U`B%Ts|g0FnDi2D`gw@+Z1-aPnSK%l0$xz1U}`e?2zPVg{#?!mv$1(W1jUf`e;w zkti3{Yd+)2T}-N*gOLhco5u^A>c`0*mb)tF$thCz*VmIk!U*NuH^u$ZNB>#?7(L@b zml*seolH_6`n*6bST(q7qY*4!t{Ck;h)KX9lVJWmqgt&24bSQ#=u>RTzXUueV^{F%3~fTg8CKB4zQ)AVIMSC+#4 zNQ2*>YmMw7n&GzO2>UcE%d&`kc8?i5QcW7)RaU(N(U7eT^Tg%JqX6k4D4ULLQv7abixS{f<$z@f3 z2}mo5HuD75%nb)2kAd2waPiOZYplyAFVi{+ZSr?`tn{MSZV+Eo+8T}xq&|^{fA`HUbM5Zf<-&l=S>`_nEG7wP`(P`Cj zK7C94DPV|z1ic@G*AuIP*oOkI+x~!-B60Dcpy#?N0ul_v20~^nMWZ#D;%4vSg_YWf z%j-9$8P>=MrH?YknCkFh!((cycwF^?8Gl>n{i!$GgaJ<^97&d{z$9vMbTti z7&ZVh(!nGps&HS=R|0ghn9Q@#A9m!*ni>ZoLEX^GM$i4tSI#EY0)i94`OHXo-5*M8 zT!i0Lev1VCh@FMTXm*z76aeEs7P5^S(>y|d*WAh*!tYQx@P;ijtPxemhv)GEJv|Qa zUlMhCi0oYJ>oR!qM>=26U9ymn^7@q(E132+5jP1|VBq#-V7tRI$>JYhXFjz|>j=m| zubdp6&V1!dVQwYIuT$5bc317^Mn^>evCZZ>OKfb8(6T6i2)|IVs3;Vnl=Mp2(i3`n zQII8X&wLQMu9HVN4YM0Hjsg{?rd9Q{M>!{Gj(pf7#RzTefO-4qU6}+S(SsDSY8D zFUvrdLLI`%bpUvKSV|fi@H;v;sxB|BzAB9Bhc`JInq6FS38JDV0>cPkpbm{WX=qfV z2(;a+Q^}2u8;3VK>gX8nQ{=BwD+GOfNRT5yL;ez_*~;ix@(r%iHKBomsW zqk4xpIPCLD4YQ^YDggZQdW0V_%rDF|OT*p{9Sf|Q5Q3I?Su&VzcRVtG5V@^_Q|(3P zzK#sSYp+7p7`d!Kt6TmQ66xH5DJ#C>?Z^VKMbE3k6pyYF@{g2B0R=*FnoLah7d}7Jjc41O73)eZjd zU-8{HZT5?}E0Mt;8g!7lK#J?%4-bpOUC#=)zr8}v!xq-WC@!PmaZ`^Rd%gpY}tCXoC_L zEK?c3fA~NmON80^keJux#b6hUQ+L_9p=&3%V_w)~Lmmw^2hcYML;Ap(jZYZe9yiVz z0}R-&$F(LZF47)bBID?ym4ta&mzS*w-rs~Lw_s~B-CV8q@0~R6O_a`DY;3f^{QWyU z+kJSVp|$B{um78@fGt?f@F$83zC^k@dMgvd(wC{RsC7~Cd1G!q@siiC_(~*Kw}0S= z&6P0SQ2Y0@T3TBl#KuO``9|xJhlE7OK0WaR)-D!uggqsdVSwJRaUOt@Z)S}+DKSel zRb6#SQheTHjRPa3yp+*4LTe+_sh(Fiv#6<|Vs3RcwWg=%76CrE8_B8Oj&7;G0k4}a zt0Qlg&ZA%Sw`_SS)A8L_*4!f!V=PtaGPOP5eo~Tggy2S|GeLeCkDY9vJ6+^hOx1~B zN4XoS_B;_={KqOx|9wM)J$9}$8+IQmBH^-fB0$yy(jw0l@D$B*Eh2&ir{6ieOj$tTAj+E5nMVo?ZqtDMX9@T_ zCTTb==3M4)-o?qWs8td6^$r_(A5~rXtOgsq+A)_^RcuXpd*_hr@WaYK0``fI0X|&0 zC=cxUwkl~Q#eLiy0DALzair<&f(%g3%?k;ftnl_7IIxXuBiUsla!N}uN+GeBXGoxf zd2ppUGm?y1Ru+HcN!XbWUu+|f89?+`!nOa;JqWb`?ig_z%gM=C>}VzgMV>*Mt}zlZcm%vE_4BqVFW6dZ z=!dqKPO-i@3g8-1NfGfreA-(#E`S*jSI;l1X(GfFD;h4BkdJQ(pKdH7BKuR#|3_Q= z?k4U#vI40Prl5t_oLV&o1#RPrE_pX`(JNa=yafp-mjoqHXv4wV+6_OucYEtzdUBq} zFeDn>K=hM3c+xmcV_xZtn8k8uu78q3@ApB3jPfN< zmbDf;8(~9I!x+7suijy0W%NZ(&Pzbh-1joqm+W$%Qip0DoI$*evC>g+oap!a$T+ZR2}}1ihb4ADqxN+1j0R zhmk<3FkKOY$}*!e0sacD@-k~=MOmW6^YdK#!xR7K+UqYK50rs1XPifk8L!3E-IN-K zI@u?gsOv|~k!k;m`#+jP>5I#v>;wdOU~cF9JDWiQFxf|~%6u~>02cslXJzFEylT0< z4T;X-5H`r$4=0|MO#+kitMrb%{L^prky}G(v#vE6z`-R%1A1UZ1pcmuc zdVVD;n0T18vHP*5zGawNk2&Z*01}uJBfNT6Oh|}{`0A0wwHr2N#nZt71GWPA=?L@q zkIN%P&1v(FQs3g~X%Umt{Yk)dXo=8$mieX2vQI~$1^H~fH$YSvvw4>FU*^39mrk@jW}74nT&{yo z9Bi$Xgliat^4&Gn*W%z1`;YJBRijycY$irxU~7)v7gGDg#KnmqL;cYOPek-W=FF)s1D^M!;3Qjmtru5u|Hdth}Z;~Q&L;w4`q)_=Ps+I4Hy zvG%LF+6S@-UPKfQot||B6-PpOId#gv>`?SNJ0MmxFS_4&i(Y8UrEv>91ga@PVjo13wSaRIy zPc4ou{v^fE986~nc>m4T@AH@t{j4?PeP*IePVZFyZPqqHIpD6TPqehO<%&u8x3(MK z_JfiWmMq+5%{>V<4@pXHvp6*;3V!5fKR?7oSn3w0Wz?QxyMhe~M+*#eTa>M6)XQSp z;txu6i5q%1eSlMe;*~#wEY0Xf^VM?W`KqQI_zE1PATr%^R}L3fyY&aXUjubohWK(0 z`X-LRUnCZg#*Bpj!6Q0&OVw?6qPV8!_LtYjyD=RP2>`=JdVIu@fLZNe&=ySH{JSUk zRhL`+F|kV_CM`EuIgYW7qs`pG)$CsC`@@z2E2m*sn~?$>(djJH(`!xs*T>!~+E}fl zta5I^EsPO}Y}3u}dsSG4Ms=5vm0C*ZxB2Tj?#JRT*YEm4lMtKVXkgM#b{Z&TIghMELe#X6LWF zdE-}G{P@%nUTK-edi!&x8rd(Lbj$oQ!BlJbX5A&vuw^vI}EK#&V5KIpk1n$MbO z8yQTU=(W1~2A=!x6Y1L9;?cw(yWG+DTw^Ni8JT2;enrJyS0x@vXy?2Z__1`KakU}g z0`2~*mX+UZ8$4?T#ZTS@Jbg<`ChkF?`tQ|Lir;a%vBwlBzB|? zK|B^RS3|W+k;pjYSuGxzbzHL?h!$>5y1yPTJL-~8=H>5caP5LhcoDtextdBt}w~u3f z*J_Yz{A%gCe|6{Iw{KM>Z3dXeBCpoFA<}<&J~chw%uzdt>!5Zc#oarg0?zVTm4X9~ z>rIyC4^;xQiOLw89sIA<`dH-u@@xpN(S5pKemr%@4O=dcc0~i1eWoJfAFkA?8mi)uvOTy~p=4-K>sJA43 zIrQQGarsMtck^y;7ScWi9O8PEwDf!+&B@4a-uuGGC#18@5h;u|(V>9WhIUw76_g}| zoVVGG#nK~UX6QN&*ULf%?QSMZ9$T0^Pu|sj=dIV7mN7sK=x2bf{Mq%p&15eLC`Z{1 z+kPKfs-q(pkl^TDR#0kPDxPxxL+bmS8_j zB(=6NcG!H00YQE9;K`nI|7fUi_*%IZ3ICJ>Q5AVnr7_+o*r!N(um7IgL583b^)U?Q z5WobsO`Ph|EnWm|Pa+3JiL=}I?WRB%`(I!aMw#*V@KxVpxjA*9NJ$DidDnyyRzD3q zWU)t6E(nL4(V0Tl+is=T?hnycu}hkoe7`uGnlibpweZ!7xlwn#KlyU%WkBeGO%Lij z>g2@TZo(Dw?>%(pxxCFt1rRm)Znu@1pUv#(kW-{b5em;ZI13GT<38dk^Zt{`!XNPz zDs*2PgkKX4YExfj-c6`!&+2>q62o)Jc{u5@p_>x>H*=D*QTQ?FyATD!r~WUjlL~Fm z;P%xJ5y@-X}leuPa1Sns6g|pzV@Dltn^17Uv`0PTZnPnp~ z5>276+V+I18UF@R&jYmXrsktFnM~e)j(a~cZHl!8jP>2DhfG}zit=F{yuPXwN~1!H zy9bBe^jd^ztDHf-mKH?((KID4RzU0|JBIYH1hIJj?qR zl^m8Dn$UrUOk0VKL$f6FhiPgO^;REr3!n!wyP!{b{U?7y(*C%zeZ$lTyBS{r9b;%o z>*qV+v+}0paUOwl*D6a0J^EnYNe^nx?|!W4GDEC@Us#tFD5gk41n$uznmpnbeaK2D zO4YBj|6S4yLV|gYDrF5T{5w;s7rdx$B1;rXkZ3l!&}H5a_5Ut@qpoW31fTzXG&$B8 zV}?x!LEB(if4RD#@8Q2IbsSqpGKpx^W|P9BHW;ppNSRAH0vLF#wH_G zZ=FXpzKfPm{d_o{e9CZUfwABqT*1LYe3!JAw2_tk@vM+1uKr&-8HIZcGI(3nY-g6C z2-{lV`sJ;9X44%-YyN-cOk&cyvy6zJ#kL=feX>ci`10E-K&ekyhC7Z}Pa<1m_1#6R zr}O1yMwP0WDP1#P57f@?y4mgNHT!v@q^gREHpS_uV9UR7A&uEaX4LNRyDH?L znDVHpJl0D+kAz4C8frocazADi+?2hx#RGm3E2wNqyn;;vjX0(7HX?G z_GEloJwbR|i0EjN3O6XP7$y-1Sx_-Wu@vry&KDl$*G+A!D+ELZmA#5^B{}JGT zWV!=G%nV#hLIRHSao!4gO3FuYE`wV8T1#X!JQr$vmL(iHETzY%g_}PcQ6F)P(NaId z^TXCdE|3aVON1Ts#+>qPngW zB&frFWkhsMDHElwANw1jx&2FHG$y2Bz4|-_%@7j68laoRrIdo^X)V#UwF4Oh#w{LP z_A@mXH)K08H49*U&nAu)_*;cmr)1+z2}+RHf?xi-84(S3Q2b-Q#ID9yQDP}AdlM_= zw`awGB5FLICUVt6CmS#TyRrk_S0+9%h{2$Aki=~C$i>2CNvd4GTB za}NBovq#;1U)Q}*byWpiEGjGz2!#9Yt(+zZ1onUW$3zD{$?L0W1A)wB-pRevb_efu zV0bU+z281w5_>#tyZ!Vx#zKG5i_O6`7Ih&w&ynp zZfQgTa~=ZcO}}ex9m`zR2g8_}t?7kJnGuh7Ltg4{U$1iPWE|?j^?$Z^p;(9+k841| zgzadI{-`5@r?=4se`r>=ZSJvd>Z8RvAHRzu|Is>{Oc-#^GVNpZ_ zdXkyrKUB;G3MyphXif<^%3uCy4khe|5Vs5Rkvgq+=Tr;CpE~39qlhugrRZu=Z^A_9X-k^u2y?nYvlB2vBX*6tRfB-h*G$phlA*R-6t~jNd;G)zq%hmE78{?!SEXR%v ztmN<6-XX3v2&Lz%=G!=%?px=H*yrRWdS-uwkU^e7;pw(i6yV-}W{yRyjBX;mAG~Z7X$L$#i-Z|j zZE~vS)3nitJkcRTH_2a!>3X4AxP%JKiU@tcD3xv;J9^cfiVKHRG~xduv(ZC95SxNA z=wdu0z253q5=jmE*xQ8Z5+0VG=-wn6`WHbR&GoNs4BqRj5yNyU%;#g#&1Ap-iaUQ} znkv*X+0h$X)k*@xn}R@WYLET1LzrB7%N#BW8BgF!n)~On0x41bF)`X?`J}q%L@=Fq zHeK!<&V5Ratt3hEDAz|2^ZFvTEjwJHvUYFi`(ZTnew5dztEyJEat9URq3PihpLl~p zLzu8^g%r(oXc0O(cVm1>_-5^^Ym*%*8K3PvvKqvf6Kkx4xiLj=375H^C4 z<$7nrpr(}LU{6I}PGKFjq z>R~gZlyI!=lJG$V^8EB*vcl=bB%&@&bpxX{Dx{bKd{}HUek`4R=lZs{IbL6_tzX$VpAig*29 zf1KaO@y@acV#r^ddv_fTT0t`3>Z7q&_)PCWNuj&mUr|Ys5~;5OA2vW!Tl<(>MVc=C za>MRLaC0RuwUNfNVPS?yi*#vp(Z6x_basmUUa{qOI}=n^$ma)f#vBnb5St4^*iX%l zS;t1?E?$J!F2>0U;0!)5Dly+e0LK%Mg?GlU4%{T&)t#m?;n(F)h1L_bI-<_(F;-ee z=2Qe$s5s~3k-J(24DYWkruvhkxWHx_#`US=O&hbsPPTL6#ABlRBS@@g31I@6?J38K ztz>_*-h{2(F=;&rwftGmM_V$&sy5T#GC{MpQ!2epm=YB!D|eGvQzXlWHbu3kG@#Bz z=;BqUm2Wp1Gc8_pcwZGD3+qsD{l8cYb6eaO?r_Ku2E5s2X9KUv?L<4Kq zg3;A%+S@A zCB!)nAsXE43GQAkits{GKo~UQOa>UfnGD4t9yNq0Z>Ltv%4Fy$kx=+?X>=ADn`V z9^>C#Rq}-mwaZ1r!)B0l$vQ#;gYT;zZ>V{?6l529{CfDC*U&(=_f>!+d~wajiSj!H zH9;p`l4ILer8rfq{3<5KY`aHkO?pQEdF4o0#>XYVq;WCW?)5AE2dKV5uD8M!57U>&c22dJ7B6G0OboFqZj_Ux8mEHVUO8fF+!V zODfnimaj{N+oX+>drwm81th*ugQrvC%}|~`;QKPWFp`_pnrEFvN1I*!XA8sa1|cl; z+kWwnEr0wewwqjPq>#rHMd5ksC7pDAvE+xfdqxZ^TyW=zYf|7;Q4A4rQNFS}snN&p z{=vQ5fE5UDmgYPx{xCY6u zl;zW*kH;@$I`NaI{c#AKfriv#tyKN9@{Bk6{8w#x#A89U>=jiOoqZ+uu5*bT&5sI> z6>ov^?y~k}E;ru{Zx)4(8Xi_>9t>X1(q!N~i0Q4wtTEE zve{xwTg$xe?kkWv5B)}o+){>1S@jkA@axQ|tmPl+q{nv9U;jmd&0q;G}9UAa(S6yZ;_^>9iFODR(JjI=gromMVGAz?<+i87?_=VNIVgh;Kh}tmMKrO zb#vZEPPNlrF8#grwLs=weTSzmWLKYd=!)@h$N4!Q`62b`qSo0k>HkbeD3)Tm`$YUa z@ErG`tT;q6!&zRP+NClhxzkfue(9Ht=uX?`Dx_Z>P0|noGr?k54g#B(pl$X-7A5jj zxU@RHa&pEeFq2|JoJT}idFvbvS1AN@9u9ik7{H%1{NT0`E&??PkGjb;eKc7IGTX~@ z{yz9UIo?c#=*x{hpirps>GbQ<)_=qsLw(CVl=6aPOk78p3&&l91^w|P*H8ayuTVPb z+zD^S&%yhz+eM^jn}gt5o6XATYnuoJK8Qr`8t;s~4 z@!L+nkmnG@z3sb8yx0oBhm?W>E%cpUJum2<9kmPdc9Bo_8Y7IOUd5YMeSaV9Xl?Mf z?`{@%^GhAr=1F@_@>MiRyO)t3=j}2TYdO|<*9fqz9&S7A$NYuP%d3t4e z=uHZ#IZI0sE9W<#O=5cL$2~R~I`tk@9i$9-ktSSspQ`w794_t6^}W3cDaKpSU4EL% z=+}nSU7&R6{^0W~n~I}k3NHOUnDy=y2B=KI5jn~vpelQ}K6WcSM zPCtHBrZxcqt|+7z2wlch)C}>>DwJmZHZ8Z#^o+$-ge{%UHbM*6 zq%SWw2zUjH`+{3+fTKo1WxzEjKQdt8^u=!<*Zjei)TVc$OD^C3m_g)(YB!hGD=tOi z6nlDAdD&Uc@yG<_0z5~XiUOmNEPuLO{$nAnbwy-<6z(abK2kuDzfU<%b_=kmM&P?z z?TUcNKgz->ev@jgDr^bK|0QRgeygI5GxNp*%m=dyghx?uprWSy&d@j<1Qz^6uLV6t zr+k8b&H;NL?Tf}Jcfss#HD2o|nhbKc6DULA7=!>q!%;ax*E64e5#g!lVs-b8;x{HH z5H`rY;i$j$$m12rW{a41Lfp+P(!~?htJqNyOnl``xHDq;Nhs*2h0xNx*)AjM6gl8Sb;{V(G2-~GY+Bt&bd1pCJ=0vuse$OZ|tj|Nnib=hOIkz z8LmH*yp9svE@!KK(Hnnt97A<})%fPJ-rrkJGfI?^8x5TWO;Pq~@i#LvU@?hz%cnew z2Q^#w=l@%~jIscotuk=orX}=3_$Ymvg1-L6AxEnbD$eLkixBc+x8yfZs4j0Ov#@@#BTv>2y4-+?)5}`1baLmyZd$bwKL_OoupE@{9>!Yy?UBgngq24q%-q{N%B$39zPbC7Ip3$mcO(c z0IlGRz&MnyKcBIR_um+J&(!$vAcNj5h*&W~B4#JRE`$R?Qkgf?Q^FIbzv|wrmz!^Y z>dxU!U5WL-8bKD0MFC54Y>X|JM5Qq@DHJ#A5dB^eKH#k-`;mK>BTRo8)?2uoYGJI^ zVHk#Jpi&1icQpY8N>p$B@0O~O{U{EH5Bg>Q`aQ(4wKv&l>`dmzVKclMzwG;7wzA(? zKIFcRciWJ>pMy#PRgWw~1#@y9*KOc3{BOKkxt(*9tU0=Ql<0Vx^Wc5M7_)Iljx*|z zr*If0&*9El$Gb-hF*Q@{srUNREFf0IVoC@N^4ma^v)rE18lCeN($EAQ~rAPy{HLoH?CIht?PfSI1mA zj!P+G-oW}t%?O*>$x6z8nem@E-$6_McIuEnW`dBLw!a2TkM(Qi4Eucd37759VG>e` zFSix>eLDh*zFDNd52Gw{`>RHua%QS?He8A@;I_Fa1+{1>oYgR=F9K~|Z=7{Sco^}9 zf5dJ`4%hLhU6dJ6F_@w64Beonz_#KZQvqGjgRy~1y9Y#?h0N>krWsF;2w^JY*sA2G zdE0nmJweJuy(urty-TC@i@}^lWn>Zvh5;hCe~|$C@r~yDyLz*i8-rh<3R?3!aWUn8 zLuiUa!+r?iMiZ2l#2qwh1;xe+L1`Jx=PLf`+1k;>ite*Rt^$jP^mw&jKKZ)HvPKNvf z#V4^^t`IQeFFHB_*{}MR>Ub>%H&P~O>*^q>{GR;j zt1yEmSEHI*M;?xmA1kuZ5rHzMo}=LmVe+T;PDJoK1}kF}#ix*gmiE}WIWvh&ni6I3 zpN$$$KNGDf_^`(-Q~FnG_-a~1iA}y+D+XER-dpKISdS->W!64Fmi{yl7NLAXP_!*d z+HH-@CeAMU@zuEQr~7Zx5T%*R?7t{pk-aL+?Kx^`m*n2v!$d%_6w67>p{B~A7bzio zsIK5!lR8%YjuOt5-|U`_6XUU3gyzbfOLcW%X4MhzUXNkf?SdM#faZ@ts@8&1Mg9WDigT`N`0IMnsrC<lKM5lLPv_-){(vXz_5WcXoEr zv+(T2UdsvoC2TvW@grPly;u0LKPOe_KxdV@N^@NEj^p{F_R(-Dn0!dwCEH(JaS*~^ z!mO~Hds0*}+*-tRV5cbB!fQlR0oRF#+p8xz>JtSis;RQxF{PKie{4Tlt!r!G5q15{ zWsf!n5lxdX(A3{J{Bt^UCB(ar_T!rq)FFz7;m{m$+unTt@KtbTn~(V?)`UJ6DL7qSPB#vD_O?jOi4Hq^nWylq7X zZOr4?g8KP|w73NnF{!F5RTa}phJWTdf%e`s)x8u z`V$7k_#@)DFl=&iY=9=A8L7K(q??PbDyAXqWs zpAgUtrGflSoGp$b{sVvfhwftS(jw7V-#ZP{k>5I%luzNaSFD?l!NWl3L7j;^Xf`*u z-}`L|CsoJCw9L%z?@9E2d45s%sI-?qyKW&k_$Ny=+;`qkRW<(HM%K0#=xl z+SL#WJpYACw>tfnz>5GtxB}A##_S&@VY7=-1~rQRj8s+q&X_(vzTKLpaB{KV95{e%=jz~Rfpey)%>?zJ5PlIc@zj?7rJq~)m|d<6qxxB* zN&tYNlmI!UGficM!gZKXB2W~J6r9sUWU9!m69b~c4Ra{lLFlFbNbGLi#Lf@g>L9yH zOSg+u)vW|DiF39?eYB~gOjIYs=Bl-9^6A-tOqr!Fsz8;(jb8x5O&e!AuN=D2pw-C%Xt&P4O>?`*kq z0#8e~o!t@^H%NfKEY=@{IxR1OP43I(Iy@xJ${20#LjQ4c7K9r=){I}&kuoI9 zfE@w!_wJmGbQrG45~oX~o%5;Ya$g)yWy#2T(-LXfyr1cdF^Z@tWZxw(Di817BzY~x zX!!R1Ey*%`z~23e>aiUm63cki-Kv*zW%ezZ>lBpjgSLydnsA!}bJ3pq?32h%3V0<3im{7c9z+!Lj zxUoR|tUS-&j@NrA{%rkQ{}S--0``$g^`E`7o8l<%kPVC=PyZGN7P>`AnF)RRc%M_^ zkeqaW+MAknkef-rinbRMcH#V}PwT_{*0eWu958i_5w! z7ZQ6===o=DQOSCFHB}R~xTaWvxAy2hyKs}J_|6LIE;|$~8{rc~M2uOrFlQ9U^NhER zs~x8)jD4}?zr+G$wV%nXC?fyyyDrpp#wqb@an26*_L50SxAuPcnMgU>^pb|&juBH6 zO7tDZ))fNVvtDhSZGAm8yJUDd-X@p^4ijJ=dow?;|JxFW7lUNxvnG1bsv?cPW^Poy zCe7P=v&#}sA!{5D7IqdR%3kA-l_i7QL#AYGI0-4 zpl0cu?*}(}HZbVxSzV{GFTrbR-~fSkeB72l3@&!2JCEx=P5@A6+4#~P$2~`Ag9fI* z<;rF>KAqx-j@??!9-0}|&sV@aGf#GQuKBQn&vCyUEa<&YO=5R%QsumRDGW*6K0dDT zbarld)}>PbOTq6&GXhR^Wh9%UZ&?j%v!AuQ(%27{A#zON7y+r-Ts|R?&2}a@n8@S; zh%$>Yf4urC!_o4Df!k7v`1IjNf#k4$qe0SFK=U!(CE@*+r1fT6Zfs$J0tfHc?BwKb zZ-vivcxQC9i|1z~r8O!59Ex)(H#Gm1aa^yHmvn&N2xK0Vwyf}qrjuB;%e~{>OTk*i z6nsC7ip~yc(Hxsg&|Pp~xe#PYyFXoZr056wxMEgD6aXjvr{Qt(Ouu<>OLmjuwR^G-Z)t8hT+d{(}<+dO+Ntz(34!-z{TaI%Cy;IR5sp zYh~p${P8ATC_b3pq)b37wYe`7hCFRR@8rXi10h_>pRL_u-{0Sw7M8bMC_ob?-`Z2f zd%vj4D1W@j?z}{BRgRFMkoY5G%&J%!UHjtaYYJY~^u>v0=TT?{?EUY|_|6w167gP# zDqx}L(@{H~1&=KY@yt0YXV>zV`I^*Yn9N{=P^^j^Z`+;E_`aS`(`Jhwk$nogDwC~x z)0^h~c44G|3W^rgZz3KAn`q?KGE_y|S(q*T2}3GpZp(WL{Vb2eehw|^5~==Z4;c&L z_fb(V+Jgpjzag=1Z&UpZ81OKWe{y*C4*fiSPyR#^9sI~BsuI>p))iQ}vDkXDWF>WP zfE2Jm-To9YFv3z(LMy6GAK&*cXT*JEa^ou(=g_WEqz-9S<|B>g=ZHcvY;qoKPcOY7 zCMKIZsU{H=F6AHf+FOp1P@E_FN0;aaOl@y)pFY&caX@9qtz~XYP(6)xqh0Qs^7ZTo zsTSH@XH0*H`rC#a(|6-|)fKk(_}%fM;{>r^2o=^1G_gt>l^>_Am{>E_K*d0;$fu)U z!u-s!=s4t=o@{_Ah~j`0>xmnBvDn&D!H0N+9)v$mCHnSBi0On)erU`gKePOj2*QQ2 zaiRA5N29$fWLpivTOMmfulq@oqyevbvA>=gI|vjtJEPv5ZwN*(QtsI@V8!8qHSMfG z6pb%1`VW-~K`~=QHm;>bo--8)WHX;M^svdSWt;0GsD)OC2ss#U=9Cb`1YP>)S=Z$v zis}5>I>H%m^9zl-(RXLgNQXZ7@W=O-VfNM`C&q5a)mNpa`($>l4Y)8}z{FL)u28|X zL`ADfXju`c1RW)0o$iYezr)s9g>t`BT4 zGISmu?o(ZOyrMIbtRWLnBH%=;=R~1WBRTSi#U4u-bjr<}LTTJR9Q~dK09X^59Of%D zJpgL;H|r*xRGiqt93PMS9=xVV=YYD;&w|ct6B!88>6xq3Lzj{wOdnwWvY2sm)EyfC zfIy*sdg4n_U+)){bk?ZM0D|waNLAzfXQ-=nu?3nCnmeQ99`KRc^rwm_ah_M@fh^5T!lAv9{U)& zJIBYuS-3@LG~Bx+Nem&L-=t0$3BN69H=jmHg(kKI#Ab`WlQ(tp7KhCw;?|;YYzm{q z`9~Kq1yPxuBr)}Lebn2t3mNE0vn!x7d+F!vB-mYo6|X?gl9tx}@pGJ~<4X%kJH+Mh zTx=z``BsxH$HXKv2XoPv^Iz$wz(A_fFZ`B^-4p*xZ8ScxV!l2Yc-OmD;e%+7$3aEw zT5v!^7l=+>L-Rx2`de|v#*|f6Jr+SPs@0L~pd=c@C5myFPX65y-bbt+c7kUZ=qUk< z87}!>FcK3E9|pv=IBijMK`sExG*Zo{jJ~j7SA2cic755Px82$=%~aaH;>C=(Dg`KArJ@?e%q7^)Y{5V0@S$6rXXIlu zU~YG^aN;rB}~4fMW<1 zPKt=k@cEv7SgaJ*h!7>R`479Wu;X%ka0bmySCvI5&6~WNs!cq(Cd6e5C zgd&3pxc-^T-tyNrTv+d)T(Bwh-Mc8o=dRr48kabmU(DO(e6&?tKN@#-rJOov`}0#( zzrhTBh7!!@+=W0mKV-I6K3Opxjf87pMiLD37s|gUqW6}D_=>k&^5M5PF>0t*oMzmRm{7qn!$WXmFcXQ?dacJD21GLX#36VD-*xjD zKD}bHW3kvCJuK!nxNV8(;u2`8FpK)CN|O1{J9TEW&&k1EPFe0zy-L{3W+^se2Bhiw5w+^$zu#|AWRvJiC-Q=8uxW_K6;XAUIB}-_eD5`cTFg!==?t0tXB=uq2ja!EsJeaT*`^@83J&=>7eHgqpB()#k)qcdSOlpRByj`k$-DE zd_PF8h7gP?0(B;lcYY!5M_V@Tfz?bJ`5No^56(bcxctc~?1bzHhdjQglvw6`xv<`Lg%*&j z@Ui}wOZ7q^^FJ&+`qoc3K{9Q>?Cea-oEkR%jQW))^C`n4K+Fji=_!2kK{Mg}1(~L= zk7AUhFtLSB47t*j4)7s!oM&kKunNxJKNQJ1-U=?y3ESWfwj-D?;o6 z533rfHM_Z||DASoUq|b zd^}mXg^qge!^w5Hqv=(ryr=hP%J0A^L}wK;nL)#2`5}>I>BP$vBKbfK0mh}Y4t?+o zv=xKCpeU^epoMp}5*v1Aceu2pOY#5st*3WTr{jr}|%v=B>E9JzO zu76u*B!p|7f#@s|e@ZJ898Q_HMl?nIt!+@Nm%Gmb%HI1ulKQ&o5x@TpngRiqXqm}p zWX%~LK7PZO<$(?<{q%KhEyw#(?NcE2N9-HVL~^@Uj~A6QaY}QY2!v& zo#WHM0uL)@{(NR4Kr?&VsG+-9vf11iK&NCy(npSPNM_R1J?pcetDU`Ys{1U4O5q#YnKC_yFTJfz=aaWM z*Jk&l&1NvygWT5P&NzvE2VH3JkP ze-eC`Zi5m2rdgFE#dk7(lv>3MnjHCs1qmSAjm*0bfpvb5*X;%Z>G~x<|DZE~>w(t- zGb&DBn9{eB%^c_njTg!c+Yt z;likWQDvYQ=o7VEm34B|HH0|t_+h?viy>iv z5YD0m9_Pdx@;Fo4n&dm`C9_vuYnc{=o>5Sl5$|`!C!Q+5RaL~I^fe<*`QN~RM~|JK zjl;$Y?XLf6=Z_!Z=iPEl>L^oB6f-c_r9zKaw z=H5Q|gvrL5;Q39ms`c#4VFi%GYC(qn27rhx!RZ6l$$MwATAVJ&0$96`r+BWS1?nMz zxlBUww+A*8YiqmC(r!ShZa#FrzWx%<@-#bTq5o4!V62;0U0bXo_jQUQODNuMvjW{m zj>U^ZL*Q%Sovp3Y1)9kif*^i?=SdLq8pc<6W4Ov|$_*aYBGKuVaDEGSmird*rW5hN zT5S^j*yjh+Y`n)XjMy>;BTl#hT-x3IU9c*H4W|P6WThqt{*=VulF&8 zy_#HY<#ut~WdSe&c*ka~FazEP_pqF>xP$s!vy+Ce#o7s>Z$GqfBvOMh`2OF1h7jf} z%3#hDk(QPl6t09rwEuLJ5_~D2)5Yza@h2-sr7Gr!tR0b%n=>;!jbY8q^Yc2c$S+-A zCAJEl9k)H$Vq=P#%(>=RY6NKOb$hxsn>tX8>YB>YWEXC3{Fdi_l zGL(`&1Gxl~2A-P=E?$x1Q$T_WOwLR2XtshSSpcHT`q$$mxydTGfwKqDvUkKOh5NHI zpgl>zGI#@ulcWoKEW2sDmV8_amX-v2v)v+OTHbY=xmbF7YKgwA`r*7qy9+4D63)U$ z52VbYlm?*Y&d90ENKCnG)}vm^M5Q~!qj6_H{yWQ}(lAAYgIBvQ{dlbc^zh{1Ie#*s zHA@isDG26KBZL*ok%vpF)blhNC0OsLD6_`g@3t9`(a2m71stJ0M31nrX4;`sfykfC zTz)V&bhd2;pLn))^A*D7FXfT~IaUk|Y)Qb(z*cb+vKQk1!RAggXA`VGqapVE?r zr~rnEUd705p$!xHlXZJ{?UDZ#13xQ-836DM^&0nQ&aWPXR=T?j?BQ9-d};XqOFzg- zHu@)KDzpBev5g3}mF9O=#P@31Oj&aKpyZs+<3sXs^J&0ZpRoHknbvu2&QgSB`;)&< zT^;Y5c$u#@?mo!EhuMAI>iFWrzTm}kBxrVwA0%Wwb`P%BwbqE!Q2oU*Lghwhe2Ofn zHQv`MJC_dwk0daGgr$W@4l;sJ<^otmk|uw?Q^U=wTk9ks$lBqnhmDo?cE{LJ5fA`p z{lDN#KRa*V<%KqbT&0%?8nK8U*dUT^5CWQaYdp`W3c-yNVY}G_ot0%MbtO&_+LIvL z{&l2K|K|=2rq%>3nw(AL20nS-&UoWPDf;1KwSxfp>_jbH^7+z z4$8zvmSj1Jovr5;NgmgSnfS^J(ohs}JRXe%wub?zn>j#h%n$~Z`cFe~0B^4v2Od=a z3a&%D@3H-ZpA&z6)Q?Z}P4MZMCxVXJ5C|m~xCKUk%{b#(vG-I^RNuZ;7mkhWN~KU?k| z+;m>D;MzL;WTWi-8KyluDHW6YUwI^Hs*PE^o@wQ804!X+wCjo+`r5@*U#j;WD^PoE z@~3*25>mO3>P^H1h^(_cIPxv6J%%+Ss ztm)HZKqKsyg=>@cg~y7$@ynO`nIY?o_5+%cIyHlri{T@d<^b}2IyI4hdLQ*=s9CCM z7L?lgKy1_5(Se=?F6sbs&t_@BZre54GE=)_hCU_`jobE| z1yL-ypZF+sl6QGc%YT&UUPmj8X=#>baeCq(!U{s4E|jG zn}xnWhaTFj-{~a+|HNi~>*1#L-vT%6{EdPzEKGR~BOS>C zKhlL}R^kN;bsjNvGE`I=Qr-{#n*UjM$SUo`7kr!$v~?13TU>9c*t(t_w*8e2Axl}m z_mNf~Fth^2LYsyP=%wx6zf;KQYaJ>nr6p}Be;!^C=&Td!eNnB?A@?_Qe=(B(rSjfJ zqJ!_9rqJ1P+XhIdq)&_T;m_zM_@@e!jx7#8IRvjA&l>ajqS7}GXVCGF>oCW~LD`EV98hj#esb)oq7Q$n{Oi05IjcgV<~3J*^$$`zd7aC~ zZZnWmzF%UY2|hjkN2GYD~EH6Z>`9^yvP!)RI1OenR=2(CY*x7=Cd^>uO+H0^BTxMSdslV(mWgkag0@unZmq$e+8)9w8&YQz+xZuF7ZHw-T=YUG0KaKb z-L;P%9WSsMoVm_VzLoZMls66PdZ`(+gQLA+kw@@x__2j+dOiC!rN15*_pk87g(d=+ z84m7<()lGhSh^keNq1pSQbuC%pr0g(ceZzYuG>FXOEdb>_L4WZ%VJW3O3CNTyRHbB zpwNMnK}4f$Md(`z;@L8$RvYp*E17d`x3fUOIihIThFwhHr$k&VMS0Agq`a z7i}7w#B0_yUH7^1BL78QZCIV8qh~H%I9<8T$>_s!drR_2y7YrBCDlp5uU?wXzU%xv zw6=EIlDVogLhb}a4F?N;O%f9ZJi3yuo}!;girN2l`$fuKL}KgZO0Vm;u9wSIJNMTn zUP$gC3vt_&_tQdhH~fr*y^l-eA&2wN$Vz)6-dMfQ8v!MxAfS;SDOf1p;03+M(1yMW z+4=Z?COn}A*+vsTk-G39fAKkpW+Q^aU8KanDlwUxBs)=w|3}!&mw;D4(%O_a!VkFccrV2+}L!s zP{G7}FB*Z(y2#TiSnzADC_3QTE*+gQa=Q=mZx|}6CXE8#*Mrg23CuptPl~VaI9TB&VXJy1Q6O8k(Lvk4lTxmr-+spvCnK46 z`(ezCWyzta1@GAh%6WuZEy6`ysw@8Dpl&H-c$M=^FX-TNqn?1UWz*dMPuldTA-jF;=dy%&Bi#W z2s@nrK_N zHCV>1D!>QXs;2rf%-Pyt^~GX1>xdya2j9*`k~2&s z5{AOxFqTk0+l6u0{@zT)BJy&bO?~s}mG|w%jhvGct~$0m;p&1z8xRLGA+7k@&!a?$ z-*SAf(yxA&WvH{mJLD*Y(&TSj;r)28@N+?!IJ!0hhQmamJ`9CUS2>+^BZN&)j9`2%*(nM<0Op9Fn3^-po9gT)dO7=jm^LNKR z808+#9(RWHX=@c+XWirpR?jEGli$Lx?kOG|e#yy#x&663w$*j*?{CCoLRsF3Hox?^ zvKK4XX8rzb8}nHBBO02Fdbuys<6yLw?pojGv0Jh`lmNpFDmZE`lU1rXhe1YC7r#}X zB66^^dv`}E_TuC8^nY14?>%(&Jfdvew(RX^ z6%zHT6D`Hqcwt6iZ%vOkEqjz%g*4x#e;CZz7KK>{b&(c#bo@OU^_zj?;Pawxf?dB} z5liYB9ZPLYNYrTyUq&rW&#%c4S27e(p7`@4*gEl9Zx;K70-N5{ zdQjCu?Rw%!`RlwycP9Z$$tcS3Y|oYwN<6Ei6?@Aoav3g_y(Jk8*!O?ChGxpj>nL>X zxJ4n(BAX4XVSd^?Elx@vPKQ^tz-unSy4~8Ap!W>x4zOMzaFAu$x<+3vBLgB(2IBr0 zXRJ{@^futWlQRh4Uo4}{&Bbev|2=CI_q(kPy+}!LKN$$l^$>P6M=)-5R1okKhd{@j zbi=R|uf7VKgJVBbdxipR;t&*v(()ilJS7F72>($jxoiK@VsG$L+~B0;V)4+go-=+kwcFRd*WgPOCg|&!A-hH zE3k-JqY?xKuT=OqEalHu?XHBR>(CcUbz~^mV+s@=Zm{zfVPo4;-ZQ$YfB)XgYoL<^wo7G-4FGA;-KJD%d}@9A^?2C^HW(#Qd>Ix7n}h=mcDRC&7ikd@8LybyA+(G z4lczdRaWoib#F`lHkY?7tofWOdYd~b`TX$6PiAE-LpyApGiP1Zhgy2~MS1kDe~?nA zU#j`}7bnmW!QCE|6o%8668<>cU^y&88g+dpRgrOgw)ilI&dL~x31e(pGL6;eeUqU_F4a=^*oz45*T+0AWI&910NT?S70x}-uBg-Go)A`I^zp8`g(eEcZ#wcStUA27>;(~jVG6RMXNY@k-+P0 z&aT5z6dHeAb;83M2jE4sVzbEW=n+3Gh&kr*)(%wq`;q{e$@QsiIx$|U>skIxhe_s; z=h#~1-n+bri@A*dXzdNoqbELFEze)~01bt`=>_Ej1DZ3+!pf55gM<*T40XTG-bKvs z&EZIB3%|5Ux}sY)THK%v| zd*)hayyWno`Edu}Lf=$oqt-2d-;s0ks4z|#tpBm9{;kB@07}gN!7otduqK-|PC;87 zZntEDMgo?GzHT-Yrv>CU56JH)R^R-iWANHIt<>Yu+(OIaSAxFaXL1OhCiyuhKsVVz zW_H2yT9@%#jh_3BWV)m*W|PzFENnVSA=Sk93qx|gw}!r>9s_-QE1CaUtG6sRZin+~ zQ|IP7DR&hK-94Dayd#IBI746E=~UkZ+*2;yTr9y7c|K}heHmS<+aJ38Pud+DE+4Ws zgqqV{S-@%Rq~xu@>9l|$sPjjlP4K6au5WLB3FjKUL@{F+5PA}P6xWaYY>OWr%yuU% zSfV4_%J|UH$&xs7d8Q|gE#EMDK+)kSB;9kC$pTwChcb^tY7i^ZohLH^Ge$e%~? zqS=EiIJ&rP{?W-47kfz-v0v5EQ2ZNkoJ%P=6)^E~_tL}Qi`%coEiW3toqIvW*aF-7 zC4^wNXCJ>V>l#>GEGzz19(ge8%fnQ?(vhR>cB!bG%RfG$X`!r22J!GmId*jh^GA(e z(<>nOfddzf$rvUD2WZlO-~6h+QM298tiKCgXz|S|=ANtBtE0+m<-Tx@@r^>x${FG10RBbEec<>%uCSupU$^~bkNPuh1y!H z)KiJiWcyIW?Dz+LUE!m<*4$T#D)>5^jj?Fb7-pN3RX?xoE@j&JbK6hbPjfRL(?)TW zb(2FsSd>(_B_u2J@O|l^GWTuFx#z0ck1erAt~$a(R&ykW#vYMV1r+mmZFP5iVbb_%pIf3=B;UX z5%gym*1^_QBUoV87It@vmyESM3a?KAfE<(-Ow;6Gmb|E1`mX9MFh_|RKPBSEA`CXs zJn=A=si`pdqxe*PEg~z=GJZxzaDK(w_4((S(w9%2#P++y_#+>1Awt=X1jEW~rp|B% zx!Sv9y%uj%fQDSj0`m_`VHd)uSFjIwrls@jxvckEm>-da8=+h{^R~bF#+I}vcIqsL z*N=YM#U^n;@K!fY&(8J*9@j_?3{qu5l`;YS1j2)WD4bv((kXY_k8ilk-vAxP%o5{7 zT1ICnyeXpQTA7xqvok~~VVx-cXzmnUwO_?_h<;4nAePJfZ_ba_YY#GZ!x9YjdiB$+Kwn3p}v))Kq{|&zgX;zc;8j15*5mT>)D{#&SI|RUM zYblUbLWUKuUve|(gEC!*S|QJ3?Hb-)V!xBTY%4ta@@rPu_o7Lq*BL|$NI#aM(VcHi zRsn8j3PoeCGbEu~c?%NEWku{np~)1i)oM1uYVof_dl*R?=B@A$ zlAGwqj|u3Cuz8RwLxFe1HeV6$xA7kHBH?;F5sBbsrH9_EeTd&++S~P@-fF$(aD3_p zm;GO`S?FDtgt0+W5>AOuf-+dcsqGNJ_OFG$2?RKicj&^qk|(`&fXKQDZC=Wu3fqWZ z*d5?B!E(<2`U;px3oKw*{fWW7?ZB{d5wfVQW08XL@P$v!pi!zLTtR1R-q_y4gTF)f z)tw9(c=~#vXGgK68Iv6E z-A>KYcT9}!p)~qwqGmC7ul^gzgUQ-R=6fA0U`@xEY_B?E{PoQH0pB<^cZw9}3L3(h z>{JbTArj?=g_;{)k$B!K*OLVm-8JE%Cjr(GyHz`>ESqx%kj;@24i@XY1>ETVQV? zmOFDAA%^B>1od!%AM*IQ&Gko-?FOfMS z+Am{T=wDq|&b4k(>d1q|j*n=)#;$(Wo`Vi|Bq$kHPWm%#RTuR6C|A0$9 zbdQO9B7i0!F&uvvyicm!Zbeu`1FN9nZlK^gWF+Rt9mliNJJ`!bU`Bc^h}x6+pJtCQ zA7ZD6Nqa873W(u9>6086BXxb|-zGhP^D-tvuIdR@ER=DPn>R44d#x5L(P&dMUS~Q1?vP}d8Z!FMuh#83G{p~IT=jOWNj()y~U#lm3h970|6|_aYxPw zX`@ux*B|%}^nNu~NuP>?@yNHr-()&SlL%ZMk=Jr3{KTPO2^+&BkNfu7(U}g&IxZU+ zhTZ2=Gma0MYpQg1gKbn0`Gr!pv^K&cCa4hp9HyM3C=2TK&y^^o$=-+rJP> zR*KpM=S?&zXTqZ(tO*UFk3`cCb>NL8MP}Sjlex8EhMn9lS2#eR!t5J=^l%P37ujp2Vd%tGXmd!<& z%Q*&-DQg=OLU2PR?t2lm4v(WFQySPDy>D+h5L_W%xcWcUv{iHcQEc}xG% zBtj~DjXco9^+Jkoj96`j?Ne$N zZfLSO2hRPnY?U%L%oHy(t62xm2gcyMZ74$d*p5GI=ixfWZy6{(4z9H*Y2s+qcP73d z{0H@_Cs4nBP0tY{l<|d;yODy9Ssml45aS&UZ)l0PwL7MC)e)KU1^!d4b9(Ojg5+=) zXCboNLh&p6yDTz_`zSo?qoL~sy}%`58qH98eNyGpTp=MW`fQ60S+Uybxt9fp3ultN z@YV>lxpSQqlBV6;$F-zuM~DoWFm5xce~=plco%l(!pajI5uh*~r#`OHA?mDlX%58% z5XOIKBi;LJqNa5d7~=wj8tKxb@cgFK=Q4LN8~_E#^QC zWXf@v3>;+%E8^cF4A}6J1Kz*V0hYcmuTnMSW^&VQQRW8ebXkT6qNIjtJr;Ggqw9Zi z3tqRldZl2LmDGVFfIQH9@N%|*J8Hj04X=KA7CT!2b)VT7%!Y@DUA#3jpSm^E!rezu zeoEPwR)J2iyeRk~f8PMrjwan0t56d7Aj_B_c)R7EPu}$b3A^a{9&z$v!g0BrN9=C* z-8l#nsv92|YHSt$*hhJ{9T%7;4W00TN6k7+j|S4R0SvH#fwPsIq&`+HF9^4T@sEz^ z=}x8i7`l#5DL)>x9+xFsL+V5Z#e=rksyHo1oY;Vr*1KKh(1 z65IQswyH01`PIJ*&nw(5;^8j#g6Yh*_}yl0029_D(;a7e-}%3q%-cS%Hkh((Ub804 zzH8q7Y9(I-sMQ}1eyFwO$YfGwdK+N~&Te65p-<2=GZWs)m!`X}R+gz-&Aa>2aMIhg zsK`NmHu(evt_P%QP!@g{v6^*kGpKg&4gPC_<5!8=W_u=?y^p zevTYC#Pmj8j=ouW5UWO%C)?>V_gVJsbEqXS@;|n~A9G+Wf0@Etc!6iumStrJ7hY3V z)3}^USLItgdWZ`>$$RW2hjdhFmwwm0KEEBlkgO}v_Gd1{Gv__K32+_(=#zes;+hxN zdBCqX9(Z+U`{Ji0+iwpx0g%>=HP!-xyEshosl;y1$n8%=n2k*3c|m#ZjRlC9B|6Ja z8^H=0%S<`gdtiOjLnB^myyK|N98Ic>&+`BFk<~+?TQoK7Y5FtHkq&123?JB`b#3?# zmRJ_wu6Kq>f!^pA4K`u4HmAPM=JufDpF~Ch3y=WUv8v|s+oF4-?v-iR1VNE6SlXjw zS$bupup&VM@Q6|pytDbm>zAL}H#wT#|DKm`-Z@V>#K=L^@L6Eol}9dC z)*-`5yv{aFNKc%hY#HtfyA_~D^RdS)U3Y~%LW2ySo8l59H4#6s@B^ll4h z+Zn;QQW}_j?(2D(@~wQY^K;zx{#Bb&I$CgrxEk#U?ClvjO?HxMAciq#a*v=8Y`q2Y zU)|0fQ|2hELvi8&k3~j~7R(0>ED0{j*S_|rgNUeAXxmzwLihZh_)|Gg{9yX^h#DA% zY03*}q6n$VwclfuV~maF^xDR>hD&ECPYJId=$h2h)Ll9P`U(x2c)S1YSV823anOw# zr%jl1O*t#1Q7U`H2nHfYzLG(0R1@)xx6L{EG_ggK8tRG78D8z;QHI?>dl1(}GaC+Y z!|Vt3q9b({OVIuXfwxZK{jrQVz~bto*zkLDB<*}}dYoe%^vAZ#fmT1u={!I_|1|f| zG=h^p_mbkne?V~aieplw{O`epbF6J7W?XZgpze5{RzC0feo`G_xVgjo4Oo_eB)GiR0) z1*~FySa-A->XBIB-nzN1@!F0C2q9Tk*b+*#O|}KCB-?(!Z_}%=K{?a@%z}Bg9!YFo zyL&NyHOuQ>AMQ0qJ4lh}1GE*G4gW%3HlLJ&5RgBGWi}{^4~UhC{OEttKv&2!YUWKc z`3^wH8`d1RFom3l%XT^2LddKEv4BngX0#sW@7NG{aKXeK2P67DhQ)H#P3VIzVlH4n(d2VRqfOUo z$d26O{6-97K#*43k5;q`C@})~Ak(P~QOJV0Lt`N*n3dH?#+9wuzna8$!@?r&UE{wLFq(y{>Z zU@FVDrt=(cDQLNxthS-~BEVXZw^)#jdPYL%I8a6ht-YojHk;);OGS%xuS-Xi4< zQbaq;LV}t_3*L)i0h(=N?CJkCDY)`qliUfMgx-ny%pnU;E>-S6;j#9vg6018_BJJY zc_ZA%WIch-SMG_0iQuJM6pb#M&g)xOzk`j5Dwh{D1U4cx)z}CBeywC_SlxztVPchu zst9#Fi>l?&z@~L|*wo9lrwV%;+~5k!LpywX@FZ1oE|Stt@r#RSO8eBsmZJoiKw}=r{!VgLJgjy^QWD8tVu4V#YrTG zqO+C(FB9WaU(m$AK#GL|%+2cYB|)Yb)#SXNsMjX3D(j8`KuJVHl-AX4Q|0D8kwVLt zd5;NN-O>_bZnjixz|)-M)C@SZ8t9lRcohy?`2saj*-18H8Y+ZQZG~6A|9~)13;Xy< zyRHOMI}W-Eo>%ApU2hsH+-1!XfPM3c(Y)!pJs#cY>P3nY5d>(s=Z1pm`nBJ7#M%CSPkP{&1W)FBDqJ)t?q~ajhBhyY z@6D)++Wz!ZKj>=!AFUp{T(l4#e|Ol@A$j67i(B2=t9r{syP;FXhKG9RI;y_qe9^;~$lJIV3j@FmU1dnc}f_ur;6^Qws@It!(CwvU6YBWr z8hw3^)3Anu8ia-KUCBOCVU@ruiGrPK<#tipjauK{*4!lbnhwt@o(Qu_*uK>=o6ePz z!oRJ9_N*@N8%GAb%dF2V=h80y3-ZX5S6Ls;% zQ!dcE{jSG_^*aTSW_BqU1KXE3qjAh73Tq^pqo@vb^f`;Yiwn$*37WI=JM-UeG__Iu zssDCcL1!lS%~*~wa zv8vi$PSHnj)|ZTuk9T-8-u=0@3LTqljgjJ+1?Uhqjld@zj6^<=l7=qLq{952fPA zom~HKUvKXoY(&2#H5@Q(^E4?zD}@Wmw1#%A-cJpmtR-Zm@`0=Hh3}}9x@^yyw%+nG z)r{CQ&7=5!9XC0vZD-^sNueqFGENaki{FAoUdk{Y$Tmb&`Hwj`cuTKg1Iajyc9dhY zsrd%?uT}QUFa?L)s~*kYdmFTLCCLn9qOyKk{|a$7S#=r3RUwZZCsvL5#PRYgYZsUc zU$~JPUZQLMMm|ZB0VEk;UoI6a~s%?v(N#UYXc{Ffsa5 zK_CRA?@A`+ECAs!nCJxtJfHvU-(Rj!xFz5*;`>QEV~1Z=+ltU`A*f|5T#H@7KzR39 zsw}W-OQm~g$TgB=l5C?7AC+_XVKBSdXRj);P~c?dz-PVz3``AiUq(4Itjq&1+;efY zZ7=Vu(#5;<_2Pa_Hf!u(Si~$V@*E$GDEy5~tN9&Uh$J$%#a24M>_>Ie>$O0$Oep%k zon3dUPambqXTw|(UZ};}XT2KvjCwK7G_dstM$u9o8Zqh%{M1r8C1E)fB5pxQq9J!^a@4g=C35t4&UkjB`UW2aeUC%2MdJE zo}P}ZUW^8B9j|^p>r%Pf5&R*tRqxCS6T}tXZ2x&(?B_*yY49 z=#y;-ib6BsF60R%67zgDpFCPmsS-*UFSlb0pCjlA?ViiX)ma7G9_JtRRLygqB_CPL zE6)11+R`Qxv$^7lMPGJm<325R{iu-W6w>c`)}E))U(jH&ByXdLiKnm|Fd!8*U)>FN zoLe6}*lHn4jNwe?TUhcvR*T7&8x$MU1_A*g=y$jqLw3!^U^V4V@6@G3XYW44)d(J= z1gYr9C=K59br#3dju1aQP8o%Nem23hUx=H5Wuhu09BGhvv^#t;zOWbIu=+{k`FZ&H z!3}HNw_@g>$+o3JIx5m)m*&ssCTrf^pLD@tY;>RKoZO^8U~|P~^ML6QBV5ZeowrM$ z^3M?rrz0zYeI66KU*Itsf`qIdPty#N4SK#3gmtZ2yW}|a*IM7jik6_e+#sMeRRj)q z5lK*R@Zq4u?34V3{d(sBs!O-qq9U$@3U?FLYXi~^5}<7Iln%1aQ~so(CmC8z6;oo* zJMdpvV@x&=PJ3ib);??3hu;0YQQuET=vG2TD>KY6%+hP7v}XRXL?Tit&YmJVh`f6@ z%Z-|QbW#;aK<{cAap382V4s``3WD4msPf2A4LuO+Ga|!&^xGk$+4KqU7N*PjT!ZL{ z1uDUm*g`A>QL<<#kvOUvCkbR-P2j6O*PtPo5!2!Sh~FB+nL=@;a@Ww*h$-=u`_+u~ z3PgcT*%!i(54uhZg!2JKguDzUtV^nMx|` z3TFN;5DQn}oA5VwOJvNYmU0&}mwf*`@ts9`=P!-pU&cW=!>CGV$EKTO@Oar%9{^b?!l+l;&-1un5_<{f2Fs~}{ zyyy8m)mMLY9C#dda^dVld5Rtm(fwumn+3B4ayl65z?3j5>^P7x@Ti?AeT(fU`B9R; zVD-pHwGBmnGY5JX*euL;Qy%GM(n$uJqE07j4m6O-d ziIt8E>rZ6WO6oRZN-2I3K%mLO#PhvWlxC_X8cveFP-mUGmXO8fgkHd_~$ z5Y9uBEkV?23*jJCiWIvSXnvtm9J$i7IPTvN3~yEzWv`f#5}ue+Qs1pf#IB3P z8X)fIPQVh(7In3G)PG* zB_-YUyS#tT^Z7nJJo3lAXE)A$o!5DtGvmxI>N7L&Ge95^<_iY8mmv@s_!9;}(}921 zf`0BmAigOVbkAK4g3f+u)6UY1fNUre)ZmG|32DB8q`AgNJ$MfNtsx0{&t%Yaq?2l|yPG4zD-wxM& zHdl_u`n4Mk&%D|Xp9!Hn7<~ujmI=0}liSm4w=>fAoIEEMg~8=WL}RRePi7WsJq-8& z6)}Ty!p>1(XsA6!5WRXTihhtW8p2w`hNv~p%q7-&9}8T6GajMizf}|=3hSqd$}k)w zMu^fSNK0=pwVyT<*CxBY#b_JHxei`A*LcUBgfU}$410^GH|t{m47<>L8p4U8gAsX} zP?bbjEiqZDi~IAI={M4`F^H@v)S2ij%6v@k%EijypMua>5?Y374H~6*U6J~!zWW}= zu}d-ALc{Q~7`hdr%mdWliE0_lRN!CJ{9J?Nd#D|`RU$uyUqVr+ zWO;(hN4G*cDJp`7A1AUdFW$vJICMESDf94$3SN*G`i*pnqSgL7QNOzl-9g6$9frQW zV}EVIT?g&k$*E1YP)sXay~vWzj2G&FT>W;sWUYm4#rzn09FH}NE44j~p{w0HA=^Fq zmmm&bgRv2sTyMhp1{df;h{6<`zP|(3b6UxmKY^Fg*n{}Yv;{R0*;Awt3imq^6V;yS z#!t5>?C+q4B#h&SU{c6|$*%xag$KSwC;`LUp+ML17ZE}-r=V^QTh0h9^FNEi{5iag zmTkVHo9koIl82ln{;Dpu8x<~^C4tSpgEC+S3{fXZh7k>Se&Zct9rz%>ND-9ofSa5A z)&d>y!u*q~8?oxo;xGk|waHf5#~qO<_JHGNtSyUV>%?K%3g|oNEs~)qvFXkvUiENl z2`|oY8&ZYW@A4be5nhn$pesBhxxvJ>b(<0ELLY-Epq0sfyrpoX9m)T^@l)BpZv`}s zQ3`Pq5|cKwLYk!cMNIaCQ+a`EgXeZ8blXpKw?jQw88l8eM1%`sU1VY~@*U}y<(Lg=^M(Oe0evMq5v^vGQ~;;Lq+|X`A^%^yU5wv7W2diwy2) z60K)?g>j5k(QxEGemW3p7U(Q0A1SpUh2(}B5yPUlhF6F^wAm|l;yE&EBzf9<}wfXHV+r!LWWWw8?@2x9UI1dzSFO8y$RZ&nZ8=PGhIAEMe>4euU2w-Jk2X zexABiz@_rbl9JSR+H9KG)VDESs=tMNHoMyMIp%z(IHjs7Kk(-SUmZF{j8ofLweP$dSUxlnKb({_ zVcmRP-Uo@HQ;1GGdyc?I{iJcL>ZQi5JMeqARuaNb8CKmRB~dLFKQRl)MmIS!V81+= zq-2Q5uM({XZ~Q*<>!A^`4`KniL5#(8n?l#|;ejpH@6}R0P#fm4303aRRXL>9bIH99 zJm!+oO>$tm?ze!VB;RJ%t2t7$S#GA%NF|su>@7NFc#no7TyhwSSmnt5?lLy;kQj0E zO3|WJ$BbejN%i^-tS+}1TDG;T*!_0n{Ga6n`OUJVpV|aQDzjw*rtCXP3YE%wB4cZO z`q4d-1NYWixJBQ#jr!SzJJ-2%$Zl^ij{L_?Tg;jELn(d=lL`l40Bjvv-Yx~StsmHs3Zod!0YZPw+N`0|ZiN0twNK)_pWcs|k# za*NH;rJLk8#w^=iwSJ;CuABB+Qzvw$H<+ZvoLi;j0Y3A-M06UAzIi<{`^A@kX^O5E zfjfp{o5X8)2-Zb}l?t=WEFNxRZ5Ov!xLti``fi66CFg8AZ!gBtPck~~7=3roE4~wm z$3^FJ8!AG(21yHeF>P|>TWAbz&hws4b)V$I+uE-BxgP*{uhRsG?nLcqOujBE50bZakRBwmbcXgiP#UeY`$Xv~yG&PXY&?cT z7h8|GV40VqFuWA^+qmxKL5uj}tCsqM_o`>p%IJgCs7%=U$sh0$WaS(xnhBlzNhvfj!l(9rSO}&Xj#5IR9@tot)uc%hRrlGOOo;LFg7{U z>@176?XegPkK~QAAAUm}AT&+p=(SW32T3QRF;{+{9Q)ANe&Qm8)!UnCuTtE3ZR<(q z)uTD0V2*@m#g71b^}ZDA5%pWu9Hq?f@Mu|~RCreCtK-{VWA4gI2;q-s%!W1Xj0C`( zN`@Fre(i1BI^SiDo@cfL?4SQ3z2HAE+RjloXs(&JjH(5Kw#s*CraYYQrQf<|zx*v) zf65HK%piqoZCFC*6H#pZ80xqYN(?34ipG=?*p>p@@4WdJk|(xa=2>*mXz?Vp@wSfw zGxi`#n|wG`ku!b`PQS}a3WQIBNZomIOyJDzw;NR*Pj>dE_($87ukPT`%if&Yd(XWU z8){#>O$#?p!tr8b=g}#1z3{^|KhvGEVT~CS7-(Pl;n!2`mJkMP#N>06&x86`+D_P} zv2HgER zKsi;Uz0Y<$9l7l+y1GC4HZ#9EyEjr;_LOA(r?sVJ%iPJ*$dtmNL0btrP6{?UZAQJ= zsLHcqQ$(o6Hu6^g-cGG!drAKL)nri@u9&nt!kWUnW(wn#Jnv9205OhAoh0HUwbpMa zS&=!tZ+vCaeQGNU-@?xzd&)A&J#5u^&v2}}GogT~3B?qRDM*JI8aGzux%JzQuoq>% zWBqu>)@D&FDs7q5QP0Ra@8FE-puJDujXxsYSxuVc}& z<8`NLt9PB5gso3_i;*|4y&a{cA`rQI^GC3V3@cg;Ovzx0Hfglec;@Hs#25I{Xr)ZeLs9)8L&mo~}gy||4kP&^u{`iF!HPCfR@4|(+@-y=(43yaGEgJ(_qzuFDYB)ScT zdq>uez<%PQF^_amhEn%DryE;7h$vSGRK;#I*zm(W$uHhuRNtTR>Qf(0FRwV`RYPxy zh{kA>zfXS_OfA&UHMDb@Y`57ORaT~pAU3Hoq+BU?Dn2xebg>({{ckRQaFBQwEalb= zK5l%a+~3KiXMEZ!-)*n1HIW2mPC3Pia|O76Kf~_5P3ZWB9W4Z0mbS4-ov&4dSIZ~p zlzL~a)~Jf|(&Lxc#lB=}J6E;&8YwbAKPBciy-?-5t4GkJfW^$@KpSX6uKKOP<=-4l z#(($qZj0IL__J9VVZT`G|72MFXW~5)ru#un&C zsRj%0H#Qq;RBhW2pEDMSNi)x7I~8f_9pdjWRLxk*4WJV1l5KJ#w&fN@&gJarpxKPt zm9cJlvfE2ccebMAwfPwn@5T7RO~@Pxqm7m=P=st|@XEOpy*=KoEu2}J@vVP+h3wYJ z{h5DbEju#*jMpe!3JP9=V}Jy71mM0@Uq|)lysll3m!=};j3r~zF6Xi}b9`4ZGG$5k zo-ytBM$WQnlLs0Zhi->ST%qH9LbsmPbMKmWibEjgiZ(Xe*yiWT{Om<&_*FfWAR z(O}Qv<(J01@2u@-w>QceMz?V_|3t+zKx(n^j%#G#Np*;X+bF9C>@FG`y=4(kWPQOa z7fReYGux?{>^3bg+8{TANGF@hgDwOKH#)u;XNAKZb&@Zn-M8L@8gn?#LAp( z{hLeV3q7h{*EB}cLskub1Z&B#%79~79tBVXuN^lBgN zObJ;95Ta!k1-#N?99f*jE2ksP3C>I7%HQr?Hjax}@$-Q#_FKlGD>_bY)2(<}aJ|ys ziou03Jndq>R=vo*vldYweVI((!%^^LrnEWm_M3xa4+Fg5D{R_mUrBBy=I4=PcfEZ- zPlqBks|q@D)X4NNF&x>-ULUhcj`cPeZ!VIUi9APm;q>+U^;NMG_geSXpH!dmc)z?Z zCLXPAOg@Mf3Y!me46ePc1^)!E1p6<&$|nj-01;eazK3D8%37!+ISs?$J3z-CFb1Oh z+@sXpO9aKSb7*XR1C7n1=sG3ks@9m*`L_@p|_=Hp6 zLDrYK*mLhmn=e6&>Ti>AXslChh|5mUwte`ya6ELvd7gi8@;Zg7Y_b08THOG2NqfCrG%TdA`c& zoX@-d{6X?33WlczdHPwvN_7Bk!)r|bXmpF0n<)H^wy-B>KU|%;GOX{9nSRIX0rICe z7@m5hr#djcpgTWIbN$baksdUJG4sQSw^dA)pT1sMv|{t>Qn1y%Xhyb}ysMNMup+F< z7OK2t1s=$T4}_7bNDgIMkf1X5PbwE`Z00q^-+Anxc&-KI{*p!=Zq@E z*XO=<%pfum_9s^aLjT#b&z@^RGc2o}@47hBcd>qiIgA@b+;m&oq=iBvc1(5b`!DtN z6#*W)cC5>>n4t4cZjGCX9G_3qT)}muyCGB{m8F!X)p-EH`+LtAOUZmj*ocoQkH;gA z4wgq4ssL8#LIzy)VG!C zU^Tk{lOw*pE%nx&#j*Da`LH948l~lS(Kf4i7)AQe9lnfWd=UN6`O56J(PByy2dc|H zDnY-`BYMl5^UvXI;^6G()wszE&HEB&%s0_k-GKY>MxqAIA27d*J+X-r4-l6l-VO-c z`Lq2AG((3t7ViWbIokc_`XD*N;3{6ABIxIX_bbOT9}+cTZ-_ye`pptY!*LRb>~ZPj z^nau9IS4BN!2J+X6m6AOtt^G!0B?oUU?Oxqy2}^yM^3_}>|a`ykG}q_De=F@mlh%| z!y*WYpcf2l{$uuB{{)>b$ueb>%EXKnPjKX(<1d-k>dxFVJGL-H7X-ZL{Uay~6jfDT zyqXw)*Oll?U?M+3B^JhF9_h;(-AS^!rgrwSx3H0#HywZh^7k9C1)B7jLDOrYiaYjH zR`N|5Yc>UTv}_D#ftmi#lcCk}>rx&>}CPM$%KZsS@^LbgdyH8%mxyUK6uqbZZ@pUp!xKFWPXfFL~Bo=8>HAka6moUs34jULCCR9QySy- zxdotZVo$q=g$Wu3)R|9G1ZNBmCFw#cCinRGHH9(yh+%ZmSo;Cd4kkgnOS2l61eB~v zngoi}O{S+?>zvvxko$aj|391^+DFz#oH7GWyJx{hL8>qd+SvW`%tiB8;REkvb^?rk zgqDR%x=?#TxXw|osyd2kKLHJR0JA0)&;|gGb|W=&8UG^B&aGZk82zY*maUU?dDlyx z9O!;NGQ?A|2u&4@PHPPzanJ@%eGEGhB@9MGL#B8_=yZfzb;(wGvO4Px3zOl#yV3*= z0vKzeM_i@RkL_jOa>!}yuqNi+IG!n;_0kGRGmb&caS{NSE+2*Y<~rZ6nLAt~ z0TlSnK80s}*Mh{**oYGiOkLbX>R_}5AQ~mGL_h`@7(!TMqyUTTI^Bd<_WbX%H!QTUf;=;+{|Xvwv}sO z>SQb8M*(U?Q=%nfaDDZ}07_AReqifqvjx1o&j%n}d{!@rW#f?5m0fa>)S~G`Nb7s|lHoH4$_- zVQp=vmToI@e?VwY5Pv>04Vq6$kpl`E{MCV{g^27ecm3~|?hEz;0*wP~lV%Qf;#i&t zkHQCf_Wy0&oXsJLkF7mqH=TPy<<}<*rtEFE8x99mvcHQvSjcf-Xlp|P>4U2yD{yr8 z;N)WUriSa!Uh$@L_XT@|3ij11E|+Y4TM#%Rq}^D0;M;gpJIf-3#xK6HreA)GaX%ig zod-t4_C8}$uQ5M{PdY^&blzy|=(tQ^?m!1^CzgHAS6{nGIRz{W$=`Ap@=L(!3(dBF znn@h=hEIW`HQWb6tilP0q8+9M&JKiN`IjHcmi!%_(M^7NZVz`FuGmwU-oXs@56AY` zz0Ov#Skg%$SD=X&0Y>wuSQUf&>^nu?{m^bv z7yAu6rsDJGnd(7mSbpX?vf!BbqmZ2j9z)_~<&<}VWs6nUXnq7SDw70CLHY%2kn2=` zC->sFL@l`wADt#J=aT>j{5q|6C2+H0VU7d?D(-jWLmFBJlF&Q-v4DRbndIrsB)G}< zEC!=Wi_=SNA?|ADh=wf(i!tAYh!Iw?4 z73JLmyMH#GALSoUn~}x@PTp=sx?3w()qFUE_*4RR_Xx&)7~GtynAo#{pPUdwBJSh1 z$9DhW-eD^A6sd=1E#6q%|Fk-&rGRiwe<`m*t%>cvARss=yNY-12>^wSZot_@U)}aB z#JvlI=@aWTbq2!+_r@Rq$y{%CxM!$2pgG@eE}lw?SmE#|9htmLiT*wfAMq+Gd{MHy zTjP24YQiHpr>djM)y~KKKK}Zj3_HQ3luW;nh1=_i^XnM?<@h8IE-rT zzs1ddJ3A}|B4NA`RP3@RauA{6!$pO?a|yYcptTfJQkFOPaI<<-%k}Y78)wz?N&TIf zwxdT$;Vm}pJ!$C&bl*tt+B;$y!*<*VJU&z@N>+I__5q$ONZ8!qZyO_En&2xOT6+;D z^Dpn2Lj*`Bc#Q!kcTkV;lK=4G+3LvZi20WnIFxSJ#m_T7fD>cuy`5mbqEi;XEHm}p zksA=Tx!Mmivu6*F5WS+LZ!sZp68f^=qS`int1U1UI!832Inwku$_Hi^wI&jnBK6Nm zUwGKSX(j#4w=y})bVMz!P#F&L*TWyM%lO*-!XUic0xe=}^8EQs4U22LI~bgPe^r&R zvM?(QD~j14G|e~A-03!s4(1{3Ogx6#8b*aBhX~7nU$OE4SEI#5Lj%RMh!u%{r5ueLMu65WZzPogKN|+)8sH zz|Hi$29*wI@W#TuyHiUd;qRUTqmK05%)jz>&r!I6=*M9Ib*t&Z8TPS2&%i?SKdofi zUz!yHs6b$4`fHiWvjjc(9XNEwQ&{5*chG4n@*N$g{5{q!jX?E~UqT{>+1xBP&e-#* zhSqr-Q3cBt`j^}0i0aX4+a98D=djpR+1nRkYQ&8E+*J`Pvk5*Ovfytf)=(e8Gh=*1 z5m!DBcUH5MGL*7dLW0rM|i;YS~T;MHMVG0 zt>bRr4-1l$9^K%yYVxzKyR(g;Vq}2QN`(qgHOhOD^H6(OX2^IgA@F<$l?^voChdiL z38f>HrWelI6;h$4eEm!w(EE_YfmW35;0T21jt!}sC34-$Nlj2EU&M= z8$4kvS1x=Z;^HlncJ=W>1X0}peiRGL)B=%c7bwjn43(mF(N_L~ijFGoU_t-GE0M!3 zMOsl_y49liqje&TlLBFuy#%xDWzKUGhE?lxn>okjXOTUPt^W-J4d9Eu;7wQnq++gi zwjbmK=m))u#z*`kMa+>^(@gWA;Y=P<2|74*)h}HjITU(^0)fk>ryj3fU08V5UQ#f2 zMys<`;fiw{kPKU5*zr2#nMcrHL>|&K4`*N4KiEiK}089D|2Dsuh(tNP8u z8>&9XeTw8Yt6LHqYKh=|2-jbg8@hTcULby$B`n1)y9qYxaep}T^RNjK(BnS(d3XSz z4F5*VCKu=);=5kErxUw8fXk*N9}N7M=&k{tbz4u*yyCMZatw%yJRO*Bw~K#HXjR)Y z-gA)HIy_uKbQ{RFR`+l+CTG83t@y7r5*AKl11YArXG}@(jrYp1dLZx6J$AwBCh_i% ziL`weRH1VB)7jqG+_WhBY>7cbB4~JLj=IE#JU>0Xe~61RiJaXY3JXKywI@NH=6ebv z2@*<#1C+XWT4Id}>MP2&c5{ZCO}2 z&@8+m;{q!$Iyy_Cr6o|vZ$nj6c&Vp-)KJOmQ8Zxw`BR1{A|3377io_=@EzzlL}0*%*~6UI{Gmg z(%D7S{G+JAi1j0K#Qm)ctjXo?hkc?mcimV#)p#eK1fxJYF!G6XQl>S9tGS(~;eL?^ zhdc3?veO*-OG`5|)Aoe{TuCP|&eJ8q^c}R$^iL>)8Y}Vhj|VAhf1kx;tlIv~cjzDf zJ-`tZeV({KJ0%yo*#;`0+7yf#c|dd`A;ClDdHVjyK<7W4i|1L5E0*Jd*QDz2A`8>bvcW6eig#>3A(4 z*v$`&AN`H)YuMpgJDx0d>&@2w0L4~J_9*8Ikl>W$^m3UHG|D}3O z1K|1O$c5i}t3Tg2(C)6a@$gukKE00TGDC90?W5Dwxq7!#7e1pzf)p0vBJ<7(0F3(a(iS1Tk18|pKwMJ4iDm^ zx!dMO)#-!vd<~wEzQttu3&5&d`R~_J=?gS=U8M_fS5g4Q$)s%aQ(uQQsTeqz{JFPp z!CF;PWHkdxaes2#1&Qwfn9^2{_x3iKvKA-d@_wxY&6e9vaI^6XmPXyl6vua1hZ ziWiw&`H3ZB+0WrG;Acr~ATwq$>Ana%jh~A(TqO5(2!aGDz#%Jh>+7ZtUPGpxPbh;U zbP4oXuvx+sAQ90`;YVrM^FN~z6Fe^~{H?Zrus?8l5P)YNWWg9hTV?=mMqHSkZ{JFK5R4zeb?fY`Lze9NKlJ z+Kk~RTybhZetkJVGF+C5wuC*#*0DFLX*yP?G z%P}{)Hkhln@WRh)J=L7r6Oe-U-BRA>n+ZphCIDPO4yF}3SgVFhV8=k~h)+^O(=KqCOQ)wx`` zqG3j4E z&?>y?OVh;t!ge2qHyvFI&GEk8U=);N1+{pXcaL@pYLQXnC@ zGFI>CZ2%7X9&FHC*bycv-hcClj*k|5{p2 zwSsusG(Y@tzPg&70+Wc3oD)c#$xwR=GXjnc%EMJb2t(|xGo(LEvY2ad4g zr~CdUS@{ze$c$|8SmHq!am3yMf`~zo_lDFX+ZEB{@MoV>l{(9-un?~c)}7&r3ebs z!9`BAuUv0O9<4H5Lja`SnY0V`QoqFX7=FCd^kDMj>e|dvzO4z=Fj=;}wxy+SpIL`% zidTZVrNzmPcmL~?Q1K@YvK_Y3;b<6{%fbrfa6>gFLAoTnOTQOBwp(xmA!IG@DR}&B zW{Ag02g@R@B^4DGAPc;P2j}Yi9X9JFKL2j}bfBbU zsN(uKgaa?@dy>=#gStFLV30Vjb51`yRH1^<06Pm2m22~T-GDmU%D+y(mmE!WRDLAQ z8&W5vNV`Q)r1Gb+f(lM{)Ko%JD%0rdhO$M5=I)U_DCj9k$bO+WM(3i*$P52QT3(^} zUhY<55-bn5_i^obeS{yS-`}`oYA&E^@h|1oZB_P)OQev+Fn3Z9pv7?_&E<9K0rRIa zpPZ7n6>mWNO&VyZnK#Zw-AWI(6{XWvNVI%E$_ufFu)t8Gg%bS>or*lzFE0e*-OO#C zqd*@0X?6O({>bV-J%Yv(KYsHYcgdDZU&=^#$;j_b`PR5THPtFho( ziq_#@y|I%7Mzebu+|yv+jKNREy~*!l%f@Z#8gAT5w)W5TG__+yGzlpI3El7n`_&yQ z!kHtcxLEBOA(M0@$>=Hss?S3A@S@9Ai(LAL|GX_=7H|Pl1L%XPH-1^R9Mnnc&GpXx zH@|a2I_i&{C5!csSKR&h0DmIW1M~9K4Zhp3c6jJibPq{j8WhTL`YPj>CdJt`X*{7z zUwwcIbsBP%rZtnaK_w&|w#i*lb9nvrtJ*1cN$I+6S^35EjR`}->465MlqfvSFlY3& zdnidL{=P;9Xf;pCk`Ke zjh$$ZtcLb8*)q1AL(2~G(dJ0)5b39Q-#A;I)&MK?P}74C)kFFRNPZR~^ECD*7lIMo|uelklY+((@&w`e& z{a2^U5E3_LONor7{0eUTY9yZgT-M6c|JonRYKs*kOi+bipL>^{4^ zAMPtbmLf~}8|jzb`9Zz$y2983?Go)bPEy)V$Orl81l>G56A`ifE#_-MPw+{4P@Hlv z-=X0QvOGwieK{6d;`Qn8Lk~nzhHxZ0|m*b6EzRY3!7QxFVi@ zqeNquT(tXg^L)>8 zwvM%ZX5D!+TUg_b%th=cwYCn6QXZx< zltTLx=JEoaWI^uA3N&{NhiTyWa><|aMv?;0IbXL~(y3AvX&EMU=J{U5jmpsTrCc)L z8PSI*=HtcNPDdMuj&$MmJE=s@*CV!KN2xT*XIi|KeHaXDf%3z4w$$WtLQ{sBZ@4+ zHIE9P+4fF{sjWuM4nfNld&`^tBu<|1g~Le6<|_7%?a1Rq4qEj?V)bru@Yi8HyTMKV z_f(5^QQf2?^=sv?L-;K?^=sS-C6y?+5fOrcz>X>?##(j%7J|i+{9y(@z+67mvM&EP zX_W>g1YT?E4-D5KAPi1s1c7uC7$Qf`J^$TrA#4rxfc93T{B;ba)bOHVP{91PopWr6 zHFWH@q7COkk7Vq|Mz#hmo|Y0DcE{O0Hy=rc%O>YFFou-_2|{#Z3|?K&8Y#mH#3R4h z*wlVFoC`1f0Cm)M6x|fDit?_wb7{a-MD5+v$CkE`hVyBU@-OFSiG;ED)7S6Ca-Uk7 z;RC?eS#wws`?I^olF{Q!MQHEQQQZky?0*+Q<*rWmLIB)P zy}!Z;^0Lbmj07y~XkeksM8@Jf$?aY({k1Q0&n;eJaE*xvzeS`z@9yR!%x|y=S zBQboU&H`d&*KGSNWcGUlp3jW#D%2iy%SSWB<0y{vXD5kThln?^)`EZ2k+OfTm(lyhF=gQ-YX6 zeCf5~)e>9-+)jVevZQ`1}i+H+m zt8++}s=v#{(8K9N(mvV4%=)3Ke9bhQsz544c29^K=iSvW#_CF!Bzzin@>^DL`OnA+ z1FRX06V68zU}H;Xa!EMY`*8U!tzu_4Gu7&To~C-O;D0*<>#G zBwiDfNG2QWEoVB6T5#=lCik3`lhad0GNxDr|J!|{rXXX6;Dl~xCe}!^W~y9b;Dk2d zabtL0UEEjPm?Yux73u@GR{zB_{+{_IoJ}HStBu<)tE&wuOcKy82qPO?oNhcxg%S^j z&4_Wz=`EI>U~WSCkskgY^g3Onk!gijeZXi*CO2J`@t;q**ZoIc?pf>FnrOZg_Dbr) zGOtt3wh8V5^F;qwd|O9fwKe@?=pYOQ22?87MG=b6`Te70m&{3M{jo?(dm=(O;>GY@%DaE3{BnH(Gs1 zSO%U3oe;(0x_fLzS^oaMBX#T*V(^#LXj=w7p6%$aL3ZM8(VpFI!n*oG9wtC0AAZ&M|6=e=7AgO?bUaV1%w6nYKKV^K6O+;kk z8uv=xQr}M%^cDv(NHp&-ODmn{riU$y6dgB&j|gXDOOf|jGIB_Bf0Fv|PQGPl`$wq> z&(*#j)z3Qb@wSWQo7pityB5%R(s{h*7%)FEe+ueIim<RfX zViyT;xQts$UzWo8yGYDyF)Ys#Pr~x80jTi?W*Wgon-Q|;v=?di8ut ztqv6erJ)mAk-Um~3pULpeITITd?~V;!SYqk1p>`YibD}rnd{zB|!p% zg~MbbmK-j^|8Oj7~%J(lG@>nbcf%eb0lufk@U9%!E`h-#!bZs|dcz|vSvZ_PlmC>{O#&{;cY49HL9`WzUrri^s`M;Ln8x*NfwOIo z$A*n0Pm~gjUPn2y$j@=G7)jG6Kp)&ElXaiLL{nuLQ?5`AjZP5hDOuDvi-%OKf_fp6 zEK;_=v9|1bD92$5X+eD;I)lZ3@n;@hDN+#=@BM-a=J?cg`OFxyoW16byVD*|wGVF) zzk%TXq{jP^(S0v&Dk2T_7`hA`=ncosn@uJ6=*FdVM{pkt6?ENZ&@!+W#s=*&PKPsM zD3TUDZbVW@CGh5qO<6o zz3u5$y~vI3beiCiHv0<0mQsKfAQxeRpQ@CXg%Th)3s0WhsIbTlp*KKY2JkbP zIJ7)mM)M#jncXFmUr0(42el^@{3j-MgjCBk@T}L{%2sXL1_~TtUBp6y)0MUkWhE)t z2jWRl9)JaQfK6_z(iZx;;K89vY5SQUFfHQ#!3kHZG zZrmd>8;@&a*x0Qz9k9awh(qbRFMo(qqKr-al{3xq3vqFLG$sm+j5?ZOQh-UXXUgeL zD*Ly?MnJrqK6HKLh}s*#vpmoU8!U;}2@mf9qnXG6zDEqCF|Jtl>yCLf)gpgUNf;O1 z^Kbjb!~nWKkY6dtN=4Y%G!v}=_lzNv_ewZLf8gdxxhBU$pYKLloROTjHBVI{86e`e z#}xPRTGV72`QyjM`Ujq%I79y(-nmYxuI80M8j{pS>A+KJ!_CLR7ZxLZY_8lf*)^*h zx;rtB=jaIPoSz>lx@HB{#Tl&a_TGU5u}|MCNxoy~Aw4H#d!+HeY*s6X!YM&#NHi8@ z0EV3Bm22XPst=k-Z=z1nalnrY>+m|hcO zKlduX@&{`n)H7Q3)DNdU{Um2N690Q^YML=zE#NWi2A=H!3*ZdK*GC!;A77_NjH{2C zk6k{hKL0Gepp2y&qa^m zmkCE6}?9y2sMBf{BCMBq5DDnVrClne)DtVeG(2>rE>)Ew0Bub zl*?zeO_gLT%A-<}8!5F^mRM0v)WL^ePWU*&gU&$w%3vv&beet~Aj*F3#givr-wYnS z=J|^(Mp;`M%S)>Ay`%e~^IB{YK)`8;A5mMB(FbgQd%_YgiD|58hxw6g#~yx_by)g# z_{$ge&fjJ#0-glTz@O;Ye#zBfC*911WygN1tu^Zs8l8hH!Jh-KXQ>le%!pDMoXcV zsH^?~!KAa`JC6Hb?{W7`A3I+H9ma3|`tYfv7EZf`BD8Zo3Wq^TavJFF~p zb~1?y8PEv=Jc@YE)ayM2`2_!vZd*x%j>-5;^nRRHG@m*a0MEd;cRf__zUX%w4XkWE zc|H|eUhV=f5HGH_73LRgfyt4WL|MR6R{jk-1Fxnd2${7`C_x0_0Z>$RNW*+D*W`=_ zUaLb{?Tp(enbS(q2GRUGJEuEIv9W#xHkrN>ZwI$`B`4qp$S#s4pcWGu|FdJ_JOjH$ z)S-QCcTgz!{UsPcWn{3+9^N-(NCn5{v8Cl@w6ZX)27gD#jY{f$f>b-(1t6M_3^fL@ zQ*J^xr|bnPi9Nc-N@JovV~?hv2$esRWUQ@;8MFiURBqveq4V;lkSH1x)O=LUzWDH zmkEK$`U0~cn4Xe>(LQ!JQDes-d-`8RDx_H_eBU3Idm4#Xe*me6U)0sLUnYOuNsL5H z!OM(A>?v&hjPsV}sl~gl%2Eq(J*a76_wWC2MLSVz{f+q63|{q`~seEj#{LMB-1&PZURE`ziUpcWYeMw1u6ZQ>A$p_ zampR^^$PNyGDxIPizOMnVF)Nx3ze?%;HEN_LI&+QJ>27ALwF{T8Du~F-xW7KS7h=) z6+_zvs~7Hno8awJ8H0<TT1RDzGuzlI9Vl|{lq0D6T%vw-=PnjvE`{)nA((WJ zUG|i-tnr0YS>EZ5!zYA!ta_&0-LJef*b$u;FZjQm%ygkWP?^8h26~>K$$Huck0w%@<#bZr z`oW!yY}!AW94rZ>_mTC?Xfk1acR23%d&iZd^&X0TW_%^v|pzu3k{~I&yEQMdy#zPblE!EBIllJZ0 z*!i)Bc3YWo+Gd_Zf3m?bMg)@@rySI2%Vsn|sA|qt9<1ONLH0o+`Nf6*y|I+cOC!Ff{16rri(YAHtktY_G`U0D?)g1Y%Q6*${vfQ^eWJt&A?=FrijUG zL&9+%7Ah0SAxBI$`N2zNTjC;|W~cW6HilAXjPBoAhYgZE{Z}59XoPofqkvljf4ZK` zWJ6^1F{#{gG(1eqdd3L8f(u^-`NBj-KLOxiFs+q_G&sfp<)B43%Qebzy!u62pe4<} z`J17pR5{HHmLe>otg|0}k;YuQuUI4*-seyuXvrW2pTgq2drkxJ%0vw@*%FPBQ1Bc| zjGaD-o-Sq#;_jdEOH*^N@t?e)i%VNrP5+v-AtB07X1H_b_=au7z&4GYAS(lB+t&Az z1@Bya%w-Jbe3Ak7nwEB5MoH|{OJqNC9+nxoJ@=I9O?|nCF7BEr0rBklA0lt4hgA0N z-Bo#F1L(*-{eUrz+~hv&NR4np`k;J}aza}W)-kBwNq_caYZfO~szCqh-|6;+Q_Tsi zSoSz=?4JIdAYKZ?cx=sfCsTWH+zKKER}e*7z0`Q6(Cl3eK@$yRRu=nBQ=i`}@5^sEF_$EVbJUCnbYxuONk&g!@Dc2g}Rr zv&D%5b{!6)kg4VDHx&Ou+%gXdA$lET_EO7zKc(Q@&{YybH(TZ7I|%}IrQ{D$MRd36 z`?*>d$Ww?;R++b}sr8Fp2`apQ|Lx{gMY}RlZze!hUT6$529dmKA1>~>dERt(KJ@@` zj0LzQ!{~;mKj{WdN)(zR+4P4imj-!|&@^fYVMl*dRpmr*!+7BP!*%0AS|QnaEGlTh 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 JtZDV+{{U_cqXPf{ diff --git a/projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-72x72.png b/projects/core-ui/schematics/ng-add/files/src/assets/icons/icon-72x72.png deleted file mode 100644 index 88eaa84c36f31d213f4e5c9dbd00aa7e7883758e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5258 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 gDc(K$GF(Xi2NqxwH*` - - - - - - - - - - - - - - - - - - diff --git a/projects/core-ui/schematics/ng-add/files/src/assets/ukis.png b/projects/core-ui/schematics/ng-add/files/src/assets/ukis.png deleted file mode 100644 index 78e4e6ffdc6b2f39074482a8d045f1b289c945a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3392 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:not(:last-child) { - border-bottom: var(--clr-vertical-nav-trigger-divider-border-color, var(--fallback-color-no-clr)) solid 1px !important; - } -} - -/** nav orientation on right side ---------------------------------- */ -.clr-vertical-nav.right { - order: 1 !important; - - .nav-trigger { - margin-right: auto; - - .nav-trigger-icon { - margin-left: 0rem; - margin-right: auto; - - &[direction="right"] { - transform: rotate(270deg); - } - - &[direction="left"] { - transform: rotate(90deg); - } - } - } - - &.is-collapsed { - .nav-icon { - margin-left: auto !important; - margin-right: var(--nav-items-distance-side) !important; - } - - .nav-trigger { - margin-left: 0.15rem; - } - } -} - - -/** floating vertical nav only not mobile -------------------------- */ -@media screen and (min-width: 768px) { - .content-container.floating { - display: block; - position: relative; - - .content-area { - position: absolute; - width: 100%; - height: 100%; - } - - .clr-vertical-nav.right { - position: absolute; - margin: 0.5rem; - max-height: calc(100% - 2.5rem); //0.5 for map-controls - left: auto; - right: 0; - } - - .clr-vertical-nav { - position: absolute; - margin: 0.5rem; - max-height: calc(100% - 2.5rem); //0.5 for map-controls - left: 0; - } - - nav.sidenav { - position: absolute; - //right: 0; - left: 0; - height: calc(100vh - (24px * 2.5)); - background: var(--clr-vertical-nav-bg-color, --fallback-color-no-clr); - } - } -} diff --git a/projects/core-ui/schematics/ng-add/files/src/styles/_overwrites-clr-variables.scss b/projects/core-ui/schematics/ng-add/files/src/styles/_overwrites-clr-variables.scss deleted file mode 100644 index 5476fe31e..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/styles/_overwrites-clr-variables.scss +++ /dev/null @@ -1,4 +0,0 @@ -:root { - --clr-font-base-size: 14; // 14; - --clr-vertical-nav-width: 16rem; // 12rem;//10rem !default; -} diff --git a/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-core-ui-layout.scss b/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-core-ui-layout.scss deleted file mode 100644 index 8d5ef958a..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-core-ui-layout.scss +++ /dev/null @@ -1,110 +0,0 @@ -:root { - --header-branding-icon-color: #fff; - --header-branding-icon-color-mobile: #565656; -} - -/** HEADER -------------------------------------------------------------- */ -.header { - .branding { - flex: 0 1 auto; - overflow: hidden; - // min-width: 10.2rem; - - a { - padding: var(--cds-global-space-3); - cds-icon { - color: var(--header-branding-icon-color); - } - - &.nav-link{ - overflow: hidden; - } - } - - .title { - font-size: 1rem; - text-overflow: ellipsis; - overflow: hidden; - - &.short { - display: none; - } - } - - .version { - margin-left: 0.3rem; - font-size: 1rem; - color: var(--clr-header-title-color, #fafafa); - font-weight: var(--clr-header-title-font-weight, 400); - font-family: var(--clr-header-title-font-family, Metropolis, "Avenir Next", "Helvetica Neue", Arial, sans-serif); - letter-spacing: 0.01em; - line-height: 3rem; - text-decoration: none; - } - } - .header-nav{ - .nav-link{ - &.active { - background-color: rgba(255,255,255,.15); - opacity: 1; - } - } - --clr-vertical-nav-bg-color: hsl(198, 0%, 91%); - } - --clr-header-bg-color: hsl(198, 0%, 20%); -} - -@media screen and (max-width: 768px) { - .header { - .branding { - a { - cds-icon { - color: var(--header-branding-icon-color-mobile); - } - } - - &.short-title { - .title.short { - display: flex; - } - .title { - display: none; - } - } - } - } -} - -/** FOOTER -------------------------------------------------------------- */ -.footer { - background-color: var(--clr-vertical-nav-bg-color, hsl(198, 0%, 91%)); - padding: 0.2rem 1rem; - - p { - margin: 0; - } -} - -.main-container .content-container .footer { - position: fixed; - bottom: 0px; - width: 100%; -} - -/** CONTENT -------------------------------------------------------------- */ -// adjust padding of main container for map!!! -.main-container .content-container .content-area { - &.map-view { - padding: 0; - } -} - -.content-area { - background: #fff; - color: var(--clr-color-neutral-700, var(--fallback-color-no-clr)); -} - - -.text-primary { - color: var(--clr-color-action-600, var(--fallback-color-no-clr)); -} diff --git a/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-inputs.scss b/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-inputs.scss deleted file mode 100644 index cd1478917..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-inputs.scss +++ /dev/null @@ -1,33 +0,0 @@ -/** BUTTONS */ -button:focus { - outline: none; - box-shadow: 0 0 1pt 1pt var(--clr-color-action-600, var(--fallback-color-no-clr)); -} - -.iconButton:hover { - cursor: pointer; - color: var(--clr-color-action-600, var(--fallback-color-no-clr)); -} - -.iconButton-drpDwn { - cursor: pointer; - transform: rotate(180deg); -} - -.iconButton-drpDwn-active { - cursor: pointer; - color: var(--clr-color-action-600, var(--fallback-color-no-clr)); -} - -.headerButton:hover { - cursor: pointer; -} - -.ukis-range-input { - --clr-forms-range-track-color: var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - - &:focus { - outline: none; - box-shadow: 0 0 1pt 1pt var(--clr-color-action-600, var(--fallback-color-no-clr)); - } -} diff --git a/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-layer-nav.scss b/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-layer-nav.scss deleted file mode 100644 index c2e1f5576..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-layer-nav.scss +++ /dev/null @@ -1,218 +0,0 @@ -.clr-vertical-nav { - .layers { - padding-bottom: 2px; - - .nav-divider { - border-width: 1px 0 0 0; - margin: 0.3rem 0; - } - - .layer, - .layergroup { - margin-left: 0.2rem; - - .iconButton { - height: 1rem; - margin: 0 1px; - - &.disabled { - pointer-events: none; - color: var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - cursor: default; - } - - &.active { - color: var(--clr-color-action-600, var(--fallback-color-no-clr)); - } - } - - .head { - display: flex; - - input.hide { - display: none; - - &+label { - position: static; - display: inline; - min-height: auto; - padding-left: 0; - - &:before, - &:after { - content: none; - } - } - } - - .title { - margin-left: 0.2rem; - flex: 1 1 0; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - } - } - - .body { - padding-left: 0; - margin: 0 0 0.3rem 8px; - - .tools { - display: flex; - justify-content: flex-end; - padding-right: 0.2rem; - padding-left: 0.1rem; - - span { - flex: 1 1 0; - } - } - - .layersettings { - .form-group { - display: flex; - - label { - padding-right: 0.4rem; - } - - input { - flex: 1 1 0; - } - - span { - min-width: 1.5rem; - text-align: center; - } - - &.opacity-input { - .clr-form-control { - padding-left: 0.4rem; - margin-top: 0; - } - - label { - display: flex; - } - } - - } - } - } - } - - .layergroup { - .body { - border-left: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - margin: 0 0 0 8px; - - .sublayers:last-child { - .layer { - border-bottom: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - } - } - - .tabsbody { - &.description { - padding: 0.1rem 0.1rem 0.1rem 0.3rem; - word-break: break-word; - } - - &.description, - &.legend { - border-top: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - border-right: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - } - } - - .layer { - margin-left: 0; - border-top: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - border-right: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - - padding: 0.2rem 0 0 0.2rem; - - &:not(.expanded) { - padding: 0.2rem 0 0.2rem 0.2rem; - } - - .body { - margin: 0 0 0 0.6rem; - - .tabsbody { - border-bottom: none; - border-right: none; - border-top: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - } - - .tools { - border-bottom: none; - } - } - - .head { - margin: 0 0.2rem; - } - } - } - - - } - - .layer { - .body { - border-left: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - - - .tools { - border-bottom: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - } - - .tabsbody { - border-bottom: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - border-right: 1px solid var(--clr-color-neutral-400, var(--fallback-color-no-clr)); - - .layersettings .form-group { - padding: 0.2rem; - - .ukis-range-input { - vertical-align: top; - } - } - - .description { - padding: 0.1rem 0.1rem 0.1rem 0.3rem; - word-break: break-word; - } - } - } - } - - h5 { - font-size: 14px; - margin: 0 0 4px 4px; - font-weight: 700; - cursor: pointer; - - .iconButton { - margin-top: 3px; - } - - &.active, - &:hover { - color: var(--clr-color-action-600, var(--fallback-color-no-clr)); - } - } - } - - .lproperties { - border-radius: 5px; - border-top-left-radius: 0px; - border-bottom-right-radius: 0px; - border-color: #c0c0c0; - border-style: solid; - border-width: 0px 0px 1px 1px; - overflow-x: auto; - } -} \ No newline at end of file diff --git a/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-theme.scss b/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-theme.scss deleted file mode 100644 index f87d4c105..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-theme.scss +++ /dev/null @@ -1,31 +0,0 @@ -/** - * https://css-tricks.com/guides/css-custom-properties/ - * https://css-tricks.com/using-custom-properties-modify-components/ - */ - -/** - * https://clarity.design/documentation/themes #CSS Custom Property Dark Theme - * https://github.com/vmware/clarity/search?q=var%28&unscoped_q=var%28&type=Code - * https://raw.githubusercontent.com/mathisscott/clarity-theming-starter/clarity-css-dark-theme/src/_dark-theme.scss - */ - -/** - * NOTE: If your application must support IE11, you must define all your custom properties - * in the `:root {}` selector. Otherwise, the polyfills we use will not recognize - * the overrides in IE. Try to limit the number of `:root {}` declarations in your CSS. - * It's not a performance issue. It's just saner to maintain. - */ - -@use "./ukis-variables"; -@use '@cds/core/global.css'; -// --- overwrite Clarity variables - remove if -@use "./overwrites-clr-variables"; -@use "@clr/ui/src/main"; -// ---------------------------------- -@use "./clr-vertival-nav-layout"; - -@use "./ukis-inputs"; -@use "./ukis-layer-nav"; - - -@use "./ukis-core-ui-layout"; diff --git a/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-variables.scss b/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-variables.scss deleted file mode 100644 index 3731e9505..000000000 --- a/projects/core-ui/schematics/ng-add/files/src/styles/_ukis-variables.scss +++ /dev/null @@ -1,3 +0,0 @@ -:root{ - --fallback-color-no-clr: rgb(30, 255, 0); -} diff --git a/projects/core-ui/schematics/ng-add/index.ts b/projects/core-ui/schematics/ng-add/index.ts deleted file mode 100644 index 8c85fe1b8..000000000 --- a/projects/core-ui/schematics/ng-add/index.ts +++ /dev/null @@ -1,460 +0,0 @@ -import { - Rule, SchematicContext, Tree, chain, apply, url, mergeWith, move, - filter, externalSchematic, noop, SchematicsException, applyTemplates, schematic -} from '@angular-devkit/schematics'; -import { normalize, join, getSystemPath, Path } from '@angular-devkit/core'; -import { UkisNgAddSchema } from './schema'; - - - -import { - getStyleExt, checkProjectIsApplication, hasSchematicsStyle, getProjectName, checkProjectSourceRoot -} from '../workspace-utils'; -import { addServiceComponentModule, removeServiceComponentModule, ImoduleImport } from '../ast-utils'; -import { updateJsonFile } from '../json-utils'; -import { updateHtmlFile } from '../html-utils'; -import { TsconfigJSON } from '../schema.tsconfig'; -import { UkisNgAddRoutingSchema } from '../add-routing/schema'; -import { updateWorkspace, getWorkspace } from '@schematics/angular/utility/workspace'; - - -/** - * You should add @dlr-eoc/core-ui only to an angular application not a library! - */ -function isProjectTypeApplication(projectName?: string): Rule { - return async (tree: Tree) => { - const workspace = await getWorkspace(tree); - checkProjectIsApplication(workspace, projectName); - }; -} - -// https://angular.io/guide/schematics-for-libraries -// https://dev.to/thisdotmedia/schematics-pt-3-add-tailwind-css-to-your-angular-project-40pp -export function ngAdd(options: UkisNgAddSchema): Rule { - /* return async host => { - }; */ - const addRoutingOptions: UkisNgAddRoutingSchema = { - project: options.project, - addFiles: options.addFiles, - updateFiles: options.updateFiles - }; - - const rules: Rule[] = [ - /** - * externalSchematic not working with @angular-devkit ^8.3.20 (from 9.0.0 ???) - * https://github.com/angular/angular-cli/issues/17085 - * maybe add @angular/clr to dependencies not peer.. - * - * https://github.com/angular/angular-cli/issues/15250 - * https://medium.com/@coco.boudard/hello-1ab084f63a1 - * https://github.com/BottleRocketStudios/ng-momentum/issues/10 - */ - (options.addClr === false) ? noop() : externalSchematic('@clr/angular', 'ng-add', options), - isProjectTypeApplication(options?.project), - (options.addFiles === false) ? noop() : ruleAddFiles(options), - (options.updateFiles === false) ? noop() : ruleAddImportsInAppModule(options.project), - (options.updateFiles === false) ? noop() : ruleUpdateAngularJson(options), - (options.updateFiles === false) ? noop() : ruleUpdateTsConfigFile(), - (options.updateFiles === false) ? noop() : ruleUpdateIndexHtml(options), - (options.routing === false) ? noop() : schematic('add-routing', addRoutingOptions), - (options.routing === true) ? removeViewsAfterRouting(options.project) : noop() - ]; - - return chain(rules); -} - -/** - * - */ -function removeViewsFiles(optionsProject: UkisNgAddSchema['project']): Rule { - return async (tree: Tree, context: SchematicContext) => { - // check if /views/example-view is existing from ng-add - - const workspace = await getWorkspace(tree); - const projectName = getProjectName(workspace, optionsProject); - if (projectName) { - const project = workspace.projects.get(projectName); - - if (project && checkProjectSourceRoot(project, context)) { - const sourcePath = join(tree.root.path, normalize(project.root), project.sourceRoot); // project.sourceRoot - const appPath = join(sourcePath, 'app'); - const viewsPath = join(appPath, 'views/example-view/'); - /** - * loop over the tree and then use tree.delete - * check that the path is correct src/.. or /src/... - */ - tree.visit(file => { - if (file.startsWith(viewsPath)) { - tree.delete(file); - } - }); - } - } - }; -} - -/** - * remove import { ExampleViewComponent } from './views/example-view/example-view.component'; - */ -function removeViewsImports(optionsProject: UkisNgAddSchema['project']): Rule { - const rules: Rule[] = []; - const imports: ImoduleImport[] = [ - { classifiedName: 'ExampleViewComponent', path: './views/example-view/example-view.component', declare: true } - ]; - - imports.map(item => { - rules.push(removeServiceComponentModule(optionsProject, item)); - }); - - // then chain the rules to one - return chain(rules); -} - -/** - * remove import and files for views/example-view; - * - * TODO: warnings - * In your workspace is no style extension defined use default scss - */ -function removeViewsAfterRouting(optionsProject: UkisNgAddSchema['project']): Rule { - return chain([ - removeViewsFiles(optionsProject), - removeViewsImports(optionsProject) - ]); -} - -/** - * add files from template folder - * - src - * - assets - * - styles - * - app - */ -function ruleAddFiles(options: UkisNgAddSchema): Rule { - /** - * app.component.html - * add default template from files - * - * ... - * - * - * TODO: check for style files and replace them e.g. app.component.styl ... - */ - return async (tree: Tree, context: SchematicContext) => { - const workspace = await getWorkspace(tree); - const projectName = getProjectName(workspace, options.project); - if (projectName) { - const project = workspace.projects.get(projectName); - - if (project && checkProjectSourceRoot(project, context)) { - const sourcePath = join(normalize(project.root), project.sourceRoot); // project.sourceRoot - const assetsPath = join(sourcePath, 'assets'); - const stylesPath = join(sourcePath, 'styles'); - const appPath = join(sourcePath, 'app'); - const styleExt = getStyleExt(project, workspace, context); - const templateVariabels = Object.assign(options, { - appPrefix: project.prefix, - styleExt - }); - - const srcTemplateSource = apply(url('./files/src/'), [ - applyTemplates({ ...templateVariabels }), - filter((path: Path) => { - const separator = /[\\|\/]/g; - const pathSeperators = path.match(separator); - if (pathSeperators && pathSeperators.length > 1) { - return false; - } else { - const testFiles = ['favicon.ico', 'styles.css', 'styles.scss']; - /** - * check for existing files the are allowed to overwrite! - */ - const destPath = join(sourcePath, path); - if (tree.exists(destPath)) { - for (const f of testFiles) { - /** delete styles.css file it is replaced with scss */ - if (f === 'styles.css') { - const styleExtTest = join(sourcePath, f); - if (tree.exists(styleExtTest)) { - tree.delete(styleExtTest); - } - } - if (destPath.includes(f)) { - tree.delete(destPath); - } - } - } - return true; - } - }), - // renameTemplateFiles(), // Remove every `.template` suffix from file names. - move(getSystemPath(sourcePath)), - ]); - - const assetsTemplateSource = apply(url('./files/src/assets'), [ - applyTemplates({ ...templateVariabels }), - move(getSystemPath(assetsPath)), - ]); - - const stylesTemplateSource = apply(url('./files/src/styles'), [ - applyTemplates({ ...templateVariabels }), - move(getSystemPath(stylesPath)), - ]); - - const appTemplateSource = apply(url('./files/src/app'), [ - applyTemplates({ ...templateVariabels }), - filter((path: Path) => { - const testFiles = ['app.component.html', 'app.component.ts', 'app.component.css', 'app.component.scss']; - /** - * check for existing files the are allowed to overwrite! - */ - const destPath = join(appPath, path); - if (tree.exists(destPath)) { - for (const f of testFiles) { - /** delete app.component.css file it is replaced with scss */ - if (f === 'app.component.css') { - const styleExtTest = join(appPath, f); - if (tree.exists(styleExtTest)) { - tree.delete(styleExtTest); - } - } - if (destPath.includes(f)) { - tree.delete(destPath); - } - } - } - return true; - }), - move(getSystemPath(appPath)), - ]); - - return chain([ - mergeWith(srcTemplateSource), - mergeWith(appTemplateSource), - mergeWith(assetsTemplateSource), - mergeWith(stylesTemplateSource) - ]); - } - } - }; -} - - -/** - * app.module.ts add imports - * - core-ui components - * - HttpClientModule? - */ -function ruleAddImportsInAppModule(optionsProject: UkisNgAddSchema['project']): Rule { - const rules: Rule[] = []; - const imports: ImoduleImport[] = [ - // { classifiedName: 'HttpClientModule', path: '@angular/common/http', module: true }, - { classifiedName: 'HeaderComponent', path: './components/header/header.component', declare: true }, - { classifiedName: 'GlobalAlertComponent', path: './components/global-alert/global-alert.component', declare: true }, - { classifiedName: 'AlertService', path: './components/global-alert/alert.service', provide: true }, - { classifiedName: 'GlobalProgressComponent', path: './components/global-progress/global-progress.component', declare: true }, - { classifiedName: 'ProgressService', path: './components/global-progress/progress.service', provide: true }, - { classifiedName: 'ExampleViewComponent', path: './views/example-view/example-view.component', declare: true } - ]; - - /** - * create a rule for each insertImport/addProviderToModule because addProviderToModule is not working multiple times in one Rule??? - */ - imports.map(item => { - rules.push(addServiceComponentModule(optionsProject, item)); - }); - - // then chain the rules to one - return chain(rules); -} - -/** - * angular.json - * add to - * - assets - * - styles - */ -function ruleUpdateAngularJson(options: UkisNgAddSchema): Rule { - return chain([ - updateProjectStylesExtension(options), - updateWorkspaceAndProjectStyleExtension(options) - ]); -} - -function updateProjectStylesExtension(options: UkisNgAddSchema) { - return async (tree: Tree) => { - const workspace = await getWorkspace(tree); - const projectName = getProjectName(workspace, options.project); - if (projectName) { - const project = workspace.projects.get(projectName); - if (project) { - project.targets.forEach((target, key) => { - if (target?.options?.styles && Array.isArray(target.options.styles)) { - target.options.styles = replaceStyles(target.options.styles as string[]); - project.targets.set(key, target); - } - }); - return updateWorkspace((workspace) => { - workspace.projects.set(projectName, project); - }); - } - } - }; -} - -/** - * replace styles.css in array if it exists - */ -function replaceStyles(styles: string[]) { - return styles.map(i => { - if (i.includes('styles.css')) { - return i.replace('.css', '.scss'); - } else { - return i; - } - }); -} - -/** - * Update Workspace file extension for style files. - */ -function updateWorkspaceAndProjectStyleExtension(options: UkisNgAddSchema) { - return async (tree: Tree) => { - const workspace = await getWorkspace(tree); - const projectName = getProjectName(workspace, options.project); - if (projectName) { - const project = workspace.projects.get(projectName); - if (project) { - if (hasSchematicsStyle(project.extensions)) { - project.extensions.schematics['@schematics/angular:component'].style = 'scss'; - } else { - if (typeof project.extensions === 'object') { - project.extensions.schematics = { - '@schematics/angular:component': { - style: 'scss' - } - }; - } - } - return updateWorkspace((workspace) => { - workspace.projects.set(projectName, project); - }); - } - } - }; -} - -/** - * tsconfig.base.json add - * - * - compilerOptions.paths - */ -function ruleUpdateTsConfigFile(): Rule { - return (tree: Tree) => { - let path = 'tsconfig.json'; - const pathBase = 'tsconfig.base.json'; - - if (tree.exists(pathBase)) { - path = pathBase; - } else if (!tree.exists(pathBase) && !tree.exists(path)) { - throw new SchematicsException(`${path} or ${pathBase} is not in the workspace!`); - } - - return updateJsonFile(path, (json) => { - const tsconfigPaths = [ - { name: '@dlr-eoc/*', paths: ['./frontend-libraries/projects/*'] } - ]; - - if (!json.compilerOptions) { - json.compilerOptions = {}; - } - - if (!json.compilerOptions.paths) { - json.compilerOptions.paths = {}; - } - - for (const p of tsconfigPaths) { - json.compilerOptions.paths[p.name] = p.paths; - } - - // skipLibCheck for libraries like OpenLayers - if (!json.compilerOptions.skipLibCheck) { - json.compilerOptions.skipLibCheck = true; - } - - return json; - }); - }; -} - -/** - * index.html - * add to - * meta: - * - title - * - short-title - * - description - * - version - * - theme-color - * - viewport? - * - http-equiv? - * - * link: - * - shortcut icon - * - manifest - */ -function ruleUpdateIndexHtml(options: UkisNgAddSchema): Rule { - return async (tree: Tree, context: SchematicContext) => { - const workspace = await getWorkspace(tree); - const projectName = getProjectName(workspace, options.project); - if (projectName) { - const project = workspace.projects.get(projectName); - if (project && checkProjectSourceRoot(project, context)) { - const sourcePath = join(normalize(project.root), project.sourceRoot, 'index.html'); // project.sourceRoot - - let projectTitle = 'Your App'; - if (options.project) { - projectTitle = options.project; - } - - const headerTags = [ - ` \n`, - ` \n`, - ` \n`, - ` \n`, - ` \n`, - ` \n` - ]; - - return chain([ - updateHtmlFile(sourcePath, 'head', 'head', headerTags) - ]); - } - } - }; -} - - -// TODO: maybe update this files instead of replacing them - -/** - * app.component.ts - * add imports for - * - icons - * - services - * - Router - * - variables for UI - * - constructor imports - * - init() - * - getHtmlMeta() - * - * maybe use template file?? - */ - - - -/** - * styles.scss //style.css - * if style.css remove and add file styles.scss from templates - */ - diff --git a/projects/core-ui/schematics/ng-add/index_spec.ts b/projects/core-ui/schematics/ng-add/index_spec.ts deleted file mode 100644 index 5784c8ce7..000000000 --- a/projects/core-ui/schematics/ng-add/index_spec.ts +++ /dev/null @@ -1,393 +0,0 @@ -import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; -import { Schema as WorkspaceOptions } from '@schematics/angular/workspace/schema'; -import { Schema as ApplicationOptions, Style } from '@schematics/angular/application/schema'; -import { UkisNgAddSchema } from './schema'; -import * as path from 'path'; -import { TsconfigJSON } from '../schema.tsconfig'; - - -const collectionPath = require.resolve(path.join(__dirname, '../collection.json')); - - -describe('ng-add Module or standalone', () => { - const schematicRunner = new SchematicTestRunner('@dlr-eoc/schematics', collectionPath); - - let appTree: UnitTestTree; - - const ngAddOptions: UkisNgAddSchema = { - project: 'ukisapp', - routing: false, - addClr: false, - addFiles: true, - updateFiles: true, // TODO: this has to be implemented first - addMap: false, // TODO: this has to be implemented first - auth: false, // TODO: this has to be implemented first - }; - - const workspaceOptions: WorkspaceOptions = { - name: 'workspace', - newProjectRoot: 'projects', - version: '9.0.0' - }; - - const appOptions: ApplicationOptions = { - name: 'ukisapp', - projectRoot: '', - standalone: false, // no standalone API. - inlineStyle: false, - inlineTemplate: false, - routing: true, - style: Style.Css, - skipTests: false - }; - - beforeEach(async () => { - appTree = await schematicRunner.runExternalSchematic('@schematics/angular', 'workspace', workspaceOptions); - appTree = await schematicRunner.runExternalSchematic( - '@schematics/angular', - 'application', - appOptions, - appTree); - }); - - it('should have no workspace schematics', async () => { - const projectFile = JSON.parse(appTree.readContent('/angular.json')); - expect(projectFile.schematics).toBeFalsy(); - }); - - it('should have no projects schematics for style because -> app style: Style.Css', async () => { - const projectFile = JSON.parse(appTree.readContent('/angular.json')); - expect(projectFile.projects[appOptions.name].schematics['@schematics/angular:component']?.style).toBeUndefined(); - }); - - it('should include the angular project file', async () => { - const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); - expect(tree.files.includes('/angular.json')).toBe(true); - }); - - it('should replace style extension in project.targets.options.styles', async () => { - const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); - - const projectFile = JSON.parse(tree.readContent('/angular.json')); - ['build', 'test'].forEach(target => { - const styles: string[] = projectFile.projects[appOptions.name].architect[target].options.styles; - styles.forEach(path => { - if(path.includes('styles.')){ - expect(path.includes('.scss')).toBeTrue(); - } - }); - }); - - }); - - it('should add assets', async () => { - const dimensions = [72, 96, 128, 144, 152, 192, 384, 512]; - const iconBasePath = `/src/assets/icons/icon-`; - const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); - dimensions.every(d => { - const iconPath = `${iconBasePath}${d}x${d}.png`; - expect(tree.files).toContain(iconPath); - // expect(tree.exists(iconPath)).toBeTruthy(); - }); - expect(tree.files).toContain('/src/favicon.ico'); - }); - - it('should add style files', async () => { - const testFiles = [ - '/src/styles.scss', - '/src/styles/_clr-vertival-nav-layout.scss', - '/src/styles/_overwrites-clr-variables.scss', - '/src/styles/_ukis-core-ui-layout.scss', - '/src/styles/_ukis-inputs.scss', - '/src/styles/_ukis-layer-nav.scss', - '/src/styles/_ukis-theme.scss', - '/src/styles/_ukis-variables.scss' - ]; - - const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); - testFiles.every(f => { - expect(tree.files).toContain(f); - // expect(tree.exists(f)).toBeTruthy(); - }); - }); - - it('should add app files', async () => { - const testFiles = [ - '/src/app/app.component.html', - '/src/app/app.component.scss', - '/src/app/app.component.ts', - '/src/app/components/README.md', - - '/src/app/components/header/header.component.html', - '/src/app/components/header/header.component.scss', - '/src/app/components/header/header.component.spec.ts', - '/src/app/components/header/header.component.ts', - - '/src/app/components/icons/eoc_white.svg', - '/src/app/components/icons/ukis-01-01.svg', - '/src/app/components/icons/ukis.svg', - '/src/app/components/icons/ukis.ts', - - 'src/app/components/global-alert/alert.service.spec.ts', - 'src/app/components/global-alert/alert.service.ts', - 'src/app/components/global-alert/global-alert.component.html', - 'src/app/components/global-alert/global-alert.component.scss', - 'src/app/components/global-alert/global-alert.component.spec.ts', - 'src/app/components/global-alert/global-alert.component.ts', - - 'src/app/components/global-progress/global-progress.component.html', - 'src/app/components/global-progress/global-progress.component.scss', - 'src/app/components/global-progress/global-progress.component.spec.ts', - 'src/app/components/global-progress/global-progress.component.ts', - 'src/app/components/global-progress/progress.service.spec.ts', - 'src/app/components/global-progress/progress.service.ts', - - 'src/app/views/example-view/example-view.component.html', - 'src/app/views/example-view/example-view.component.scss', - 'src/app/views/example-view/example-view.component.spec.ts', - 'src/app/views/example-view/example-view.component.ts' - ]; - const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); - testFiles.every(f => { - expect(tree.files).toContain(f); - // expect(tree.exists(f)).toBeTruthy(); - }); - }); - - it('should add project schematics', async () => { - const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); - const projectFile = JSON.parse(tree.readContent('/angular.json')); - expect(projectFile.projects[appOptions.name]?.schematics['@schematics/angular:component']?.style).toBe('scss'); - }); - - it('should update the tsconfig file', async () => { - const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); - const configs = ['/tsconfig.json', '/tsconfig.base.json']; - configs.forEach(configFilePath => { - if (tree.exists(configFilePath)) { - const tsconfigFile = JSON.parse(tree.readContent(configFilePath)) as TsconfigJSON; - const paths = tsconfigFile?.compilerOptions?.paths; - expect(paths).toBeTruthy(); - if (paths) { - expect('@dlr-eoc/*' in paths).toBe(true); - } - - const skipLibCheck = tsconfigFile?.compilerOptions?.skipLibCheck; - expect(skipLibCheck).toBeTruthy(); - if (skipLibCheck !== undefined) { - expect(skipLibCheck).toBe(true); - } - } - }); - }); - - it('should update html files', async () => { - const tree = await schematicRunner.runSchematic('ng-add', ngAddOptions, appTree); - const tsconfigFile = tree.readContent('/src/index.html'); - expect(tsconfigFile).toContain(' { - context.addTask(new NodePackageInstallTask()); - return tree; - }; -} - diff --git a/projects/core-ui/src/lib/global-alert/alert.service.spec.ts b/projects/core-ui/src/lib/global-alert/alert.service.spec.ts deleted file mode 100644 index 66a847772..000000000 --- a/projects/core-ui/src/lib/global-alert/alert.service.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { TestBed, inject } from '@angular/core/testing'; - -import { AlertService } from './alert.service'; - -describe('AlertService', () => { - beforeEach(() => { - TestBed.configureTestingModule({ - providers: [AlertService] - }); - }); - - it('should be created', inject([AlertService], (service: AlertService) => { - expect(service).toBeTruthy(); - })); -}); diff --git a/projects/core-ui/src/lib/global-alert/alert.service.ts b/projects/core-ui/src/lib/global-alert/alert.service.ts deleted file mode 100644 index 1b3447601..000000000 --- a/projects/core-ui/src/lib/global-alert/alert.service.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Subject } from 'rxjs'; - -export interface IAlert { - type: string | 'info'; - text: string; - closeable: boolean; - actions?: { title: string, callback: () => void }[]; -} - -@Injectable({ - providedIn: 'root' -}) -export class AlertService { - private alertSource = new Subject(); - alert$ = this.alertSource.asObservable(); - constructor() { } - alert(alert: IAlert) { - this.alertSource.next(alert); - } -} diff --git a/projects/core-ui/src/lib/global-alert/global-alert.component.html b/projects/core-ui/src/lib/global-alert/global-alert.component.html deleted file mode 100644 index a9575b7d4..000000000 --- a/projects/core-ui/src/lib/global-alert/global-alert.component.html +++ /dev/null @@ -1,25 +0,0 @@ -@if (alert) { - -} diff --git a/projects/core-ui/src/lib/global-alert/global-alert.component.scss b/projects/core-ui/src/lib/global-alert/global-alert.component.scss deleted file mode 100644 index 8b1378917..000000000 --- a/projects/core-ui/src/lib/global-alert/global-alert.component.scss +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/core-ui/src/lib/global-alert/global-alert.component.spec.ts b/projects/core-ui/src/lib/global-alert/global-alert.component.spec.ts deleted file mode 100644 index 8b9d1bb3e..000000000 --- a/projects/core-ui/src/lib/global-alert/global-alert.component.spec.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { GlobalAlertComponent } from './global-alert.component'; -import { AlertService, IAlert } from './alert.service'; -import { ClarityModule } from '@clr/angular'; - -describe('GlobalAlertComponent', () => { - let component: GlobalAlertComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [ClarityModule, GlobalAlertComponent], - providers: [AlertService] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(GlobalAlertComponent); - component = fixture.componentInstance; - component.alert = { - type: 'info', - text: 'test Alert', - closeable: true - } as IAlert; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/core-ui/src/lib/global-alert/global-alert.component.ts b/projects/core-ui/src/lib/global-alert/global-alert.component.ts deleted file mode 100644 index 918d96a28..000000000 --- a/projects/core-ui/src/lib/global-alert/global-alert.component.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Component, Input, Output, EventEmitter } from '@angular/core'; -import { IAlert } from './alert.service'; - -import { ClarityIcons, infoCircleIcon, windowCloseIcon } from '@cds/core/icon'; -import { NgClass } from '@angular/common'; -import { ClrIconModule, ClrAlertModule } from '@clr/angular'; -ClarityIcons.addIcons(...[infoCircleIcon, windowCloseIcon]); - -@Component({ - selector: 'ukis-global-alert', - templateUrl: './global-alert.component.html', - styleUrls: ['./global-alert.component.scss'], - imports: [NgClass, ClrIconModule, ClrAlertModule] -}) -export class GlobalAlertComponent { - @Input() alert!: null | IAlert; - @Output() alertChange = new EventEmitter(); - constructor() { } - - close() { - this.alert = null; - this.alertChange.emit(this.alert); - } - -} diff --git a/projects/core-ui/src/lib/global-progress/global-progress.component.html b/projects/core-ui/src/lib/global-progress/global-progress.component.html deleted file mode 100644 index f02a547cf..000000000 --- a/projects/core-ui/src/lib/global-progress/global-progress.component.html +++ /dev/null @@ -1,15 +0,0 @@ -@if (progress && progress.indeterminate) { - - @if (progress.class) { -
- } -
-} -@if (progress && !progress.indeterminate) { - - @if (progress.class) { -
- } -
-} diff --git a/projects/core-ui/src/lib/global-progress/global-progress.component.scss b/projects/core-ui/src/lib/global-progress/global-progress.component.scss deleted file mode 100644 index bb34a24c2..000000000 --- a/projects/core-ui/src/lib/global-progress/global-progress.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -.progress { - height: 0.5em; -} diff --git a/projects/core-ui/src/lib/global-progress/global-progress.component.spec.ts b/projects/core-ui/src/lib/global-progress/global-progress.component.spec.ts deleted file mode 100644 index 2126c03fb..000000000 --- a/projects/core-ui/src/lib/global-progress/global-progress.component.spec.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { GlobalProgressComponent } from './global-progress.component'; -import { ProgressService, IProgress } from './progress.service'; -import { ClarityModule } from '@clr/angular'; - -describe('GlobalProgressComponent', () => { - let component: GlobalProgressComponent; - let fixture: ComponentFixture; - let progressSvc: ProgressService; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [ClarityModule, GlobalProgressComponent], - providers: [ProgressService] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(GlobalProgressComponent); - component = fixture.componentInstance; - progressSvc = TestBed.inject(ProgressService); - component.progress = { - indeterminate: true - } as IProgress; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/core-ui/src/lib/global-progress/global-progress.component.ts b/projects/core-ui/src/lib/global-progress/global-progress.component.ts deleted file mode 100644 index 2c5d5b9dc..000000000 --- a/projects/core-ui/src/lib/global-progress/global-progress.component.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core'; -import { IProgress } from './progress.service'; -import { NgClass } from '@angular/common'; - -@Component({ - selector: 'ukis-global-progress', - templateUrl: './global-progress.component.html', - styleUrls: ['./global-progress.component.scss'], - imports: [NgClass] -}) -export class GlobalProgressComponent implements OnInit { - @Input() progress!: null | IProgress; - @Output() progressChange = new EventEmitter(); - constructor() { } - - ngOnInit() { - } - -} diff --git a/projects/core-ui/src/lib/global-progress/progress.service.spec.ts b/projects/core-ui/src/lib/global-progress/progress.service.spec.ts deleted file mode 100644 index e6a0f0912..000000000 --- a/projects/core-ui/src/lib/global-progress/progress.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { ProgressService } from './progress.service'; - -describe('ProgressService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: ProgressService = TestBed.inject(ProgressService); - expect(service).toBeTruthy(); - }); -}); diff --git a/projects/core-ui/src/lib/global-progress/progress.service.ts b/projects/core-ui/src/lib/global-progress/progress.service.ts deleted file mode 100644 index 500f3c3d0..000000000 --- a/projects/core-ui/src/lib/global-progress/progress.service.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Subject } from 'rxjs'; - -export interface IProgress { - value?: number; - max?: number; - class?: string; - indeterminate?: boolean; -} - -@Injectable({ - providedIn: 'root' -}) -export class ProgressService { - private progressSource = new Subject(); - progress$ = this.progressSource.asObservable(); - constructor() { } - progress(progress: IProgress) { - this.progressSource.next(progress); - } -} diff --git a/projects/core-ui/src/lib/header/README.md b/projects/core-ui/src/lib/header/README.md deleted file mode 100644 index fb6a0cd19..000000000 --- a/projects/core-ui/src/lib/header/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# UKIS Header - -- This is a container element to insert all elements with class *.header-action-el* or *.header-nav-el* into the Clarity header *header-actions* and *header-nav* viva - angular Content Projection and ng-content. For further information what items can be used see [Clarity Header](https://clarity.design/documentation/header) -- you can also set the Header title with [ukis-title]="title" - -### how to use this in a ukis-angular (@dlr-eoc/core-ui) project - -For examples [see demo maps](../demo-maps/README.md) - -#### in the app.component.html -``` - - ... - -
{{route.data.title}} - - - ... - - - ... - -``` - -#### Inputs -- ukis-title -- ukis-short-title -- ukis-version - diff --git a/projects/core-ui/src/lib/header/header.component.html b/projects/core-ui/src/lib/header/header.component.html deleted file mode 100644 index c8416f463..000000000 --- a/projects/core-ui/src/lib/header/header.component.html +++ /dev/null @@ -1,27 +0,0 @@ - -
- - - - - - - - {{title}} - {{shortTitle}} - - @if (version) { - {{version}} - } -
-
- -
- - - -
- -
-
\ No newline at end of file diff --git a/projects/core-ui/src/lib/header/header.component.scss b/projects/core-ui/src/lib/header/header.component.scss deleted file mode 100644 index 8b1378917..000000000 --- a/projects/core-ui/src/lib/header/header.component.scss +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/core-ui/src/lib/header/header.component.spec.ts b/projects/core-ui/src/lib/header/header.component.spec.ts deleted file mode 100644 index 53ec787f7..000000000 --- a/projects/core-ui/src/lib/header/header.component.spec.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { HeaderComponent } from './header.component'; -import { ClarityModule, ClrMainContainer } from '@clr/angular'; -import { Component } from '@angular/core'; - - -@Component({ - selector: 'ukis-nested-component', - template: ``, - imports: [ClarityModule, HeaderComponent] -}) -class NestedTestComponent { } - -describe('HeaderComponent', () => { - let component: NestedTestComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [ClarityModule, HeaderComponent, NestedTestComponent], - declarations: [ClrMainContainer] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(NestedTestComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/core-ui/src/lib/header/header.component.ts b/projects/core-ui/src/lib/header/header.component.ts deleted file mode 100644 index b8fe4345f..000000000 --- a/projects/core-ui/src/lib/header/header.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, OnInit, Input } from '@angular/core'; - -import { ClarityIcons, timesIcon } from '@cds/core/icon'; -import { ukisIcon, dlrIcon } from '../icons/ukis'; -import { ClrNavigationModule, ClrIconModule, ClrStandaloneCdkTrapFocus } from '@clr/angular'; -import { NgClass } from '@angular/common'; -ClarityIcons.addIcons(ukisIcon, dlrIcon, timesIcon); - -@Component({ - selector: 'ukis-header', - templateUrl: './header.component.html', - styleUrls: ['./header.component.scss'], - imports: [ClrNavigationModule, NgClass, ClrIconModule, ClrStandaloneCdkTrapFocus] -}) -export class HeaderComponent implements OnInit { - @Input('ukis-title') title: string = ''; - @Input('ukis-short-title') shortTitle: string = ''; - @Input('ukis-version') version: string = ''; - constructor() { } - - ngOnInit() { - } - -} diff --git a/projects/core-ui/src/lib/icons/DLRLogoWhite.svg b/projects/core-ui/src/lib/icons/DLRLogoWhite.svg deleted file mode 100644 index 93f588453..000000000 --- a/projects/core-ui/src/lib/icons/DLRLogoWhite.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - diff --git a/projects/core-ui/src/lib/icons/eoc_white.svg b/projects/core-ui/src/lib/icons/eoc_white.svg deleted file mode 100644 index 05ac630c1..000000000 --- a/projects/core-ui/src/lib/icons/eoc_white.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - diff --git a/projects/core-ui/src/lib/icons/ukis-01-01.svg b/projects/core-ui/src/lib/icons/ukis-01-01.svg deleted file mode 100644 index 1214ab3ca..000000000 --- a/projects/core-ui/src/lib/icons/ukis-01-01.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - diff --git a/projects/core-ui/src/lib/icons/ukis.svg b/projects/core-ui/src/lib/icons/ukis.svg deleted file mode 100644 index 936e46ce5..000000000 --- a/projects/core-ui/src/lib/icons/ukis.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - diff --git a/projects/core-ui/src/lib/icons/ukis.ts b/projects/core-ui/src/lib/icons/ukis.ts deleted file mode 100644 index 4cc2db2b4..000000000 --- a/projects/core-ui/src/lib/icons/ukis.ts +++ /dev/null @@ -1,36 +0,0 @@ -type IconSvgString = string; -type IconNameString = string; -type IconShapeTuple = [IconNameString,IconSvgString]; - -export const ukisIcon: IconShapeTuple = ['ukis-icon', ` -ukis - - - - -`]; - -export const eocIcon: IconShapeTuple = ['eoc-icon', ` -eoc - -`]; - -export const dlrIcon: IconShapeTuple = ['dlr-icon', ` -dlr - -`]; diff --git a/projects/core-ui/src/public-api.ts b/projects/core-ui/src/public-api.ts deleted file mode 100644 index cc210fefc..000000000 --- a/projects/core-ui/src/public-api.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Public API Surface of core-ui - */ - -export * from './lib/global-progress/global-progress.component'; -export * from './lib/global-progress/progress.service'; -export * from './lib/global-alert/global-alert.component'; -export * from './lib/global-alert/alert.service'; -export * from './lib/header/header.component'; -export * from './lib/icons/ukis'; diff --git a/projects/core-ui/src/test.ts b/projects/core-ui/src/test.ts deleted file mode 100644 index 70b007097..000000000 --- a/projects/core-ui/src/test.ts +++ /dev/null @@ -1,17 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'zone.js'; -import 'zone.js/testing'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), { - teardown: { destroyAfterEach: false } -} -); diff --git a/projects/core-ui/tsconfig.lib.json b/projects/core-ui/tsconfig.lib.json deleted file mode 100644 index 6e06ad542..000000000 --- a/projects/core-ui/tsconfig.lib.json +++ /dev/null @@ -1,25 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/lib", - "target": "es2015", - "declaration": true, - "declarationMap": true, - "inlineSources": true, - "types": [], - "lib": [ - "dom", - "es2018" - ] - }, - "angularCompilerOptions": { - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "enableResourceInlining": true - }, - "exclude": [ - "src/test.ts", - "**/*.spec.ts" - ] -} diff --git a/projects/core-ui/tsconfig.lib.prod.json b/projects/core-ui/tsconfig.lib.prod.json deleted file mode 100644 index 06de549e1..000000000 --- a/projects/core-ui/tsconfig.lib.prod.json +++ /dev/null @@ -1,10 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "./tsconfig.lib.json", - "compilerOptions": { - "declarationMap": false - }, - "angularCompilerOptions": { - "compilationMode": "partial" - } -} diff --git a/projects/core-ui/tsconfig.schematics.json b/projects/core-ui/tsconfig.schematics.json deleted file mode 100644 index 92a3d8c3e..000000000 --- a/projects/core-ui/tsconfig.schematics.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "lib": [ - "es2018", - "dom" - ], - "declaration": true, - "module": "commonjs", - "moduleResolution": "node", - "noEmitOnError": true, - "noFallthroughCasesInSwitch": true, - "noImplicitAny": true, - "noImplicitThis": true, - "noUnusedParameters": true, - "noUnusedLocals": true, - "rootDir": "schematics", - "outDir": "../../dist/core-ui/schematics", - "skipDefaultLibCheck": true, - "skipLibCheck": true, - "sourceMap": true, - "strictNullChecks": true, - "target": "es6", - "types": [ - "jasmine", - "node" - ] - }, - "include": [ - "schematics/**/*" - ], - "exclude": [ - "schematics/*/files/**/*" - ] -} diff --git a/projects/core-ui/tsconfig.spec.json b/projects/core-ui/tsconfig.spec.json deleted file mode 100644 index 715dd0a5d..000000000 --- a/projects/core-ui/tsconfig.spec.json +++ /dev/null @@ -1,17 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/spec", - "types": [ - "jasmine" - ] - }, - "files": [ - "src/test.ts" - ], - "include": [ - "**/*.spec.ts", - "**/*.d.ts" - ] -} diff --git a/projects/core-ui/tslint.json b/projects/core-ui/tslint.json deleted file mode 100644 index bdd3d3033..000000000 --- a/projects/core-ui/tslint.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [ - true, - "attribute", - "ukis", - "camelCase" - ], - "component-selector": [ - true, - "element", - "ukis", - "kebab-case" - ] - } -} diff --git a/projects/demo-auth/README.md b/projects/demo-auth/README.md index 6a70c79ba..943b0fe30 100644 --- a/projects/demo-auth/README.md +++ b/projects/demo-auth/README.md @@ -1,8 +1,8 @@ # This is an angular demo application to show how to use UKIS mapping application with authentication -This application was generated with `ng generate application demo-auth` and then `@dlr-eoc/core-ui:ng-add --routing=true` was applied. +This application was generated with `ng generate application demo-auth` and then `@dlr-eoc/ngx-ukis-ui-clarity:ng-add --routing=true` was applied. -- This app depends on [*@dlr-eoc/user-info*](../user-info/README.md) +- This app depends on [*@dlr-eoc/ngx-ukis-ui-clarity (user-info)*](../user-info/README.md) - It implements an AuthGuardService to protect routes - BasicAuthService which implements IAuthService (your business logic for authentication and authorization) - HttpAuthInterceptor which uses the AuthService to add a basic token on your angular http requests diff --git a/projects/demo-auth/package.json b/projects/demo-auth/package.json index 273a953b3..43cf5cc74 100644 --- a/projects/demo-auth/package.json +++ b/projects/demo-auth/package.json @@ -22,9 +22,8 @@ }, "dependencies": { "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/layer-control": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0", "@dlr-eoc/cookie-alert": "16.0.0-next.0", - "@dlr-eoc/user-info": "16.0.0-next.0", "@dlr-eoc/base-layers-raster": "16.0.0-next.0" }, "devDependencies": { diff --git a/projects/demo-auth/src/app/app.component.ts b/projects/demo-auth/src/app/app.component.ts index 67eeb2d5d..9029cbc86 100644 --- a/projects/demo-auth/src/app/app.component.ts +++ b/projects/demo-auth/src/app/app.component.ts @@ -8,7 +8,7 @@ import { Router, RouterLink, RouterLinkActive, RouterOutlet } from '@angular/rou /** for User */ import { Subscription } from 'rxjs'; -import { UserService, IUser } from '@dlr-eoc/user-info'; +import { UserService, IUser } from '@dlr-eoc/ngx-ukis-ui-clarity'; import { CookieAlertComponent } from '@dlr-eoc/cookie-alert'; import { BasicAuthService } from './auth/basic-auth.service'; import { ClrMainContainerModule, ClrNavigationModule } from '@clr/angular'; diff --git a/projects/demo-auth/src/app/auth/auth-guard.service.ts b/projects/demo-auth/src/app/auth/auth-guard.service.ts index c0ba789cc..66964b454 100644 --- a/projects/demo-auth/src/app/auth/auth-guard.service.ts +++ b/projects/demo-auth/src/app/auth/auth-guard.service.ts @@ -1,6 +1,6 @@ import { Injectable, Inject } from '@angular/core'; import { Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; -import { UserService, IUser } from '@dlr-eoc/user-info'; +import { UserService, IUser } from '@dlr-eoc/ngx-ukis-ui-clarity'; import { AlertService } from '../components/global-alert/alert.service'; import { Observable } from 'rxjs'; import { BasicAuthService } from './basic-auth.service'; diff --git a/projects/demo-auth/src/app/auth/basic-auth.service.ts b/projects/demo-auth/src/app/auth/basic-auth.service.ts index 3db1cf666..882080f88 100644 --- a/projects/demo-auth/src/app/auth/basic-auth.service.ts +++ b/projects/demo-auth/src/app/auth/basic-auth.service.ts @@ -2,7 +2,7 @@ import { Injectable, Inject } from '@angular/core'; import { BehaviorSubject, Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { HttpClient } from '@angular/common/http'; -import { IUserinfo, IAuthService, IBasicUser } from '@dlr-eoc/user-info'; +import { IUserinfo, IAuthService, IBasicUser } from '@dlr-eoc/ngx-ukis-ui-clarity'; export class Auth { userName: string; diff --git a/projects/demo-auth/src/app/route-components/route-login/route-login.component.ts b/projects/demo-auth/src/app/route-components/route-login/route-login.component.ts index 913d79335..73fb560d2 100644 --- a/projects/demo-auth/src/app/route-components/route-login/route-login.component.ts +++ b/projects/demo-auth/src/app/route-components/route-login/route-login.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit, HostBinding } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { LoginComponent } from '@dlr-eoc/user-info'; +import { LoginComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; @Component({ selector: 'app-route-login', diff --git a/projects/demo-auth/src/app/route-components/route-map/route-map.component.ts b/projects/demo-auth/src/app/route-components/route-map/route-map.component.ts index b66051560..b56578c96 100644 --- a/projects/demo-auth/src/app/route-components/route-map/route-map.component.ts +++ b/projects/demo-auth/src/app/route-components/route-map/route-map.component.ts @@ -10,7 +10,7 @@ import { MapOlService } from '@dlr-eoc/map-ol'; import { ClarityIcons, layersIcon, worldIcon} from '@cds/core/icon'; import { MapOlComponent } from '@dlr-eoc/map-ol'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; -import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, worldIcon]); diff --git a/projects/demo-auth/src/app/route-components/route-user/route-user.component.ts b/projects/demo-auth/src/app/route-components/route-user/route-user.component.ts index c77f83303..82427da8c 100644 --- a/projects/demo-auth/src/app/route-components/route-user/route-user.component.ts +++ b/projects/demo-auth/src/app/route-components/route-user/route-user.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, HostBinding } from '@angular/core'; -import { UserDetailsComponent } from '@dlr-eoc/user-info'; +import { UserDetailsComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; @Component({ selector: 'app-route-user', diff --git a/projects/demo-maps/README.md b/projects/demo-maps/README.md index 18dab77d8..c3862a49c 100644 --- a/projects/demo-maps/README.md +++ b/projects/demo-maps/README.md @@ -1,6 +1,6 @@ # This is an angular demo application to show how to create a UKIS mapping application -This application was generated with `ng generate application demo-maps` and then `@dlr-eoc/core-ui:ng-add --routing=true` was applied. +This application was generated with `ng generate application demo-maps` and then `@dlr-eoc/ngx-ukis-ui-clarity:ng-add --routing=true` was applied. In the src folder you can find a few route-components which show the usage of main UKIS frontend components, e. g.: - [layers](src/app/route-components/route-example-layers/route-map.component.ts) diff --git a/projects/demo-maps/package.json b/projects/demo-maps/package.json index 3099f0da4..547baabcd 100644 --- a/projects/demo-maps/package.json +++ b/projects/demo-maps/package.json @@ -23,8 +23,7 @@ }, "dependencies": { "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/layer-control": "16.0.0-next.0", - "@dlr-eoc/map-tools": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0", "@dlr-eoc/base-layers-raster": "16.0.0-next.0", "@dlr-eoc/map-three": "16.0.0-next.0", "@dlr-eoc/utils-maps": "16.0.0-next.0", diff --git a/projects/demo-maps/src/app/app.routes.ts b/projects/demo-maps/src/app/app.routes.ts index 9b5acea47..a823b9b43 100644 --- a/projects/demo-maps/src/app/app.routes.ts +++ b/projects/demo-maps/src/app/app.routes.ts @@ -20,7 +20,7 @@ export const routes: Routes = [ loadChildren: () => import('./route-components/route-example-projection/route-map2.module').then(m => m.RouteMap2Module), data: { title: 'Projection', - description: 'Example shows how to work with projections using ukis-projection-switch from @dlr-eoc/map-tools.', + description: 'Example shows how to work with projections using ukis-projection-switch from @dlr-eoc/ngx-ukis-ui-clarity (map-tools).', img: 'assets/route-projection.jpg' } }, diff --git a/projects/demo-maps/src/app/route-components/route-example-cesium/route-example-cesium.component.ts b/projects/demo-maps/src/app/route-components/route-example-cesium/route-example-cesium.component.ts index 465ae3d10..6990ae81c 100644 --- a/projects/demo-maps/src/app/route-components/route-example-cesium/route-example-cesium.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-cesium/route-example-cesium.component.ts @@ -15,7 +15,7 @@ import { ClarityIcons, layersIcon, worldIcon, blockIcon, cogIcon, mapIcon } from import { MapOlComponent } from '@dlr-eoc/map-ol'; import { MapCesiumComponent } from '@dlr-eoc/map-cesium'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; -import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, worldIcon, blockIcon, cogIcon, mapIcon]); @Component({ diff --git a/projects/demo-maps/src/app/route-components/route-example-custom-layers/route-map4.component.ts b/projects/demo-maps/src/app/route-components/route-example-custom-layers/route-map4.component.ts index 2a313b3ea..212d61f71 100644 --- a/projects/demo-maps/src/app/route-components/route-example-custom-layers/route-map4.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-custom-layers/route-map4.component.ts @@ -34,7 +34,7 @@ import { Popup2Component } from '../../components/popup2/popup2.component'; import { ClarityIcons, layersIcon, paperclipIcon, worldIcon } from '@cds/core/icon'; import { MapOlComponent } from '@dlr-eoc/map-ol'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; -import { LayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, paperclipIcon, worldIcon]); diff --git a/projects/demo-maps/src/app/route-components/route-example-events/route-map3.component.ts b/projects/demo-maps/src/app/route-components/route-example-events/route-map3.component.ts index 7c4eff1eb..5ce805c64 100644 --- a/projects/demo-maps/src/app/route-components/route-example-events/route-map3.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-events/route-map3.component.ts @@ -27,8 +27,7 @@ import { AlertService } from '../../components/global-alert/alert.service'; import { ClarityIcons, layersIcon, cogIcon, compassIcon, downloadIcon } from '@cds/core/icon'; import { MapOlComponent } from '@dlr-eoc/map-ol'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; -import { LayerControlComponent } from '@dlr-eoc/layer-control'; -import { MousePositionComponent } from '@dlr-eoc/map-tools'; +import { LayerControlComponent, MousePositionComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, cogIcon, compassIcon, downloadIcon]); @Component({ diff --git a/projects/demo-maps/src/app/route-components/route-example-layer-style/route-map6.component.ts b/projects/demo-maps/src/app/route-components/route-example-layer-style/route-map6.component.ts index 99e08747c..715d40c4f 100644 --- a/projects/demo-maps/src/app/route-components/route-example-layer-style/route-map6.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-layer-style/route-map6.component.ts @@ -9,7 +9,7 @@ import { RasterFeatureInfoComponent } from '../../components/raster-feature-info import { ClarityIcons, layersIcon, worldIcon } from '@cds/core/icon'; import { MapOlComponent } from '@dlr-eoc/map-ol'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; -import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, worldIcon]); @Component({ diff --git a/projects/demo-maps/src/app/route-components/route-example-layers/route-map.component.ts b/projects/demo-maps/src/app/route-components/route-example-layers/route-map.component.ts index 77f4156d0..44aeaa1cd 100644 --- a/projects/demo-maps/src/app/route-components/route-example-layers/route-map.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-layers/route-map.component.ts @@ -22,7 +22,7 @@ import { ClarityIcons, layersIcon, worldIcon, cogIcon, downloadCloudIcon, syncIc import { MapOlComponent } from '@dlr-eoc/map-ol'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; -import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, worldIcon, cogIcon, downloadCloudIcon, syncIcon]); @Component({ diff --git a/projects/demo-maps/src/app/route-components/route-example-layout/route-map5.component.ts b/projects/demo-maps/src/app/route-components/route-example-layout/route-map5.component.ts index 52d0eef33..8b22456d7 100644 --- a/projects/demo-maps/src/app/route-components/route-example-layout/route-map5.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-layout/route-map5.component.ts @@ -10,7 +10,7 @@ import { ClarityIcons, layersIcon, worldIcon, tableIcon } from '@cds/core/icon'; import { NgStyle, NgClass } from '@angular/common'; import { MapOlComponent } from '@dlr-eoc/map-ol'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; -import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, worldIcon, tableIcon]); @Component({ diff --git a/projects/demo-maps/src/app/route-components/route-example-maplibre/route-example-maplibre.component.ts b/projects/demo-maps/src/app/route-components/route-example-maplibre/route-example-maplibre.component.ts index d0fc7b241..462a24821 100644 --- a/projects/demo-maps/src/app/route-components/route-example-maplibre/route-example-maplibre.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-maplibre/route-example-maplibre.component.ts @@ -12,7 +12,7 @@ import { Subscription } from 'rxjs'; import { ClarityIcons, layersIcon, worldIcon, cogIcon } from '@cds/core/icon'; import { ClrVerticalNavModule, ClrIconModule } from '@clr/angular'; -import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, worldIcon, cogIcon]); @Component({ diff --git a/projects/demo-maps/src/app/route-components/route-example-olperformance/route-map7.component.ts b/projects/demo-maps/src/app/route-components/route-example-olperformance/route-map7.component.ts index 0e497bb13..3e450bb8b 100644 --- a/projects/demo-maps/src/app/route-components/route-example-olperformance/route-map7.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-olperformance/route-map7.component.ts @@ -11,7 +11,7 @@ import { ClarityIcons, layersIcon, clockIcon } from '@cds/core/icon'; import { MapOlComponent } from '@dlr-eoc/map-ol'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; import { PerformanceComponent } from '../../components/performance/performance.component'; -import { LayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, layersIcon, clockIcon]); @Component({ diff --git a/projects/demo-maps/src/app/route-components/route-example-owc-layers/route-example-owc-layers.component.ts b/projects/demo-maps/src/app/route-components/route-example-owc-layers/route-example-owc-layers.component.ts index e4ba27316..85bee2c32 100644 --- a/projects/demo-maps/src/app/route-components/route-example-owc-layers/route-example-owc-layers.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-owc-layers/route-example-owc-layers.component.ts @@ -10,7 +10,7 @@ import { ZommNumberControl } from '../route-example-layers/ol-custom-control'; import { ClarityIcons, layersIcon, worldIcon, exportIcon } from '@cds/core/icon'; import { MapOlComponent } from '@dlr-eoc/map-ol'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; -import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent, BaseLayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, worldIcon, exportIcon ]); @Component({ diff --git a/projects/demo-maps/src/app/route-components/route-example-projection/route-map2.component.ts b/projects/demo-maps/src/app/route-components/route-example-projection/route-map2.component.ts index c17059b0d..e32eb7381 100644 --- a/projects/demo-maps/src/app/route-components/route-example-projection/route-map2.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-projection/route-map2.component.ts @@ -3,12 +3,10 @@ import { LayersService, RasterLayer, VectorLayer } from '@dlr-eoc/services-layer import { MapStateService } from '@dlr-eoc/services-map-state'; import { MapOlService, IMapControls, MapOlComponent } from '@dlr-eoc/map-ol'; import { OsmTileLayer } from '@dlr-eoc/base-layers-raster'; -import { IProjDef } from '@dlr-eoc/map-tools'; import { ClarityIcons, layersIcon, mapIcon, compassIcon } from '@cds/core/icon'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule } from '@clr/angular'; -import { LayerControlComponent } from '@dlr-eoc/layer-control'; -import { ProjectionSwitchComponent, MousePositionComponent, MapNavigatorComponent } from '@dlr-eoc/map-tools'; +import { LayerControlComponent, IProjDef, ProjectionSwitchComponent, MousePositionComponent, MapNavigatorComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, mapIcon, compassIcon]); @Component({ diff --git a/projects/demo-maps/src/app/route-components/route-example-threejs/route-example-threejs.component.ts b/projects/demo-maps/src/app/route-components/route-example-threejs/route-example-threejs.component.ts index c83d45275..e2767e6da 100644 --- a/projects/demo-maps/src/app/route-components/route-example-threejs/route-example-threejs.component.ts +++ b/projects/demo-maps/src/app/route-components/route-example-threejs/route-example-threejs.component.ts @@ -14,7 +14,7 @@ import { ClarityIcons, layersIcon, infoStandardIcon } from '@cds/core/icon'; import { MapOlComponent } from '@dlr-eoc/map-ol'; import { MapThreeComponent } from '@dlr-eoc/map-three'; import { ClrVerticalNavModule, ClrStandaloneCdkTrapFocus, ClrNavigationModule, ClrIconModule, ClrAlertModule } from '@clr/angular'; -import { LayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ClarityIcons.addIcons(...[layersIcon, infoStandardIcon]); @Component({ diff --git a/projects/layer-control/README.md b/projects/layer-control/README.md deleted file mode 100644 index 4154820fa..000000000 --- a/projects/layer-control/README.md +++ /dev/null @@ -1,132 +0,0 @@ -# @dlr-eoc/layer-control - -### how to use this in a ukis-angular project - -For examples [see demo maps](../demo-maps/README.md) - -#### add the following dependencies to the package.json -- "@dlr-eoc/map-ol" -- "@dlr-eoc/layer-control" - -#### add the following to route-view.component.ts -``` -import { MapOlComponent } from '@dlr-eoc/map-ol'; -import { LayerControlComponent } from '@dlr-eoc/layer-control'; - -... - imports: [ - ... - MapOlComponent, - LayerControlComponent - ] -``` - - -#### add the following to a route-view.component.html -``` -
- -
- - - - - - - Overlays - - - - - - - - - Layers - - - - - - - - Baselayers - - - - - - -``` - -#### add the following to a route-view.component.ts -``` -import { LayersService, Layer } from '@dlr-eoc/services-layers'; -import { MapStateService } from '@dlr-eoc/services-map-state'; -import { IMapControls } from '@dlr-eoc/map-ol'; - -import { OsmTileLayer } from '@dlr-eoc/base-layers-raster'; -``` - -``` -controls: IMapControls; - constructor( - public layerSvc: LayersService, - public mapStateSvc: MapStateService -) { } -``` - -``` -ngOnInit() { - this.addBaselayers(); - this.addLayers(); - this.addOverlays() -} - -addBaselayers() { - const layers: Layer[] = [ - ... - ]; - - layers.map(l => this.layerSvc.addLayer(l, 'Baselayers')); -} - -addLayers() { - const layers: Layer[] = [ - ... - ]; - - layers.map(l => this.layerSvc.addLayer(l, 'Layers')); -} - -addOverlays(){ - const layers: Layer[] = [ - ... - ]; - - layers.map(l => this.layerSvc.addLayer(l, 'Overlays')); -} -``` - - - -=== - -This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14. - -## Code scaffolding - -Run `ng generate component component-name --project layer-control` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project layer-control`. -> Note: Don't forget to add `--project layer-control` or else it will be added to the default project in your `angular.json` file. - -## Build - -Run `ng build layer-control` to build the project. The build artifacts will be stored in the `dist/` directory. - -## Running unit tests - -Run `ng test layer-control` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/projects/layer-control/karma.conf.js b/projects/layer-control/karma.conf.js deleted file mode 100644 index 5f4a1d06a..000000000 --- a/projects/layer-control/karma.conf.js +++ /dev/null @@ -1,44 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client: { - jasmine: { - // you can add configuration options for Jasmine here - // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html - // for example, you can disable the random execution with `random: false` - // or set a specific seed with `seed: 4321` - }, - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - jasmineHtmlReporter: { - suppressAll: true // removes the duplicated traces - }, - coverageReporter: { - dir: require('path').join(__dirname, '../../coverage/layer-control'), - subdir: '.', - reporters: [ - { type: 'html' }, - { type: 'text-summary' } - ] - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false, - restartOnFileChange: true - }); -}; diff --git a/projects/layer-control/ng-package.json b/projects/layer-control/ng-package.json deleted file mode 100644 index 97e2afe2d..000000000 --- a/projects/layer-control/ng-package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", - "dest": "../../dist/layer-control", - "lib": { - "entryFile": "src/public-api.ts" - }, - "allowedNonPeerDependencies": [ - "tslib", - "@dlr-eoc/services-layers", - "@dlr-eoc/services-map-state", - "@dlr-eoc/ngx-ukis-utilities", - "@angular/cdk" - ] -} diff --git a/projects/layer-control/package.json b/projects/layer-control/package.json deleted file mode 100644 index 496faa8dd..000000000 --- a/projects/layer-control/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "@dlr-eoc/layer-control", - "version": "16.0.0-next.0", - "main": "src/public-api", - "license": "Apache-2.0", - "author": "Team UKIS", - "description": "This is a angular module that exports some UI components to manage layers in mapping applications.", - "keywords": [ - "angular", - "Clarity Design", - "mapping", - "layers", - "layer toggle", - "layer control", - "layer tree" - ], - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "@angular/forms": "^19.2.12", - "@clr/angular": "^17.10.0", - "@cds/core": "^6.15.1", - "@clr/ui": "^17.10.0", - "rxjs": "~7.8.2" - }, - "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", - "@angular/cdk": "^19.2.12", - "tslib": "^2.6.3" - }, - "devDependencies": { - "zone.js": "~0.15.0", - "@angular/platform-browser-dynamic": "^19.2.12" - } -} diff --git a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.html b/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.html deleted file mode 100644 index 5e6a7ac51..000000000 --- a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.html +++ /dev/null @@ -1,12 +0,0 @@ -@for (group of layergroups | reverse; track group) { -
- @if (isLayerGroup(group)) { - - } - @if (!isLayerGroup(group)) { - - } -
-} diff --git a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.scss b/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.scss deleted file mode 100644 index 8b1378917..000000000 --- a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.scss +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.spec.ts b/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.spec.ts deleted file mode 100644 index 456e720aa..000000000 --- a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.spec.ts +++ /dev/null @@ -1,135 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { BaseLayerControlComponent } from './base-layer-control.component'; -import { ReversePipe } from '@dlr-eoc/ngx-ukis-utilities'; -import { LayersService } from '@dlr-eoc/services-layers'; - - -import { MapStateService } from '@dlr-eoc/services-map-state'; -import { Component, Input, Injectable } from '@angular/core'; -import { of } from 'rxjs'; -import { RasterLayer } from '@dlr-eoc/services-layers'; -import { LayerGroup } from '@dlr-eoc/services-layers'; - -/** - * this service extends the LayersService to mimik its behaviour. The getLayerGroups function is overwritten to - * get test data for following tests. - */ -@Injectable() -class MockLayersService extends LayersService { - - getLayerGroups() { - const l = new RasterLayer( - { - url: 'blabl', - name: 'name', - id: '5', - type: 'wms', - filtertype: 'Baselayers' - } - ); - const group = new LayerGroup({ - id: 'g', - name: 'Test', - layers: [l], - filtertype: 'Baselayers' - }); - return of([group]); - } -} - - - -describe('BaseLayerControlComponent', () => { - let component: BaseLayerControlComponent; - let fixture: ComponentFixture; - let layersSvc: LayersService; - let mapStateSvc: MapStateService; - - beforeEach(waitForAsync(() => { - - - TestBed.configureTestingModule({ - imports: [BaseLayerControlComponent, ReversePipe, MockLayerentryGroupComponent, MockLayerentryComponent], - providers: [ - { provide: LayersService, useClass: MockLayersService }, - MapStateService - ] -}).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(BaseLayerControlComponent); - component = fixture.componentInstance; - layersSvc = new MockLayersService(); // TestBed.inject(MockLayersService); - mapStateSvc = TestBed.inject(MapStateService); - - // as we use directive @Input and do not inject the service, we need to instantiate a service here. - component.layersSvc = layersSvc; - component.mapStateSvc = mapStateSvc; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - it('should have input layersSvc', () => { - expect(component.layersSvc instanceof LayersService).toBeTruthy(); - }); - - it('should have input mapStateSvc', () => { - expect(component.mapStateSvc instanceof MapStateService).toBeTruthy(); - }); - - it('should have 1 children of ukis-layerentry-group', () => { - fixture.detectChanges(); - const element = fixture.debugElement.nativeElement.querySelectorAll('ukis-layerentry-group'); - expect(element.length).toEqual(1); - - }); - - it('should have 0 children of ukis-layerentry', () => { - fixture.detectChanges(); - - const element = fixture.debugElement.nativeElement.querySelectorAll('ukis-layerentry'); - expect(element.length).toEqual(0); - - }); -}); - -/** - * to make testing easier, and only test base-layer-control use a Mock of LayerentryComponent - * and give its selector - */ -@Component({ - selector: 'ukis-layerentry', - template: '' -}) -class MockLayerentryComponent { - @Input('layersSvc') layersSvc: LayersService; - @Input('mapState') mapState?: MapStateService; - @Input('layer') layer; - - @Input('group') group?; - @Input('layerGroups') layerGroups?; - @Input('expanded') openProperties = false; - @Input('expandable') expandable = true; -} - - -/** - * to make testing easier, and only test base-layer-control use a Mock of LayerentryGroupComponent - * and give its selector - */ -@Component({ - selector: 'ukis-layerentry-group', - template: '' -}) -class MockLayerentryGroupComponent { - - @Input('layersSvc') layersSvc: LayersService; - @Input('mapState') mapState?: MapStateService; - @Input('group') group; - @Input('layerGroups') layerGroups; -} diff --git a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.ts b/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.ts deleted file mode 100644 index b2ed2e2ed..000000000 --- a/projects/layer-control/src/lib/base-layer-control/base-layer-control.component.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { Component, OnInit, Input, OnDestroy } from '@angular/core'; - -import { LayersService } from '@dlr-eoc/services-layers'; -import { MapStateService } from '@dlr-eoc/services-map-state'; -import { LayerGroup, Layer } from '@dlr-eoc/services-layers'; -import { Subscription } from 'rxjs'; - -import { LayerentryGroupComponent } from '../layerentry-group/layerentry-group.component'; -import { LayerentryComponent } from '../layerentry/layerentry.component'; -import { ReversePipe } from '@dlr-eoc/ngx-ukis-utilities'; - -@Component({ - selector: 'ukis-base-layer-control', - templateUrl: './base-layer-control.component.html', - styleUrls: ['./base-layer-control.component.scss'], - imports: [LayerentryGroupComponent, LayerentryComponent, ReversePipe] -}) -export class BaseLayerControlComponent implements OnInit, OnDestroy { - @Input('layersSvc') layersSvc: LayersService; - @Input('mapStateSvc') mapStateSvc?: MapStateService; - - layerGroupsSubscription: Subscription; - layersSubscription: Subscription; - layergroups: Array; - - - constructor() { - this.layergroups = []; - } - - ngOnInit() { - this.layerGroupsSubscription = this.layersSvc.getLayerGroups().subscribe(layergroups => { - this.layergroups = layergroups.filter((group) => group.filtertype === 'Baselayers'); - // console.log(this.layergroups) - }); - } - - isLayerGroup(group: Layer | LayerGroup) { - if (group instanceof LayerGroup) { - return true; - } else { - return false; - } - } - - ngOnDestroy() { - this.layerGroupsSubscription.unsubscribe(); - } - -} diff --git a/projects/layer-control/src/lib/layer-control/layer-control.component.html b/projects/layer-control/src/lib/layer-control/layer-control.component.html deleted file mode 100644 index a7098e75f..000000000 --- a/projects/layer-control/src/lib/layer-control/layer-control.component.html +++ /dev/null @@ -1,26 +0,0 @@ -
- @for (group of layergroups | itemsfilter: checkClassHide | reverse; track group) { -
- @if ( isLayerGroup(group) && group.filtertype===layerfilter) { - - - {{group.displayName || group.name}} - - - } - @if (!isLayerGroup(group) && group.filtertype === layerfilter) { - - - {{group.displayName || group.name}} - - - } -
- } - -
\ No newline at end of file diff --git a/projects/layer-control/src/lib/layer-control/layer-control.component.scss b/projects/layer-control/src/lib/layer-control/layer-control.component.scss deleted file mode 100644 index 1c1119720..000000000 --- a/projects/layer-control/src/lib/layer-control/layer-control.component.scss +++ /dev/null @@ -1,41 +0,0 @@ -/** style for drag and drop */ -.list-item { - cursor: pointer; -} - -/** style for drag and drop */ -.move-item { - cursor: move; -} - -.cdk-drop-list-disabled { - .move-item { - cursor: pointer; - } -} - -.cdk-drag-preview { - display: flex; - align-items: center; - padding: 15px 10px; - box-sizing: border-box; - border-radius: 2px; - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); - overflow: hidden; -} - -.cdk-drag-placeholder { - opacity: 0.2; -} - -.cdk-drag-animating { - transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); -} - -.example-box:last-child { - border: none; -} - -.cdk-drop-list-dragging .list-item:not(.cdk-drag-placeholder) { - transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); -} \ No newline at end of file diff --git a/projects/layer-control/src/lib/layer-control/layer-control.component.spec.ts b/projects/layer-control/src/lib/layer-control/layer-control.component.spec.ts deleted file mode 100644 index 843988785..000000000 --- a/projects/layer-control/src/lib/layer-control/layer-control.component.spec.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { LayerControlComponent } from '../layer-control/layer-control.component'; - -import { LayerentryGroupComponent } from '../layerentry-group/layerentry-group.component'; -import { LayerentryComponent } from '../layerentry/layerentry.component'; - -import { ClarityModule } from '@clr/angular'; -import { FormsModule } from '@angular/forms'; -import { LayersService } from '@dlr-eoc/services-layers'; -import { MapStateService } from '@dlr-eoc/services-map-state'; -import { ReversePipe, ObjTypePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; -import { DragDropModule } from '@angular/cdk/drag-drop'; - -describe('LayerControlComponent', () => { - let component: LayerControlComponent; - let fixture: ComponentFixture; - let layersSvc: LayersService; - let mapStateSvc: MapStateService; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [ClarityModule, FormsModule, DragDropModule, LayerControlComponent, LayerentryGroupComponent, LayerentryComponent, ObjTypePipe, ReversePipe, ItemsFilterPipe], - providers: [LayersService, MapStateService] -}).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(LayerControlComponent); - component = fixture.componentInstance; - layersSvc = TestBed.inject(LayersService); - mapStateSvc = TestBed.inject(MapStateService); - - component.layersSvc = layersSvc; - component.mapStateSvc = mapStateSvc; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - it('should have input layersSvc', () => { - expect(component.layersSvc instanceof LayersService).toBeTruthy(); - }); - - it('should have input mapStateSvc', () => { - expect(component.mapStateSvc instanceof MapStateService).toBeTruthy(); - }); - - it('should have input layerfilter', () => { - component.layerfilter = 'Layers'; - expect(component.layerfilter).toBe('Layers'); - }); - -}); diff --git a/projects/layer-control/src/lib/layer-control/layer-control.component.ts b/projects/layer-control/src/lib/layer-control/layer-control.component.ts deleted file mode 100644 index 6b237373c..000000000 --- a/projects/layer-control/src/lib/layer-control/layer-control.component.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { Component, OnInit, Input, OnDestroy } from '@angular/core'; - -import { LayersService } from '@dlr-eoc/services-layers'; -import { MapStateService } from '@dlr-eoc/services-map-state'; -import { LayerGroup, Layer } from '@dlr-eoc/services-layers'; -import { Subscription } from 'rxjs'; - -import { CdkDragDrop, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop'; - -import { LayerentryGroupComponent } from '../layerentry-group/layerentry-group.component'; -import { LayerentryComponent } from '../layerentry/layerentry.component'; -import { ReversePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; - -@Component({ - selector: 'ukis-layer-control', - templateUrl: './layer-control.component.html', - styleUrls: ['./layer-control.component.scss'], - imports: [CdkDropList, CdkDrag, LayerentryGroupComponent, CdkDragHandle, LayerentryComponent, ItemsFilterPipe, ReversePipe] -}) -export class LayerControlComponent implements OnInit, OnDestroy { - @Input('layersSvc') layersSvc: LayersService; - @Input('mapStateSvc') mapStateSvc?: MapStateService; - @Input('layerfilter') layerfilter: Layer['filtertype'] = 'Layers'; - @Input('layersSort') layersSort?: boolean = true; - @Input('groupLayersSort') groupLayersSort?: boolean = true; - - layerGroupsSubscription: Subscription; - layersSubscription: Subscription; - layergroups: Array; - - - constructor() { - this.layergroups = []; - } - - ngOnInit() { - this.layerGroupsSubscription = this.layersSvc.getLayerGroups().subscribe(layergroups => { - this.layergroups = layergroups; - /** - * filter only in template so reordering of layers with set layergroups is working - */ - // this.layergroups = layergroups.filter((group) => group.filtertype === this.layerfilter || group.filtertype === this.layerfilter); - }); - } - - isLayerGroup(group: Layer | LayerGroup) { - if (group instanceof LayerGroup) { - return true; - } else { - return false; - } - } - - ngOnDestroy() { - this.layerGroupsSubscription.unsubscribe(); - } - - - // CDKDRagAndDrop ------------------------------------------------------------- - // https://material.angular.io/cdk/drag-drop/api - drop(event: CdkDragDrop<(Layer | LayerGroup)[]>) { - const groupLayers = this.layergroups; - const groupLeng = groupLayers.length; - const fiteredLayers = event.container.data; // filtered by [cdkDropListData] - const groupFiteredLeng = fiteredLayers.length; - let previousIFinal, newIFinal; - - /** - * calc index with pipe reverse order - */ - if (groupLeng === groupFiteredLeng) { - const previousIndex = groupLeng - event.previousIndex - 1; - const newIndex = groupLeng - event.currentIndex - 1; - previousIFinal = previousIndex; - newIFinal = newIndex; - } else { - /** - * If array is filtered get previousIndex by item.data and try to calculate ne index - * get layers for cdk indexes - 'connect' 'event.container.data' and the original not filtered data - */ - const newLayer = fiteredLayers[event.currentIndex]; - const previousIndex = groupLayers.findIndex(l => l.id === event.item.data.id); - let newIndex = groupLayers.findIndex(l => l.id === newLayer.id); - - // Item is not moved - if (event.previousIndex === event.currentIndex) { - newIndex = previousIndex; - } - - previousIFinal = previousIndex; - newIFinal = newIndex; - } - - this.layersSvc.arrayMove(this.layergroups, previousIFinal, newIFinal); - this.layersSvc.setLayerGroups(this.layergroups); - } - - checkBaselayer(layer: Layer, group?: LayerGroup) { - if (layer.filtertype === 'Baselayers' || group && group.filtertype === 'Baselayers') { - return true; - } else { - return false; - } - } - - checkClassHide(layerOrGroup: Layer | LayerGroup) { - const hasHide = layerOrGroup?.cssClass?.includes('hide') || false; - return !hasHide; - } -} diff --git a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.html b/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.html deleted file mode 100644 index 07b48a395..000000000 --- a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.html +++ /dev/null @@ -1,122 +0,0 @@ -
-
- - - - - -
- -
- @if (ref.children.length == 0) { - - {{getLayerName(group)}} - - } - - - @if (layerGroups.length>1 && groupSort) { - - - - - } - - - @if (!checkBaselayer(group)) { - - - - } -
- - @if (group.expanded) { -
- -
- @if (group.action) { - - } - @if (group.legendImg) { - - } - @if (group.description) { - - } - - - @for (item of group.actions; track item) { - - - } - - @if (canZoomToGroup) { - - - } - @if (group.removable) { - - } -
- - @if (group.description && activeTabs.description) { -
- @if (checkIsComponentItem(group,'description')) { - - } @else { - - } -
- } - - @if (group.action && activeTabs.settings) { -
- @if (checkIsComponentItem(group, 'action');) { - - - } -
- } - - @if (group.legendImg && activeTabs.legend) { -
- @if (checkIsComponentItem(group,'legendImg')) { - - } @else { - - } -
- } - -
- @for (layer of group.layers | itemsfilter: checkClassHide | reverse; track layer) { -
- - - {{layer.displayName || layer.name}} - - -
- } -
-
- } -
diff --git a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.scss b/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.scss deleted file mode 100644 index b8172f474..000000000 --- a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.scss +++ /dev/null @@ -1,58 +0,0 @@ -.title { - cursor: pointer; -} - -.item-title-replacement:empty { - display: none; -} - -/** style for drag and drop */ -.move-item { - cursor: move; -} - -.cdk-drop-list-disabled { - .move-item { - cursor: pointer; - } -} - -.cdk-drag-preview { - display: flex; - align-items: center; - padding: 0px 10px; - box-sizing: border-box; - border-radius: 2px; - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); - overflow: hidden; -} - -.cdk-drag-placeholder { - opacity: 0.2; -} - -.cdk-drag-animating { - transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); -} - -.example-box:last-child { - border: none; -} - -.cdk-drop-list-dragging .sublayers:not(.cdk-drag-placeholder) { - transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); -} - -.info { - padding-left: 0.2rem; -} - - -.tabsbody { - overflow: hidden; - - img { - height: auto; - max-width: 100%; - } -} diff --git a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.spec.ts b/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.spec.ts deleted file mode 100644 index 8eddaa30e..000000000 --- a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.spec.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { LayerentryGroupComponent } from './layerentry-group.component'; -import { LayerentryComponent } from '../layerentry/layerentry.component'; - -import { ClarityModule } from '@clr/angular'; -import { FormsModule } from '@angular/forms'; -import { Layer, LayerGroup, LayersService } from '@dlr-eoc/services-layers'; - -import { MapStateService } from '@dlr-eoc/services-map-state'; -import { ReversePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; -import { DragDropModule } from '@angular/cdk/drag-drop'; - -describe('LayerentryGroupComponent', () => { - let component: LayerentryGroupComponent; - let fixture: ComponentFixture; - let layersSvc: LayersService; - let mapStateSvc: MapStateService; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [ClarityModule, FormsModule, DragDropModule, LayerentryGroupComponent, LayerentryComponent, ReversePipe, ItemsFilterPipe], - providers: [LayersService, MapStateService] -}).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(LayerentryGroupComponent); - component = fixture.componentInstance; - layersSvc = TestBed.inject(LayersService); - mapStateSvc = TestBed.inject(MapStateService); - - const layer = new Layer({ - type: 'wms', - name: 'test layer', - id: 'test_layer', - expanded: true - }); - - component.group = new LayerGroup({ - filtertype: 'Overlays', - id: 'Overlays_group', - name: 'Overlays', - layers: [layer] - - }); - component.layersSvc = layersSvc; - component.mapState = mapStateSvc; - component.layerGroups = [component.group]; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - it('should have input layersSvc', () => { - expect(component.layersSvc instanceof LayersService).toBeTruthy(); - }); - - it('should have input mapState', () => { - expect(component.mapState instanceof MapStateService).toBeTruthy(); - }); - - it('should have input group', () => { - expect(component.group instanceof LayerGroup).toBeTruthy(); - }); - - it('should get openAllLayersProperties from the expanded Layers', () => { - /** test_layer is expanded */ - expect(component.openAllLayersProperties).toBeTrue(); - }); -}); diff --git a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.ts b/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.ts deleted file mode 100644 index 668242e30..000000000 --- a/projects/layer-control/src/lib/layerentry-group/layerentry-group.component.ts +++ /dev/null @@ -1,288 +0,0 @@ -import { Component, OnInit, Input, HostBinding } from '@angular/core'; - - -// imports only for typings... -import { LayerGroup, Layer } from '@dlr-eoc/services-layers'; -import { MapStateService } from '@dlr-eoc/services-map-state'; -import { LayersService } from '@dlr-eoc/services-layers'; -import { CdkDragDrop, moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop'; -import { IDynamicComponent, DynamicComponent, ReversePipe, ItemsFilterPipe } from '@dlr-eoc/ngx-ukis-utilities'; - -import { ClarityIcons, folderIcon, folderOpenIcon, arrowIcon, eyeIcon, eyeHideIcon, cogIcon, imageIcon, infoStandardIcon, detailsIcon, zoomInIcon, trashIcon } from '@cds/core/icon'; -import { ClrIconModule, ClrCommonFormsModule } from '@clr/angular'; -import { NgClass } from '@angular/common'; -import { LayerentryComponent } from '../layerentry/layerentry.component'; -ClarityIcons.addIcons(...[folderIcon, folderOpenIcon, arrowIcon, eyeIcon, eyeHideIcon, cogIcon, imageIcon, infoStandardIcon, detailsIcon, zoomInIcon, trashIcon]); - - -enum EactiveTabs { - settings = 'settings', - legend = 'legend', - description = 'description' -} -type TactiveTabs = keyof typeof EactiveTabs; - -@Component({ - selector: 'ukis-layerentry-group', - templateUrl: './layerentry-group.component.html', - styleUrls: ['./layerentry-group.component.scss'], - imports: [ClrIconModule, NgClass, ClrCommonFormsModule, CdkDropList, CdkDrag, LayerentryComponent, CdkDragHandle, ItemsFilterPipe, ReversePipe, DynamicComponent] -}) -export class LayerentryGroupComponent implements OnInit { - @HostBinding('class.group-visible') get visible() { return this.group.visible; } - @HostBinding('class') get cssClass() { return this.group.cssClass; } - - @Input('layersSvc') layersSvc: LayersService; - @Input('mapState') mapState?: MapStateService; - @Input('group') group: LayerGroup; - @Input('layerGroups') layerGroups: Array; - @Input('groupSort') groupSort?: boolean = true; - @Input('groupLayersSort') groupLayersSort?: boolean = true; - - public set openAllLayersProperties(value: boolean) { - if (this.group && this.group.layers.length) { - this.group.layers.forEach(l => l.expanded = value); - } - } - public get openAllLayersProperties() { - if (this.group && this.group.layers.length) { - return this.group.layers.filter(l => l.expanded === true).length === this.group.layers.length; - } else { - return false; - } - } - // public visible: boolean = true; - public canZoomToGroup = false; - - public activeTabs = { - settings: false, - legend: true, - description: false - }; - - public dynamicComponents: { - legendImg: IDynamicComponent - action: IDynamicComponent - description: IDynamicComponent; - } = { legendImg: null, action: null, description: null }; - - constructor() { } - - ngOnInit() { - if (this.group.bbox && this.group.bbox.length >= 4) { - this.canZoomToGroup = true; - } - - if (typeof this.group?.expanded === 'object') { - if (Object.keys(EactiveTabs).includes(this.group.expanded.tab)) { - this.switchTab(this.group.expanded.tab as TactiveTabs); - /** let the user reset the default open tab */ - if(this.group.expanded.expanded === false){ - this.activeTabs[this.group.expanded.tab] = false; - } - } else { - this.setDefaultActiveTabs(); - } - - } else { - this.setDefaultActiveTabs(); - } - - } - - private setDefaultActiveTabs() { - if (!this.group?.action) { - this.activeTabs.settings = false; - } - } - - /** - * obj: {any| IDynamicComponent} - */ - checkIsComponentItem(group: LayerGroup, compProp: string): group is Omit & { legendImg: IDynamicComponent, action: IDynamicComponent, description: IDynamicComponent } { - /** - * TODO: This function is executed quite often!!! even if a user moves on tha map. Try to minimize work here or prevent calling it so often. - * - * creating new objects is needed to pass and change Inputs from the groups DynamicComponent to the dynamically created component bound on the layer. - * There is a new object created to hold the component, inputs and outputs so the group can be passed to the inputs without adding it recursively to itself. - **/ - - // https://stackoverflow.com/a/65347533/10850021 - const obj: IDynamicComponent = group[compProp]; - let isComp = false; - if (obj && typeof obj === 'object') { - if ('component' in obj) { - const component = obj.component; - - if (!obj.inputs) { - this.dynamicComponents[compProp] = { - component: component, - inputs: { group: group } - } - - } else if (obj.inputs && !obj.inputs.group) { - this.dynamicComponents[compProp] = { - component: obj.component, - // create a shallow copy of inputs so they are not changed on the original group - // keep in mind changing some deeper properties will reflect to the original group! - // https://2ality.com/2014/01/object-assign.html#2.3 - inputs: Object.assign({}, obj.inputs, { group: group }) - }; - - } else if (obj.inputs && obj.inputs.group) { - this.dynamicComponents[compProp] = { - component: obj.component, - // create a shallow copy of inputs so they are not changed on the original group - // keep in mind changing some deeper properties will reflect to the original group! - // https://2ality.com/2014/01/object-assign.html#2.3 - inputs: Object.assign({}, obj.inputs) - }; - } - - if (obj.outputs) { - // create a shallow copy of outputs so they are not changed on the original group - // keep in mind changing some deeper properties will reflect to the original group! - // https://2ality.com/2014/01/object-assign.html#2.3 - this.dynamicComponents[compProp].outputs = Object.assign({}, obj.outputs); - } - isComp = true; - } - } - return isComp; - } - - checkBaselayer(group: LayerGroup) { - if (group && group.filtertype === 'Baselayers') { - return true; - } else { - return false; - } - } - - checkClassHide(layer: Layer) { - const hasHide = layer?.cssClass?.includes('hide') || false; - return !hasHide; - } - - getLayerName(group: LayerGroup) { - if (group.displayName) { - return group.displayName; - } else { - return group.name; - } - } - - setLayerGroupIndex(group: LayerGroup, dir) { - this.layersSvc.setGroupLayerIndex(group, dir); - } - - setGroupLayersVisibility() { - this.group.visible = !this.group.visible; - this.layersSvc.updateLayerGroup(this.group); - } - - removeLayerGroup(group: LayerGroup) { - this.layersSvc.removeLayerGroup(group); - } - - - zoomTo(group: LayerGroup) { - if (this.mapState && group.bbox && group.bbox.length >= 4) { - this.mapState.setExtent(group.bbox); - } - } - - layerUpdate(event, group: LayerGroup) { - const layer = event.layer as Layer; - /** update event layer in the group... this is done by object reference!! */ - /* const updateLayerIndex = group.layers.findIndex(l => l.id === layer.id); - if (updateLayerIndex !== -1) { - group.layers[updateLayerIndex] = layer; - } */ - this.layersSvc.updateLayerGroup(group); - } - - - showProperties() { - this.group.expanded = !this.group.expanded; - } - - switchTab(tabName: TactiveTabs, toggle = true) { - for (const key of Object.keys(this.activeTabs)) { - const isTabName = tabName === key; - if (this.activeTabs[key] && toggle) { - this.activeTabs[key] = false; - } else { - this.activeTabs[key] = isTabName; - } - } - } - - showHideAllDetails() { - if (this.openAllLayersProperties) { - this.openAllLayersProperties = false; - for (const key of Object.keys(this.activeTabs)) { - this.activeTabs[key] = false; - } - - } else { - this.openAllLayersProperties = true; - - if (this.group.legendImg) { - this.switchTab('legend', false); - } else if (this.group.description) { - this.switchTab('description', false); - } else if (this.group.action) { - this.switchTab('settings', false); - } - } - } - - isFirst(group) { - return this.layersSvc.isGroupFirst(group, this.layerGroups, group.filtertype); - } - - isLast(group) { - return this.layersSvc.isGroupLast(group, this.layerGroups, group.filtertype); - } - - - // CDKDRagAndDrop ------------------------------------------------------------- - // https://material.angular.io/cdk/drag-drop/api - drop(event: CdkDragDrop) { - const groupLayers = this.group.layers; - const groupLeng = groupLayers.length; - const fiteredLayers = event.container.data; // filtered by [cdkDropListData] - const groupFiteredLeng = fiteredLayers.length; - let previousIFinal, newIFinal; - - /** - * calc index with pipe reverse order - */ - if (groupLeng === groupFiteredLeng) { - const previousIndex = groupLeng - event.previousIndex - 1; - const newIndex = groupLeng - event.currentIndex - 1; - previousIFinal = previousIndex; - newIFinal = newIndex; - } else { - /** - * If array is filtered get previousIndex by item.data and try to calculate ne index - * get layers for cdk indexes - 'connect' 'event.container.data' and the original not filtered data - */ - const newLayer = fiteredLayers[event.currentIndex]; - const previousIndex = groupLayers.findIndex(l => l.id === event.item.data.id); - let newIndex = groupLayers.findIndex(l => l.id === newLayer.id); - - // Item is not moved - if (event.previousIndex === event.currentIndex) { - newIndex = previousIndex; - } - - previousIFinal = previousIndex; - newIFinal = newIndex; - } - - moveItemInArray(this.group.layers, previousIFinal, newIFinal); - this.layersSvc.updateLayerGroup(this.group); - } -} diff --git a/projects/layer-control/src/lib/layerentry/layerentry.component.html b/projects/layer-control/src/lib/layerentry/layerentry.component.html deleted file mode 100644 index 9b4063fe6..000000000 --- a/projects/layer-control/src/lib/layerentry/layerentry.component.html +++ /dev/null @@ -1,137 +0,0 @@ -
-
- - @if (hasTabsbody) { - - } - - -
- -
- @if (ref.children.length == 0) { - - {{getLayerName(layer)}} - - } - - - @if (!checkBaselayer(layer,group) && sorting) { - - - - - - } - - - - -
- @if (expandable && expanded) { -
- -
- @if (!checkBaselayer(layer, group) || layer.action) { - - } - @if (layer.legendImg) { - - } - @if (layer.description) { - - } - - @for (item of layer.actions; track item) { - - - } - - @if (canZoomToLayer) { - - - } - @if (layer.removable) { - - } -
- @if (hasTabsbody && hasActiveTabs()) { -
- @if (activeTabs.settings) { -
- - @if (!checkBaselayer(layer,group)) { -
- - {{" "+layer.opacity}} -
- } - - @if (layer.styles && layer.styles?.length > 1) { - - } - - @if (checkIsComponentItem(layer, 'action');) { - - - } -
- } - - @if (activeTabs.legend && layer.legendImg) { -
- @if (checkIsComponentItem(layer,'legendImg')) { - - } @else { - - } -
- } - - @if (activeTabs.description && layer.description) { -
- @if (checkIsComponentItem(layer,'description')) { - - } @else { - - } -
- } -
- } -
- } - -
\ No newline at end of file diff --git a/projects/layer-control/src/lib/layerentry/layerentry.component.scss b/projects/layer-control/src/lib/layerentry/layerentry.component.scss deleted file mode 100644 index d890f76df..000000000 --- a/projects/layer-control/src/lib/layerentry/layerentry.component.scss +++ /dev/null @@ -1,20 +0,0 @@ -.title { - cursor: pointer; -} - -.item-title-replacement:empty { - display: none; -} - -.body { - cursor: default; -} - -.tabsbody { - overflow: hidden; - - img { - height: auto; - max-width: 100%; - } -} diff --git a/projects/layer-control/src/lib/layerentry/layerentry.component.spec.ts b/projects/layer-control/src/lib/layerentry/layerentry.component.spec.ts deleted file mode 100644 index 9a2f4db76..000000000 --- a/projects/layer-control/src/lib/layerentry/layerentry.component.spec.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { LayerentryComponent } from './layerentry.component'; -import { ClarityModule } from '@clr/angular'; -import { FormsModule } from '@angular/forms'; -import { Layer, LayerGroup } from '@dlr-eoc/services-layers'; -import { LayersService } from '@dlr-eoc/services-layers'; -import { MapStateService } from '@dlr-eoc/services-map-state'; - -describe('LayerentryComponent', () => { - let component: LayerentryComponent; - let fixture: ComponentFixture; - let layersSvc: LayersService; - let mapStateSvc: MapStateService; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [ClarityModule, FormsModule, LayerentryComponent], - providers: [LayersService, MapStateService] -}).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(LayerentryComponent); - component = fixture.componentInstance; - layersSvc = TestBed.inject(LayersService); - mapStateSvc = TestBed.inject(MapStateService); - - component.layer = new Layer({ - type: 'wms', - name: 'test layer', - id: 'test_layer' - }); - - component.group = new LayerGroup({ - filtertype: 'Overlays', - id: 'Overlays_group', - name: 'Overlays', - layers: [component.layer] - - }); - - component.layerGroups = [component.group]; - component.layersSvc = layersSvc; - component.mapState = mapStateSvc; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - it('should have input layersSvc', () => { - fixture.detectChanges(); - expect(component.layersSvc instanceof LayersService).toBeTruthy(); - }); - - it('should have input mapState', () => { - fixture.detectChanges(); - expect(component.mapState instanceof MapStateService).toBeTruthy(); - }); - - it('should have input layer', () => { - expect(component.layer instanceof Layer).toBeTruthy(); - }); - - it('should have input group', () => { - expect(component.group instanceof LayerGroup).toBeTruthy(); - }); - - it('should have input layerGroups', () => { - expect(component.layerGroups[0] instanceof LayerGroup).toBeTruthy(); - }); - - it('should have input expanded', () => { - component.expanded = true; - fixture.detectChanges(); - expect(component.expanded).toBe(true); - }); - - it('should set Layer.expanded from the input expanded', () => { - component.expanded = true; - fixture.detectChanges(); - expect(component.expanded).toBe(true); - expect(component.layer.expanded).toBe(true); - }); - - it('should have input expandable', () => { - component.expandable = true; - fixture.detectChanges(); - expect(component.expandable).toBe(true); - }); -}); diff --git a/projects/layer-control/src/lib/layerentry/layerentry.component.ts b/projects/layer-control/src/lib/layerentry/layerentry.component.ts deleted file mode 100644 index 2af0862b5..000000000 --- a/projects/layer-control/src/lib/layerentry/layerentry.component.ts +++ /dev/null @@ -1,363 +0,0 @@ -import { Component, OnInit, Input, Output, EventEmitter, HostBinding } from '@angular/core'; -import { IDynamicComponent, DynamicComponent } from '@dlr-eoc/ngx-ukis-utilities'; - -// imports only for typings... -import { - LayerGroup, Layer, RasterLayer, LayersService, WmsLayer, WmtsLayer -} from '@dlr-eoc/services-layers'; -import { MapStateService } from '@dlr-eoc/services-map-state'; - -import { ClarityIcons, angleIcon, arrowIcon, circleIcon, dotCircleIcon, eyeIcon, eyeHideIcon, cogIcon, imageIcon, infoStandardIcon, zoomInIcon, trashIcon } from '@cds/core/icon'; -import { NgClass, NgStyle } from '@angular/common'; -import { ClrIconModule, ClrCommonFormsModule, ClrRangeModule, ClrSelectModule } from '@clr/angular'; -import { FormsModule } from '@angular/forms'; -ClarityIcons.addIcons(...[angleIcon, arrowIcon, circleIcon, dotCircleIcon, eyeIcon, eyeHideIcon, cogIcon, imageIcon, infoStandardIcon, zoomInIcon, trashIcon]); - -enum EactiveTabs { - settings = 'settings', - legend = 'legend', - description = 'description', -} -type TactiveTabs = keyof typeof EactiveTabs; - -@Component({ - selector: 'ukis-layerentry', - templateUrl: './layerentry.component.html', - styleUrls: ['./layerentry.component.scss'], - imports: [NgClass, ClrIconModule, NgStyle, ClrCommonFormsModule, ClrRangeModule, FormsModule, ClrSelectModule, DynamicComponent] -}) -export class LayerentryComponent implements OnInit { - @HostBinding('class.layer-visible') get visible() { return this.layer.visible; } - @HostBinding('class') get cssClass() { return this.layer.cssClass; } - - @Input('layersSvc') layersSvc: LayersService; - @Input('mapState') mapState?: MapStateService; - @Input('layer') layer: Layer; - - @Input('group') group?: LayerGroup; - @Input('layerGroups') layerGroups?: Array;; - @Input('expanded') set expanded(value: boolean) { - if (this.layer) { - this.layer.expanded = value; - } - } - get expanded() { - if (this.layer) { - return (this.layer.expanded) ? true : false; - } else { - return false; - } - } - @Input('expandable') expandable = true; - @Input('sorting') sorting?: boolean = true; - - - @Output() update = new EventEmitter<{ layer: Layer }>(); - - public canZoomToLayer = false; - - public activeTabs = { - settings: false, - legend: true, - description: false - }; - - public hasTabsbody = true; - - public dynamicComponents: { - legendImg: IDynamicComponent - action: IDynamicComponent - description: IDynamicComponent; - } = { legendImg: null, action: null, description: null }; - - constructor() { - - } - - /** - * obj: {any| IDynamicComponent} - * - * Check if the compProp on the layer is a dynamic Component, if yes pass it to `` so the component from the layer can be inserted here. - */ - checkIsComponentItem(layer: Layer, compProp: string): layer is Omit & { legendImg: IDynamicComponent, action: IDynamicComponent, description: IDynamicComponent } { - /** - * TODO: This function is executed quite often!!! even if a user moves on tha map. Try to minimize work here or prevent calling it so often. - * - * creating new objects is needed to pass and change Inputs from the layers DynamicComponent to the dynamically created component bound on the layer. - * There is a new object created to hold the component, inputs and outputs so the layer can be passed to the inputs without adding it recursively to itself. - **/ - - // https://stackoverflow.com/a/65347533/10850021 - const obj: IDynamicComponent = layer[compProp]; - let isComp = false; - if (obj && typeof obj === 'object') { - if ('component' in obj) { - const component = obj.component; - - if (!obj.inputs) { - this.dynamicComponents[compProp] = { - component: component, - inputs: { layer: layer } - } - - } else if (obj.inputs && !obj.inputs.layer) { - this.dynamicComponents[compProp] = { - component: obj.component, - // create a shallow copy of inputs so they are not changed on the original layer - // keep in mind changing some deeper properties will reflect to the original layer! - // https://2ality.com/2014/01/object-assign.html#2.3 - inputs: Object.assign({}, obj.inputs, { layer: layer }) - }; - - } else if (obj.inputs && obj.inputs.layer) { - this.dynamicComponents[compProp] = { - component: obj.component, - // create a shallow copy of inputs so they are not changed on the original layer - // keep in mind changing some deeper properties will reflect to the original layer! - // https://2ality.com/2014/01/object-assign.html#2.3 - inputs: Object.assign({}, obj.inputs) - }; - } - - if (obj.outputs) { - // create a shallow copy of outputs so they are not changed on the original layer - // keep in mind changing some deeper properties will reflect to the original layer! - // https://2ality.com/2014/01/object-assign.html#2.3 - this.dynamicComponents[compProp].outputs = Object.assign({}, obj.outputs); - } - isComp = true; - } - } - return isComp; - } - - getLayerName(layer: Layer) { - if (layer.displayName) { - return layer.displayName; - } else { - return layer.name; - } - } - - ngOnInit() { - if (!this.layersSvc) { - console.error('you need to provide a layersService!'); - } - - if (typeof this.layer?.expanded === 'object') { - if (Object.keys(EactiveTabs).includes(this.layer.expanded.tab)) { - this.switchTab(this.layer.expanded.tab as TactiveTabs); - /** let the user reset the default open tab */ - if (this.layer.expanded.expanded === false) { - this.activeTabs[this.layer.expanded.tab] = false; - } - } else { - this.setDefaultActiveTabs(); - } - - } else { - this.setDefaultActiveTabs(); - } - - - if (this.layer.bbox && this.layer.bbox.length >= 4) { - this.canZoomToLayer = true; - } - - - if (this.layer.filtertype === 'Baselayers' && !this.layer.legendImg && !this.layer.description && !this.layer.action && !this.layer.actions && !this.layer.styles && !(this.layer.styles?.length > 1)) { - this.hasTabsbody = false; - } - } - - private setDefaultActiveTabs() { - if (!this.layer.legendImg) { - this.switchTab('description'); - } - - if (!this.layer.legendImg && !this.layer.description) { - this.switchTab('settings'); - } - } - - /** - * show or hide the layer - */ - setLayerVisibility(selectedLayer: Layer, group?: LayerGroup) { - if (!group) { - if (selectedLayer.filtertype === 'Baselayers') { - selectedLayer.visible = !selectedLayer.visible; - const filterdlayers = this.layerGroups.filter((l) => l.filtertype === 'Baselayers'); - // console.log(filterdlayers); - for (const layer of filterdlayers) { - if (layer instanceof Layer && layer.id !== selectedLayer.id) { - layer.visible = !selectedLayer.visible; - this.layersSvc.updateLayer(layer, layer.filtertype || 'Baselayers'); - } - } - } else { - selectedLayer.visible = !selectedLayer.visible; - this.layersSvc.updateLayer(selectedLayer, selectedLayer.filtertype || 'Layers'); // TODO check for baselayers!!!!!! - } - } else { - if (group.layers.length > 0) { - /** "radio" for Baselayers */ - if (group.filtertype === 'Baselayers') { - for (const layer of group.layers) { - layer.visible = layer === selectedLayer; - } - this.update.emit({ - layer: this.layer - }); - /** "checkbox" for all other layers */ - } else { - const tempGroupVisible = group.visible; - /** change visibility of the selected layer */ - selectedLayer.visible = !selectedLayer.visible; - - /** check if group visibility has changed */ - if (tempGroupVisible !== group.visible) { - this.update.emit({ - layer: this.layer - }); - } else { - /** If the visibility of the group don't changes update only the layer */ - this.layersSvc.updateLayer(selectedLayer, selectedLayer.filtertype || 'Layers'); - } - } - } - } - } - /** - * setLayerIndex - */ - setLayerIndex(layer: Layer, dir, group?: LayerGroup) { - // console.log('is First', this.isFirst(layer)); - // console.log('is Last', this.isLast(layer)); - // console.log(layer, group); - if (group) { - this.layersSvc.setLayerIndexInGroup(layer, dir, group); - } else { - this.layersSvc.setGroupLayerIndex(layer, dir); - } - } - - /** - * remove the Layer if possible - */ - removeLayer(group: LayerGroup, selectedLayer: Layer) { - // console.log("delete ", group, selectedLayer) - if (group) { - // console.log("delete layer from group") - this.layersSvc.removeLayerFromGroup(selectedLayer, group); - } else { - // console.log('delete single layer'); - this.layersSvc.removeLayer(selectedLayer, selectedLayer.filtertype); - } - } - - zoomTo(layer: Layer) { - if (this.mapState && layer.bbox && layer.bbox.length >= 4) { - this.mapState.setExtent(layer.bbox as [number, number, number, number]); - } - } - - setLayerOpacity(layer) { - if (!this.group) { - this.layersSvc.updateLayer(layer, layer.filtertype || 'Layers'); // TODO check for baselayers!!!!!! - } else { - this.update.emit({ - layer - }); - } - } - - checkBaselayer(layer: Layer, group?: LayerGroup) { - if (layer.filtertype === 'Baselayers' || group && group.filtertype === 'Baselayers') { - return true; - } else { - return false; - } - } - - /** - * is expandable if layer has legend, description or opacity can be changed - */ - is_expandable() { - if (this.group) { - return !this.layer.legendImg && this.group.filtertype === 'Baselayers'; - } else { - return !this.hasTabsbody; - } - } - - showProperties() { - if (!this.is_expandable()) { - this.expanded = !this.expanded; - } - } - - switchTab(tabName: TactiveTabs, toggle = true) { - for (const key of Object.keys(this.activeTabs)) { - const isTabName = tabName === key; - if (this.activeTabs[key] && toggle) { - this.activeTabs[key] = false; - } else { - this.activeTabs[key] = isTabName; - } - } - } - - hasActiveTabs(){ - return Object.values(this.activeTabs).filter(v => v).length > 0; - } - - isSelectedStyle(styleName: string): boolean { - if (this.layer instanceof WmsLayer) { - return this.layer.params.STYLES === styleName; - } else if (this.layer instanceof WmtsLayer) { - return this.layer.params.style === styleName; - } else { - // TODO: how to compare styles for vector layers and custom layers? - return false; - } - } - - executeChangeStyle(evt: Event) { - const newStyleName = (evt.target as HTMLInputElement).value; - if (this.layer.styles) { - const newStyle = (this.layer as RasterLayer).styles.find(s => s.name === newStyleName); - if (newStyle) { - this.layer.legendImg = newStyle.legendURL; - if (this.layer instanceof WmsLayer) { - this.layer.params.STYLES = newStyle.name; - } else if (this.layer instanceof WmtsLayer) { - this.layer.params.style = newStyle.name; - } - this.layersSvc.updateLayer(this.layer, this.layer.filtertype); - } - } - } - - isFirst(layer) { - if (this.group) { - return this.layersSvc.isGroupFirst(layer, this.group.layers); - } else { - return this.layersSvc.isGroupFirst(layer, null, layer.filtertype); - } - } - - isLast(layer) { - if (this.group) { - return this.layersSvc.isGroupLast(layer, this.group.layers); - } else { - return this.layersSvc.isGroupLast(layer, null, layer.filtertype); - } - } - - getExpandShape() { - // return this.openProperties ? 'down' : 'right'; - return this.expanded ? { transform: 'rotate(180deg)' } : { transform: 'rotate(90deg)' }; - } - -} diff --git a/projects/layer-control/src/public-api.ts b/projects/layer-control/src/public-api.ts deleted file mode 100644 index 9a08d6d86..000000000 --- a/projects/layer-control/src/public-api.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Public API Surface of layer-control - */ - -export * from './lib/layer-control/layer-control.component'; -export * from './lib/base-layer-control/base-layer-control.component'; -export * from './lib/layerentry/layerentry.component'; -export * from './lib/layerentry-group/layerentry-group.component'; diff --git a/projects/layer-control/src/test.ts b/projects/layer-control/src/test.ts deleted file mode 100644 index 70b007097..000000000 --- a/projects/layer-control/src/test.ts +++ /dev/null @@ -1,17 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'zone.js'; -import 'zone.js/testing'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), { - teardown: { destroyAfterEach: false } -} -); diff --git a/projects/layer-control/tsconfig.lib.json b/projects/layer-control/tsconfig.lib.json deleted file mode 100644 index ea356ef5e..000000000 --- a/projects/layer-control/tsconfig.lib.json +++ /dev/null @@ -1,24 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/lib", - "declaration": true, - "declarationMap": true, - "inlineSources": true, - "types": [], - "lib": [ - "dom", - "es2018" - ] - }, - "angularCompilerOptions": { - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "enableResourceInlining": true - }, - "exclude": [ - "src/test.ts", - "**/*.spec.ts" - ] -} diff --git a/projects/layer-control/tsconfig.lib.prod.json b/projects/layer-control/tsconfig.lib.prod.json deleted file mode 100644 index 06de549e1..000000000 --- a/projects/layer-control/tsconfig.lib.prod.json +++ /dev/null @@ -1,10 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "./tsconfig.lib.json", - "compilerOptions": { - "declarationMap": false - }, - "angularCompilerOptions": { - "compilationMode": "partial" - } -} diff --git a/projects/layer-control/tsconfig.spec.json b/projects/layer-control/tsconfig.spec.json deleted file mode 100644 index 715dd0a5d..000000000 --- a/projects/layer-control/tsconfig.spec.json +++ /dev/null @@ -1,17 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/spec", - "types": [ - "jasmine" - ] - }, - "files": [ - "src/test.ts" - ], - "include": [ - "**/*.spec.ts", - "**/*.d.ts" - ] -} diff --git a/projects/layer-control/tslint.json b/projects/layer-control/tslint.json deleted file mode 100644 index bdd3d3033..000000000 --- a/projects/layer-control/tslint.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [ - true, - "attribute", - "ukis", - "camelCase" - ], - "component-selector": [ - true, - "element", - "ukis", - "kebab-case" - ] - } -} diff --git a/projects/map-cesium/README.md b/projects/map-cesium/README.md index c434cff5d..63a33f922 100644 --- a/projects/map-cesium/README.md +++ b/projects/map-cesium/README.md @@ -6,7 +6,7 @@ First, install and setupt UKIS core, like described in the [Tutorial](../../TUTO #### Add the following dependencies to the package.json - "@dlr-eoc/map-cesium" -- "@dlr-eoc/layer-control" (optional) +- "@dlr-eoc/ngx-ukis-ui-clarity" (optional) - "@dlr-eoc/base-layers-raster" (optional) #### Add styles from cesium to your application diff --git a/projects/map-maplibre/README.md b/projects/map-maplibre/README.md index 396c99f85..af807e830 100644 --- a/projects/map-maplibre/README.md +++ b/projects/map-maplibre/README.md @@ -6,7 +6,7 @@ For examples [see demo maps](../demo-maps/README.md) #### add the following dependencies to the package.json - "@dlr-eoc/map-maplibre" -- "@dlr-eoc/layer-control" (optional) +- "@dlr-eoc/ngx-ukis-ui-clarity" (optional) - "@dlr-eoc/base-layers-raster" (optional) @@ -37,7 +37,7 @@ or in the angular config file #### add the following to route-view.component.ts ``` import { MapMaplibreComponent } from '@dlr-eoc/map-maplibre'; -import { LayerControlComponent } from '@dlr-eoc/layer-control'; +import { LayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; ... imports: [ diff --git a/projects/map-ol/README.md b/projects/map-ol/README.md index ac2768512..6f54c8b27 100644 --- a/projects/map-ol/README.md +++ b/projects/map-ol/README.md @@ -6,7 +6,7 @@ For examples [see demo maps](../demo-maps/README.md) #### add the following dependencies to the package.json - "@dlr-eoc/map-ol" -- "@dlr-eoc/layer-control" (optional) +- "@dlr-eoc/ngx-ukis-ui-clarity" (optional) - "@dlr-eoc/base-layers-raster" (optional) @@ -43,7 +43,8 @@ or in the angular config file #### add the following to a route-view.component.ts ``` import { MapOlComponent, MapOlService, IMapControls } from '@dlr-eoc/map-ol'; -import { LayerControlComponent, LayersService } from '@dlr-eoc/layer-control'; +import { LayersService } from '@dlr-eoc/services-layers'; +import { LayerControlComponent } from '@dlr-eoc/ngx-ukis-ui-clarity'; import { MapStateService } from '@dlr-eoc/services-map-state'; import { OsmTileLayer, EocLitemap, BlueMarbleTile } from '@dlr-eoc/base-layers-raster'; diff --git a/projects/map-tools/README.md b/projects/map-tools/README.md deleted file mode 100644 index 59920657d..000000000 --- a/projects/map-tools/README.md +++ /dev/null @@ -1,184 +0,0 @@ -# @dlr-eoc/map-tools - -### how to use this in a ukis-angular project - -This repository contains 3 ui components: - -1. mouse-position: shows projected coordinates of mouse pointer
- `````` -2. navigator: allows to insert coordinates in order to navigate the map to desired position
- `````` -3. projection-switch: ui element for interactive projection switch
- `````` - -For examples [see demo maps route-example-events](../demo-maps/README.md) - -#### add the following dependencies to the package.json -- "@dlr-eoc/map-ol" -- "@dlr-eoc/map-tools" - -#### add the following to route-view.component.ts -``` -import { MapOlComponent } from '@dlr-eoc/map-ol'; -import { ProjectionSwitchComponent, MapNavigatorComponent, MousePositionComponent } from '@dlr-eoc/map-tools'; - -... - imports: [ - ... - MapOlComponent, - ProjectionSwitchComponent, MapNavigatorComponent, MousePositionComponent - ] -``` -##Create simple map: - - -#### add the following to a route-view.component.html -``` -
- -
-``` - - - -#### add the following to a route-view.component.ts -``` -import { LayersService } from '@dlr-eoc/services-layers'; -import { MapStateService } from '@dlr-eoc/services-map-state'; -import { IMapControls } from '@dlr-eoc/map-ol'; - -import { osm, eoc_litemap } from '@dlr-eoc/base-layers-raster'; -``` - -``` -controls: IMapControls; - constructor( - public layerSvc: LayersService, - public mapStateSvc: MapStateService -) { } -``` - -``` -ngOnInit() { - this.addBaselayers(); -} - -addBaselayers() { - const layers = [ - new osm({ - visible: false, - legendImg: null - }), - new eoc_litemap({ - visible: true, - legendImg: null - }) - ]; - - layers.map(l => this.layerSvc.addLayer(l, 'Baselayers')); -} -``` - -##To add mouse position component: -#### add the following to a route-view.component.html -``` - - - - Coordinates - - - - - -``` - -##To add projection switch component (with 3 predefined projections): -#### add the following to a route-view.component.html -``` - - - Projection - - - - -``` -#### add the following to a route-view.component.ts -``` -import { IProjDef } from '@dlr-eoc/map-tools' -``` -``` -projections: IProjDef[]; - -constructor( - public layerSvc: LayersService, - public mapStateSvc: MapStateService -) { - - const arcticPolarStereographic: IProjDef = { - code: 'EPSG:3995', - proj4js: '+proj=stere +lat_0=90 +lat_ts=71 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs +type=crs', - title: 'Arctic Polar Stereographic', - extent: [-3299207.53, -3333134.03, 3299207.53, 3333134.03], - worldExtent: [-180.0, 60.0, 180.0, 90.0], - global: true, - units: 'm' - }; - - const antarcticPolarStereographic: IProjDef = { - code: `EPSG:3031`, - proj4js: '+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs +type=crs', - title: 'Antarctic Polar Stereographic', - extent: [-3299207.53, -3333134.03, 3299207.53, 3333134.03], - worldExtent: [-180.0, -90.0, 180.0, -60.0], - global: true, - units: 'm' - }; - - const webMercator: IProjDef = { - code: `EPSG:3857`, - proj4js: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs +type=crs', - title: 'Spherical Mercator', - extent: [-20037508.34, -20048966.1, 20037508.34, 20048966.1], - worldExtent: [-180.0, -85.06, 180.0, 85.06], - global: true, - units: 'm' - }; - - this.projections=[webMercator, arcticPolarStereographic, antarcticPolarStereographic]; -} -``` - -##To add navigator component: -#### add the following to a route-view.component.html -``` - - - Navigator - - - - -``` - -=== - -This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14. - -## Code scaffolding - -Run `ng generate component component-name --project map-tools` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project map-tools`. -> Note: Don't forget to add `--project map-tools` or else it will be added to the default project in your `angular.json` file. - -## Build - -Run `ng build map-tools` to build the project. The build artifacts will be stored in the `dist/` directory. - -## Running unit tests - -Run `ng test map-tools` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/projects/map-tools/karma.conf.js b/projects/map-tools/karma.conf.js deleted file mode 100644 index 2bdbde285..000000000 --- a/projects/map-tools/karma.conf.js +++ /dev/null @@ -1,44 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client: { - jasmine: { - // you can add configuration options for Jasmine here - // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html - // for example, you can disable the random execution with `random: false` - // or set a specific seed with `seed: 4321` - }, - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - jasmineHtmlReporter: { - suppressAll: true // removes the duplicated traces - }, - coverageReporter: { - dir: require('path').join(__dirname, '../../coverage/map-tools'), - subdir: '.', - reporters: [ - { type: 'html' }, - { type: 'text-summary' } - ] - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false, - restartOnFileChange: true - }); -}; diff --git a/projects/map-tools/ng-package.json b/projects/map-tools/ng-package.json deleted file mode 100644 index 7f604950c..000000000 --- a/projects/map-tools/ng-package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", - "dest": "../../dist/map-tools", - "lib": { - "entryFile": "src/public-api.ts" - }, - "allowedNonPeerDependencies": [ - "tslib", - "ol", - "@dlr-eoc/services-map-state" - ] -} diff --git a/projects/map-tools/package.json b/projects/map-tools/package.json deleted file mode 100644 index 28c50c727..000000000 --- a/projects/map-tools/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "@dlr-eoc/map-tools", - "version": "16.0.0-next.0", - "main": "src/public-api", - "license": "Apache-2.0", - "author": "Team UKIS", - "description": "This module contains UI components like mouse-position, map-navigator and projection-switch for @dlr-eoc/map-ol.", - "keywords": [ - "angular", - "Clarity Design", - "mapping tools", - "map-ol" - ], - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "@angular/forms": "^19.2.12", - "@clr/angular": "^17.10.0", - "@cds/core": "^6.15.1", - "@clr/ui": "^17.10.0", - "ol": "^v10.5.0", - "proj4": "^2.17.0", - "rxjs": "~7.8.2" - }, - "dependencies": { - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/map-ol": "16.0.0-next.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "zone.js": "~0.15.0", - "@angular/platform-browser-dynamic": "^19.2.12" - } -} diff --git a/projects/map-tools/src/lib/mouse-position/mouse-position.component.html b/projects/map-tools/src/lib/mouse-position/mouse-position.component.html deleted file mode 100644 index e89e83982..000000000 --- a/projects/map-tools/src/lib/mouse-position/mouse-position.component.html +++ /dev/null @@ -1,78 +0,0 @@ -
- -
-
-
-
{{x}} {{toPrecision(mapCoordinates[0],precision)}}
-
{{y}} {{toPrecision(mapCoordinates[1],precision)}}
-
Zoom {{toPrecision(zoom,precision)}}
-
-
-
-
- - - - - - - - - -
-
-
- - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/projects/map-tools/src/lib/mouse-position/mouse-position.component.scss b/projects/map-tools/src/lib/mouse-position/mouse-position.component.scss deleted file mode 100644 index d4ae2167a..000000000 --- a/projects/map-tools/src/lib/mouse-position/mouse-position.component.scss +++ /dev/null @@ -1,15 +0,0 @@ -.mouse-position-control { - margin-left: 0.2rem; - // padding-right: 0.4rem; - padding-bottom: 0.4rem; - - .output-container { - line-height: 1.6rem; - } - - .input-container { - & .clr-form-control:first-child { - margin-top: 0rem; - } - } -} diff --git a/projects/map-tools/src/lib/mouse-position/mouse-position.component.spec.ts b/projects/map-tools/src/lib/mouse-position/mouse-position.component.spec.ts deleted file mode 100644 index d6370fadb..000000000 --- a/projects/map-tools/src/lib/mouse-position/mouse-position.component.spec.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { MousePositionComponent } from './mouse-position.component'; -import { FormsModule } from '@angular/forms'; -import { MapOlService } from '@dlr-eoc/map-ol'; -import { ClarityModule } from '@clr/angular'; - -describe('MousePositionComponent', () => { - let component: MousePositionComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [FormsModule, ClarityModule, MousePositionComponent], - providers: [MapOlService] -}) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(MousePositionComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/map-tools/src/lib/mouse-position/mouse-position.component.ts b/projects/map-tools/src/lib/mouse-position/mouse-position.component.ts deleted file mode 100644 index 571a849d5..000000000 --- a/projects/map-tools/src/lib/mouse-position/mouse-position.component.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { Component, OnInit, OnDestroy } from '@angular/core'; -import { MapOlService } from '@dlr-eoc/map-ol'; -import { transform as olTransform, get as olGetProjection, Projection as olProjection } from 'ol/proj'; -import { Subscription } from 'rxjs'; -import { ClrSelectModule, ClrCommonFormsModule, ClrNumberInputModule } from '@clr/angular'; - -import { FormsModule } from '@angular/forms'; - -interface ISelectProjection { - title: string; - value: string; -} - -@Component({ - selector: 'ukis-mouse-position', - templateUrl: './mouse-position.component.html', - styleUrls: ['./mouse-position.component.scss'], - imports: [ClrSelectModule, ClrCommonFormsModule, FormsModule, ClrNumberInputModule] -}) -export class MousePositionComponent implements OnInit, OnDestroy { - - public mapCoordinates: [number, number] | number[] = [0, 0]; - public zoom = 0; - public projections: ISelectProjection[]; - mapProjection: olProjection; - public selectedProjection: string; - public precision = 2; - x = 'Lon'; - y = 'Lat'; - mapSub: Subscription; - constructor(public mapSvc: MapOlService) { - this.mapSub = this.mapSvc.projectionChange.subscribe(projLike => { - this.mapProjection = projLike; - this.setProjection(projLike); - }); - } - - ngOnInit() { - this.mapSvc.map.on('pointermove', this.mapMoveSubscription); - this.mapSvc.map.on('moveend', this.mapOnMoveend); - } - - /** - * projLike: 'olProjection' - */ - setProjection(projLike: any) { - const epsg = projLike.getCode(); - if (epsg === 'EPSG:4326') { - this.projections = [ - { title: epsg, value: epsg } - ]; - } else { - this.projections = [ - { title: 'EPSG:4326', value: 'EPSG:4326' }, - { title: epsg, value: epsg } - ]; - } - this.selectedProjection = this.projections[0].value; - } - - ngOnDestroy() { - this.mapSvc.map.un('pointermove', this.mapMoveSubscription); - this.mapSvc.map.un('moveend', this.mapOnMoveend); - this.mapSub.unsubscribe(); - } - - mapMoveSubscription = (evt) => { - if (evt.coordinate) { - this.mapCoordinates = olTransform(evt.coordinate, this.mapProjection, olGetProjection(this.selectedProjection)); - } - } - - mapOnMoveend = (evt) => { - const newZoom = evt.map.getView().getZoom(); - if (this.zoom !== newZoom) { - // console.log('zoom end, new zoom: ' + newZoom); - this.zoom = newZoom; - } - } - - public onChangeProj(evt: Event) { - const epsgcode = (evt.target as HTMLInputElement).value; - if (epsgcode === 'EPSG:4326') { - this.x = 'Lon'; - this.y = 'Lat'; - } else { - this.x = 'X'; - this.y = 'Y'; - } - const oldSelection = this.selectedProjection; - this.selectedProjection = epsgcode; - this.mapCoordinates = olTransform(this.mapCoordinates, olGetProjection(oldSelection), olGetProjection(this.selectedProjection)); - } - - public toPrecision(input: number, value: number) { - return input.toFixed(value); - } -} diff --git a/projects/map-tools/src/lib/navigator/map-navigator.component.html b/projects/map-tools/src/lib/navigator/map-navigator.component.html deleted file mode 100644 index 7e86b893d..000000000 --- a/projects/map-tools/src/lib/navigator/map-navigator.component.html +++ /dev/null @@ -1,32 +0,0 @@ -
-
-
-
- - - - - - - - - - - - -
-
-
-
-
- - - - -
-
-
diff --git a/projects/map-tools/src/lib/navigator/map-navigator.component.scss b/projects/map-tools/src/lib/navigator/map-navigator.component.scss deleted file mode 100644 index 475699364..000000000 --- a/projects/map-tools/src/lib/navigator/map-navigator.component.scss +++ /dev/null @@ -1,11 +0,0 @@ -.output-container { - & .clr-form-control:first-child { - margin-top: 0rem; - } -} - -.output-container { - .clr-input { - width: 90%; - } -} diff --git a/projects/map-tools/src/lib/navigator/map-navigator.component.spec.ts b/projects/map-tools/src/lib/navigator/map-navigator.component.spec.ts deleted file mode 100644 index 3060e6587..000000000 --- a/projects/map-tools/src/lib/navigator/map-navigator.component.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { FormsModule } from '@angular/forms'; -import { MapNavigatorComponent } from './map-navigator.component'; -import { MapStateService } from '@dlr-eoc/services-map-state'; -import { MapState } from '@dlr-eoc/services-map-state'; -import { ClarityModule } from '@clr/angular'; - - -describe('MapNavigatorComponent', () => { - let component: MapNavigatorComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [FormsModule, ClarityModule, MapNavigatorComponent], - providers: [MapStateService] -}) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(MapNavigatorComponent); - component = fixture.componentInstance; - // inject Service - component.mapState = new MapStateService(); - // mock get state from Service - component.mapstate = new MapState(7, { - lat: 0, - lon: 0 - }, { notifier: 'user' }); - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/map-tools/src/lib/navigator/map-navigator.component.ts b/projects/map-tools/src/lib/navigator/map-navigator.component.ts deleted file mode 100644 index 5355a7489..000000000 --- a/projects/map-tools/src/lib/navigator/map-navigator.component.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Component, OnInit, Input, OnDestroy } from '@angular/core'; - -import { MapStateService, MapState } from '@dlr-eoc/services-map-state'; -import { Subscription } from 'rxjs'; -import { FormsModule } from '@angular/forms'; -import { ClrCommonFormsModule, ClrNumberInputModule } from '@clr/angular'; - -@Component({ - selector: 'ukis-map-navigator', - templateUrl: './map-navigator.component.html', - styleUrls: ['./map-navigator.component.scss'], - imports: [FormsModule, ClrCommonFormsModule, ClrNumberInputModule] -}) -export class MapNavigatorComponent implements OnInit, OnDestroy { - @Input('mapState') mapState?: MapStateService; - mapstate: MapState; - subscription: Subscription; - public inputStep = 0.01; - public precision = 2; - constructor() { } - - ngOnInit() { - this.subscription = this.mapState.getMapState().subscribe(mapstate => { this.mapstate = mapstate; }); - } - - ngOnDestroy() { - this.subscription.unsubscribe(); - } - - zoomIn() { - this.mapstate.zoom++; - this.setNewState(this.mapstate); - } - zoomOut() { - this.mapstate.zoom--; - this.setNewState(this.mapstate); - } - - setNewState(newstate: MapState) { - newstate.options.notifier = 'user'; - this.mapState.setMapState(newstate); - } - - stateChange(evt) { - this.setNewState(this.mapstate); - } - - setInputStep(evt: number) { - const value = Array.from(Array(evt), (_, x) => '0').join(''); - this.inputStep = 1 / Number(`1${value}`); - } - - public toPrecision(input: number, value: number) { - return input.toFixed(value); - } - -} diff --git a/projects/map-tools/src/lib/projection-switch/projection-switch.component.html b/projects/map-tools/src/lib/projection-switch/projection-switch.component.html deleted file mode 100644 index 365f9f387..000000000 --- a/projects/map-tools/src/lib/projection-switch/projection-switch.component.html +++ /dev/null @@ -1,17 +0,0 @@ -@if (projList) { -
- @for (proj of projList; track proj) { -
-
-
- - {{proj.title || proj.code}} - - -
-
-
- } -
-} diff --git a/projects/map-tools/src/lib/projection-switch/projection-switch.component.spec.ts b/projects/map-tools/src/lib/projection-switch/projection-switch.component.spec.ts deleted file mode 100644 index 553ae841a..000000000 --- a/projects/map-tools/src/lib/projection-switch/projection-switch.component.spec.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { ProjectionSwitchComponent } from './projection-switch.component'; -import { ClarityModule } from '@clr/angular'; -import { FormsModule } from '@angular/forms'; -import { MapOlService } from '@dlr-eoc/map-ol'; - -describe('ProjectionSwitchComponent', () => { - let component: ProjectionSwitchComponent; - let fixture: ComponentFixture; - let mapSvc: MapOlService; - const projList: any[] = []; - - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [ClarityModule, FormsModule, ProjectionSwitchComponent] -}) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ProjectionSwitchComponent); - component = fixture.componentInstance; - mapSvc = TestBed.inject(MapOlService); - component.mapSvc = mapSvc; - component.projList = projList; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/map-tools/src/lib/projection-switch/projection-switch.component.ts b/projects/map-tools/src/lib/projection-switch/projection-switch.component.ts deleted file mode 100644 index 2e9da0f77..000000000 --- a/projects/map-tools/src/lib/projection-switch/projection-switch.component.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Component, OnInit, Input } from '@angular/core'; -import { Subscription } from 'rxjs'; -import { MapOlService } from '@dlr-eoc/map-ol'; - -import { MapStateService } from '@dlr-eoc/services-map-state'; - -import { ClarityIcons, eyeIcon, eyeHideIcon } from '@cds/core/icon'; - -import { ClrIconModule } from '@clr/angular'; -ClarityIcons.addIcons(...[eyeIcon, eyeHideIcon]); - -@Component({ - selector: 'ukis-projection-switch', - templateUrl: './projection-switch.component.html', - styles: [], - imports: [ - ClrIconModule - ] -}) -export class ProjectionSwitchComponent implements OnInit { - @Input('mapSvc') mapSvc: MapOlService; - @Input('mapStateSvc') mapStateSvc: MapStateService; - @Input('projectionList') projList: IProjDef[]; - @Input('fitViewToNewExtent') fitViewToNewExtent? = false; - subscription: Subscription; - selectedProj: IProjDef; - constructor() { } - - ngOnInit() { - if (this.projList[0]) { - this.setNewProjection(this.projList[0]); - } - } - - setNewProjection(projection: IProjDef) { - this.mapSvc.registerProjection(projection); - const newProj = this.mapSvc.getOlProjection(projection); - this.mapSvc.setProjection(newProj); - if (this.fitViewToNewExtent) { - this.mapStateSvc.setExtent(projection.worldExtent); - } - this.selectedProj = projection; - } -} - -export interface IProjDef { - code: string; // e.g.: "EPSG:3857" - proj4js: string; // ' proj4 string, e.g.: "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs" - title: string; // projection title shown on switch, e.g.: "Spherical Mercator", - extent: [number, number, number, number]; // projection extent in projected coordinates, e.g.: [-20026376.39, -20048966.10, 20026376.39, 20048966.10], - worldExtent: [number, number, number, number]; // projection extent in geographical coordinates, e.g.:[-180.0, -85.06, 180.0, 85.06], - global: true | false; // whether is global or local projection - units: 'm'; -} - diff --git a/projects/map-tools/src/lib/projection-switch/projection-switch.service.spec.ts b/projects/map-tools/src/lib/projection-switch/projection-switch.service.spec.ts deleted file mode 100644 index d981210fa..000000000 --- a/projects/map-tools/src/lib/projection-switch/projection-switch.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { ProjectionSwitchService } from './projection-switch.service'; - -describe('ProjectionSwitchService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: ProjectionSwitchService = TestBed.inject(ProjectionSwitchService); - expect(service).toBeTruthy(); - }); -}); diff --git a/projects/map-tools/src/lib/projection-switch/projection-switch.service.ts b/projects/map-tools/src/lib/projection-switch/projection-switch.service.ts deleted file mode 100644 index 98983e8eb..000000000 --- a/projects/map-tools/src/lib/projection-switch/projection-switch.service.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Injectable } from '@angular/core'; - -@Injectable({ - providedIn: 'root' -}) -export class ProjectionSwitchService { - - constructor() { } -} diff --git a/projects/map-tools/src/public-api.ts b/projects/map-tools/src/public-api.ts deleted file mode 100644 index 56a9a30e6..000000000 --- a/projects/map-tools/src/public-api.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Public API Surface of map-tools - */ - -export * from './lib/mouse-position/mouse-position.component'; -export * from './lib/navigator/map-navigator.component'; -export * from './lib/projection-switch/projection-switch.component'; - diff --git a/projects/map-tools/src/test.ts b/projects/map-tools/src/test.ts deleted file mode 100644 index 70b007097..000000000 --- a/projects/map-tools/src/test.ts +++ /dev/null @@ -1,17 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'zone.js'; -import 'zone.js/testing'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), { - teardown: { destroyAfterEach: false } -} -); diff --git a/projects/map-tools/tsconfig.lib.json b/projects/map-tools/tsconfig.lib.json deleted file mode 100644 index ea356ef5e..000000000 --- a/projects/map-tools/tsconfig.lib.json +++ /dev/null @@ -1,24 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/lib", - "declaration": true, - "declarationMap": true, - "inlineSources": true, - "types": [], - "lib": [ - "dom", - "es2018" - ] - }, - "angularCompilerOptions": { - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "enableResourceInlining": true - }, - "exclude": [ - "src/test.ts", - "**/*.spec.ts" - ] -} diff --git a/projects/map-tools/tsconfig.lib.prod.json b/projects/map-tools/tsconfig.lib.prod.json deleted file mode 100644 index 06de549e1..000000000 --- a/projects/map-tools/tsconfig.lib.prod.json +++ /dev/null @@ -1,10 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "./tsconfig.lib.json", - "compilerOptions": { - "declarationMap": false - }, - "angularCompilerOptions": { - "compilationMode": "partial" - } -} diff --git a/projects/map-tools/tsconfig.spec.json b/projects/map-tools/tsconfig.spec.json deleted file mode 100644 index b59a9caf8..000000000 --- a/projects/map-tools/tsconfig.spec.json +++ /dev/null @@ -1,17 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/spec", - "types": [ - "jasmine", "offscreencanvas" - ] - }, - "files": [ - "src/test.ts" - ], - "include": [ - "**/*.spec.ts", - "**/*.d.ts" - ] -} diff --git a/projects/map-tools/tslint.json b/projects/map-tools/tslint.json deleted file mode 100644 index bdd3d3033..000000000 --- a/projects/map-tools/tslint.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [ - true, - "attribute", - "ukis", - "camelCase" - ], - "component-selector": [ - true, - "element", - "ukis", - "kebab-case" - ] - } -} diff --git a/projects/services-layers/README.md b/projects/services-layers/README.md index ef96d9961..0095a0f14 100644 --- a/projects/services-layers/README.md +++ b/projects/services-layers/README.md @@ -47,7 +47,7 @@ For examples see: This module is used by components like: -- @dlr-eoc/layer-control +- @dlr-eoc/ngx-ukis-ui-clarity (layer-control) - @dlr-eoc/base-layers-raster - ... diff --git a/projects/services-map-state/README.md b/projects/services-map-state/README.md index 50f562d7c..269d7a24d 100644 --- a/projects/services-map-state/README.md +++ b/projects/services-map-state/README.md @@ -28,8 +28,7 @@ This module is used by components like: - @dlr-eoc/map-ol - @dlr-eoc/map-cesium - @dlr-eoc/map-maplibre -- @dlr-eoc/map-tools -- @dlr-eoc/layer-control +- @dlr-eoc/ngx-ukis-ui-clarity (layer-control, map-tools) - ... It implements a basic 'state' for the map like: diff --git a/projects/user-info/README.md b/projects/user-info/README.md deleted file mode 100644 index 1a9a5223d..000000000 --- a/projects/user-info/README.md +++ /dev/null @@ -1,63 +0,0 @@ -# @dlr-eoc/user-info - - -### how to use this in a ukis-angular project - -For a example [see demo auth](../demo-auth/README.md) - -#### add the following dependencies to the package.json -- "@dlr-eoc/user-info" - - -#### create a auth service -This service (e.g. basic-auth.service) includes your business logic for authentication and authorization - -#### create an AuthGuardService -This service protects your routes and is registered in the AppConfig or App Component - -#### add the following to the app.component.ts -``` -import { LoginComponent, RegisterComponent, UserDetailsComponent } from '@dlr-eoc/user-info'; -import { BasicAuthService } from './auth/basic-auth.service'; -import { HttpAuthInterceptor } from './auth/http-auth.interceptor'; - -... - imports: [ - ... - LoginComponent, RegisterComponent, UserDetailsComponent - ] - - providers: [ - BasicAuthService, - { - provide: HTTP_INTERCEPTORS, - useFactory: (BasicAuthService) => { - return new HttpAuthInterceptor(BasicAuthService); - }, - deps: [BasicAuthService], - multi: true - } - ] -``` - - -=== - -This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14. - -## Code scaffolding - -Run `ng generate component component-name --project user-info` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project user-info`. -> Note: Don't forget to add `--project user-info` or else it will be added to the default project in your `angular.json` file. - -## Build - -Run `ng build user-info` to build the project. The build artifacts will be stored in the `dist/` directory. - -## Running unit tests - -Run `ng test user-info` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/projects/user-info/karma.conf.js b/projects/user-info/karma.conf.js deleted file mode 100644 index 1c66d28e3..000000000 --- a/projects/user-info/karma.conf.js +++ /dev/null @@ -1,44 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client: { - jasmine: { - // you can add configuration options for Jasmine here - // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html - // for example, you can disable the random execution with `random: false` - // or set a specific seed with `seed: 4321` - }, - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - jasmineHtmlReporter: { - suppressAll: true // removes the duplicated traces - }, - coverageReporter: { - dir: require('path').join(__dirname, '../../coverage/user-info'), - subdir: '.', - reporters: [ - { type: 'html' }, - { type: 'text-summary' } - ] - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false, - restartOnFileChange: true - }); -}; diff --git a/projects/user-info/ng-package.json b/projects/user-info/ng-package.json deleted file mode 100644 index 32d410543..000000000 --- a/projects/user-info/ng-package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", - "dest": "../../dist/user-info", - "lib": { - "entryFile": "src/public-api.ts" - }, - "allowedNonPeerDependencies": [ - "tslib" - ] -} diff --git a/projects/user-info/package.json b/projects/user-info/package.json deleted file mode 100644 index bcc4bfe65..000000000 --- a/projects/user-info/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@dlr-eoc/user-info", - "version": "16.0.0-next.0", - "main": "src/public-api", - "license": "Apache-2.0", - "author": "Team UKIS", - "description": "This is a angular module that exports some UI components to manage views for users, like login, registration or details.", - "keywords": [ - "angular", - "Clarity Design", - "login", - "registration", - "user details" - ], - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "@angular/forms": "^19.2.12", - "@clr/angular": "^17.10.0", - "@cds/core": "^6.15.1", - "@clr/ui": "^17.10.0", - "rxjs": "~7.8.2" - }, - "devDependencies": { - "zone.js": "~0.15.0", - "@angular/platform-browser-dynamic": "^19.2.12" - }, - "dependencies": { - "tslib": "^2.6.3" - } -} diff --git a/projects/user-info/src/lib/login/login.component.html b/projects/user-info/src/lib/login/login.component.html deleted file mode 100644 index cbad1c0e0..000000000 --- a/projects/user-info/src/lib/login/login.component.html +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/projects/user-info/src/lib/login/login.component.scss b/projects/user-info/src/lib/login/login.component.scss deleted file mode 100644 index d6daad493..000000000 --- a/projects/user-info/src/lib/login/login.component.scss +++ /dev/null @@ -1,22 +0,0 @@ -.login-wrapper { - height: auto; - background: none; - background-size: none; - background-position: none; - background-repeat: none; - - .login { - min-height: auto; - padding: 0 0; - - &::after { - display: none; - } - - .login-group { - .btn { - margin: 1rem 0 0 0; - } - } - } -} diff --git a/projects/user-info/src/lib/login/login.component.spec.ts b/projects/user-info/src/lib/login/login.component.spec.ts deleted file mode 100644 index 1626fa90f..000000000 --- a/projects/user-info/src/lib/login/login.component.spec.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { LoginComponent } from './login.component'; -import { UserService, IAuthService, IUser, IUserinfo, ExampleAuthService } from '../user.service'; -import { ClarityModule } from '@clr/angular'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { of } from 'rxjs'; - -describe('LoginComponent', () => { - let component: LoginComponent; - let fixture: ComponentFixture; - let usrSvc: UserService; - let authService: IAuthService; - - - beforeEach(waitForAsync(() => { - authService = new ExampleAuthService(); - usrSvc = new UserService(); - usrSvc.setAuthService(authService); - - TestBed.configureTestingModule({ - imports: [ClarityModule, FormsModule, ReactiveFormsModule, LoginComponent], - providers: [{ provide: UserService, useValue: usrSvc }] -}).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(LoginComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/user-info/src/lib/login/login.component.ts b/projects/user-info/src/lib/login/login.component.ts deleted file mode 100644 index 112078842..000000000 --- a/projects/user-info/src/lib/login/login.component.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Component, OnDestroy } from '@angular/core'; -import { FormGroup, FormControl, Validators, ValidationErrors, FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { UserService, IUserinfo, IUser } from '../user.service'; -import { Subscription } from 'rxjs'; -import { ClrInputModule, ClrCommonFormsModule, ClrPasswordModule, ClrCheckboxModule } from '@clr/angular'; - -interface IusrInfoForm { - usrName: FormControl; - usrPass: FormControl; - remember: FormControl; -} -@Component({ - selector: 'ukis-login', - templateUrl: './login.component.html', - styleUrls: ['./login.component.scss'], - imports: [FormsModule, ReactiveFormsModule, ClrInputModule, ClrCommonFormsModule, ClrPasswordModule, ClrCheckboxModule] -}) -export class LoginComponent implements OnDestroy { - public usrInfoFormOptions: IusrInfoForm; - public usrInfoForm: FormGroup; - - usrSubsription: Subscription; - user: IUser; - submitted: boolean; - - constructor(public usrSvc: UserService) { - this.usrInfoFormOptions = { - usrName: new FormControl('', Validators.required), - usrPass: new FormControl('', [Validators.required, Validators.minLength(4)]), - remember: new FormControl(false) - }; - this.usrInfoForm = new FormGroup(this.usrInfoFormOptions, { updateOn: 'blur' }); - - this.usrSubsription = this.usrSvc.getUserInfo().subscribe((userinfo) => { - this.user = userinfo.current_user; - }, (error) => { - console.log(error); - }); - } - - login() { - const user: IUser = { - userName: this.usrInfoForm.get('usrName').value, - password: this.usrInfoForm.get('usrPass').value, - remember: this.usrInfoForm.get('remember').value - }; - this.usrSvc.login(user); - } - - getFormError(key) { - let error = ''; - const controlErrors: ValidationErrors = this.usrInfoForm.get(key).errors; - if (controlErrors != null) { - Object.keys(controlErrors).forEach((keyError, index) => { - let newError = keyError; - if (keyError !== 'required') { - newError = JSON.stringify(this.usrInfoForm.get(key).errors[keyError]); - } - if (index === 0) { - error += `${newError}`; - } else { - error += ` and ${newError}`; - } - }); - } - return error; - } - - logout() { - this.usrSvc.logout(); - } - - ngOnDestroy() { - this.usrSubsription.unsubscribe(); - } - -} diff --git a/projects/user-info/src/lib/register/register.component.html b/projects/user-info/src/lib/register/register.component.html deleted file mode 100644 index f2570e286..000000000 --- a/projects/user-info/src/lib/register/register.component.html +++ /dev/null @@ -1,36 +0,0 @@ - diff --git a/projects/user-info/src/lib/register/register.component.scss b/projects/user-info/src/lib/register/register.component.scss deleted file mode 100644 index d6daad493..000000000 --- a/projects/user-info/src/lib/register/register.component.scss +++ /dev/null @@ -1,22 +0,0 @@ -.login-wrapper { - height: auto; - background: none; - background-size: none; - background-position: none; - background-repeat: none; - - .login { - min-height: auto; - padding: 0 0; - - &::after { - display: none; - } - - .login-group { - .btn { - margin: 1rem 0 0 0; - } - } - } -} diff --git a/projects/user-info/src/lib/register/register.component.spec.ts b/projects/user-info/src/lib/register/register.component.spec.ts deleted file mode 100644 index 0b45f923d..000000000 --- a/projects/user-info/src/lib/register/register.component.spec.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { RegisterComponent } from './register.component'; -import { ClarityModule } from '@clr/angular'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { UserService, ExampleAuthService, IAuthService } from '../user.service'; - - -describe('RegisterComponent', () => { - let component: RegisterComponent; - let fixture: ComponentFixture; - let usrSvc: UserService; - let authService: IAuthService; - - - beforeEach(waitForAsync(() => { - authService = new ExampleAuthService(); - usrSvc = new UserService(); - usrSvc.setAuthService(authService); - - TestBed.configureTestingModule({ - imports: [ClarityModule, FormsModule, ReactiveFormsModule, RegisterComponent], - providers: [{ provide: UserService, useValue: usrSvc }] -}) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(RegisterComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/user-info/src/lib/register/register.component.ts b/projects/user-info/src/lib/register/register.component.ts deleted file mode 100644 index af27f3511..000000000 --- a/projects/user-info/src/lib/register/register.component.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Component, OnDestroy } from '@angular/core'; -import { FormGroup, Validators, FormControl, ValidationErrors, FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { Subscription } from 'rxjs'; -import { UserService, IRegisterUser, IUser } from '../user.service'; -import { ClrInputModule, ClrCommonFormsModule, ClrPasswordModule } from '@clr/angular'; - -interface IusrInfoForm { - usrName: FormControl; - usrPass: FormControl; - firstName: FormControl; - lastName: FormControl; - email: FormControl; -} -@Component({ - selector: 'ukis-register', - templateUrl: './register.component.html', - styleUrls: ['./register.component.scss'], - imports: [FormsModule, ReactiveFormsModule, ClrInputModule, ClrCommonFormsModule, ClrPasswordModule] -}) -export class RegisterComponent implements OnDestroy { - usrInfoFormOptions: IusrInfoForm; - usrInfoForm: FormGroup; - - usrSubsription: Subscription; - user: IUser; - submitted: false; - - constructor(private usrSvc: UserService) { - this.usrInfoFormOptions = { - usrName: new FormControl('', Validators.required), - usrPass: new FormControl('', [Validators.required, Validators.minLength(4)]), - firstName: new FormControl(''), - lastName: new FormControl(''), - email: new FormControl('', [Validators.required, Validators.email]), - }; - this.usrInfoForm = new FormGroup(this.usrInfoFormOptions); - - this.usrSubsription = this.usrSvc.getUserInfo().subscribe((userinfo) => { - this.user = userinfo.current_user; - }, (error) => { - console.log(error); - }); - } - - getFormError(key) { - let error = ''; - const controlErrors: ValidationErrors = this.usrInfoForm.get(key).errors; - if (controlErrors != null) { - Object.keys(controlErrors).forEach((keyError, index) => { - let newError = keyError; - if (keyError !== 'required') { - newError = JSON.stringify(this.usrInfoForm.get(key).errors[keyError]); - } - if (index === 0) { - error += `${newError}`; - } else { - error += ` and ${newError}`; - } - }); - } - return error; - } - - register() { - const user: IRegisterUser = { - userName: this.usrInfoForm.get('usrName').value, - password: this.usrInfoForm.get('usrPass').value, - email: this.usrInfoForm.get('email').value, - firstName: this.usrInfoForm.get('firstName').value, - lastName: this.usrInfoForm.get('lastName').value - }; - this.usrSvc.register(user); - } - - ngOnDestroy() { - this.usrSubsription.unsubscribe(); - } - -} diff --git a/projects/user-info/src/lib/user-details/user-details.component.html b/projects/user-info/src/lib/user-details/user-details.component.html deleted file mode 100644 index 01731b05f..000000000 --- a/projects/user-info/src/lib/user-details/user-details.component.html +++ /dev/null @@ -1,17 +0,0 @@ -@if (user) { -
- @if (user.firstName) { -
Hello {{user.firstName}} {{user.lastName}}!
- } - @if (!user.firstName && user.userName) { -
Hello {{user.userName}}!
- } - @if (user.email) { -
your email is: {{user.email}}
- } -
- -
- } diff --git a/projects/user-info/src/lib/user-details/user-details.component.scss b/projects/user-info/src/lib/user-details/user-details.component.scss deleted file mode 100644 index 8b1378917..000000000 --- a/projects/user-info/src/lib/user-details/user-details.component.scss +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/user-info/src/lib/user-details/user-details.component.spec.ts b/projects/user-info/src/lib/user-details/user-details.component.spec.ts deleted file mode 100644 index 78cea9916..000000000 --- a/projects/user-info/src/lib/user-details/user-details.component.spec.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { UserDetailsComponent } from './user-details.component'; -import { UserService, IAuthService, ExampleAuthService } from '../user.service'; -import { ClarityModule } from '@clr/angular'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; - - -describe('UserDetailsComponent', () => { - let component: UserDetailsComponent; - let fixture: ComponentFixture; - let usrSvc: UserService; - let authService: IAuthService; - - - beforeEach(waitForAsync(() => { - authService = new ExampleAuthService(); - usrSvc = new UserService(); - usrSvc.setAuthService(authService); - - TestBed.configureTestingModule({ - imports: [ClarityModule, FormsModule, ReactiveFormsModule, UserDetailsComponent], - providers: [{ provide: UserService, useValue: usrSvc }] -}) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(UserDetailsComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/user-info/src/lib/user-details/user-details.component.ts b/projects/user-info/src/lib/user-details/user-details.component.ts deleted file mode 100644 index fc0b75337..000000000 --- a/projects/user-info/src/lib/user-details/user-details.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Component, OnDestroy } from '@angular/core'; -import { Subscription } from 'rxjs'; -import { UserService } from '../user.service'; - - -@Component({ - selector: 'ukis-user-details', - templateUrl: './user-details.component.html', - styleUrls: ['./user-details.component.scss'], - imports: [] -}) -export class UserDetailsComponent implements OnDestroy { - - usrSubsription: Subscription; - user: any; // IUser; //angular language service error: https://github.com/angular/angular/issues/17953 - - constructor(public usrSvc: UserService) { - this.usrSubsription = this.usrSvc.getUserInfo().subscribe((userinfo) => { - this.user = userinfo.current_user; - }, (error) => { - console.log(error); - }); - } - - logout() { - this.usrSvc.logout(); - } - - ngOnDestroy() { - this.usrSubsription.unsubscribe(); - } -} diff --git a/projects/user-info/src/lib/user.service.spec.ts b/projects/user-info/src/lib/user.service.spec.ts deleted file mode 100644 index 6cb4c1873..000000000 --- a/projects/user-info/src/lib/user.service.spec.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { TestBed } from '@angular/core/testing'; -import { HttpTestingController, provideHttpClientTesting } from '@angular/common/http/testing'; - -import { UserService } from './user.service'; -import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; - - - -describe('UserService', () => { - let service: UserService; - let httpMock: HttpTestingController; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [], - providers: [UserService, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting()] -}); - service = TestBed.inject(UserService); - httpMock = TestBed.inject(HttpTestingController); - }); - - afterEach(() => { - httpMock.verify(); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); - - it('should have one oth the loginmethodes', () => { - service.loginmethode = 'oauth_code'; - expect(service.loginmethode).toBe('oauth_code'); - }); - - it('should have a getUserInfo Methode', () => { - expect(typeof service.getUserInfo).toBe('function'); - }); - - it('should have a login Methode', () => { - expect(typeof service.login).toBe('function'); - }); - - it('should have a isloggedIn Methode', () => { - expect(typeof service.isloggedIn).toBe('function'); - }); - - it('should have a logout Methode', () => { - expect(typeof service.logout).toBe('function'); - }); - - it('should have a setAuthService Methode', () => { - expect(typeof service.setAuthService).toBe('function'); - }); -}); diff --git a/projects/user-info/src/lib/user.service.ts b/projects/user-info/src/lib/user.service.ts deleted file mode 100644 index 77948613d..000000000 --- a/projects/user-info/src/lib/user.service.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Observable, of } from 'rxjs'; - -export interface IUrls { - login: string; - logout: string; - register: string; -} - -export interface IRegisterUser { - userName: string; - password: string; - email?: string; - firstName?: string; - lastName?: string; -} - -export interface IUserDetails { - userID?: string; - loggedIn?: boolean; - isAuthorized?: boolean; - remember?: boolean; - permissions?: Array; - firstName?: string; - lastName?: string; - email?: string; -} - -/** oauth_pass */ -export interface IBasicUser extends IUserDetails { - userName: string; - password: string; -} - -/** oauth_code */ -export interface ITokenUser extends IUserDetails { - token: string; -} - -export type IUser = IBasicUser | ITokenUser; - -export interface IUserinfo { - current_user: IUser; - urls: IUrls | null; -} - -export interface IAuthService { - loginmethode: 'oauth_pass' | 'oauth_code' | 'ukis_cas'; - login(user: IUser): Observable; - logout(user?: IUser): Observable; - getUserInfo(user?: IUser): Observable; - /** confirming the user is logged in and valid */ - isloggedIn(): boolean; - /** check if the user has access rights/privilege */ - checkSession?(); - checkAuthorization?(permissions: string[], user?: IUser): Observable; - // register?(user: IRegisterUser): Observable; -} - -export class ExampleAuthService implements IAuthService { - exampleUserInfo: IUserinfo = { - current_user: { - userName: 'name', - password: 'pass' - }, - urls: { - login: 'https://example/login', - logout: 'https://example/logout', - register: 'https://example/register' - } - }; - - loginmethode: 'oauth_pass'; - login = (user: IUser) => of(this.exampleUserInfo); - logout = (user?: IUser) => of(this.exampleUserInfo); - getUserInfo = (user?: IUser) => of(this.exampleUserInfo); - isloggedIn = () => true; -} - - - -@Injectable({ - providedIn: 'root' -}) -export class UserService implements IAuthService { - private authService: IAuthService; - loginmethode: 'oauth_pass' | 'oauth_code' | 'ukis_cas'; - constructor() { } - - getUserInfo(user?: IUser) { - return this.authService.getUserInfo(user); - } - - login(user: IUser) { - return this.authService.login(user); - } - - isloggedIn() { - return this.authService.isloggedIn(); - } - - logout(user?: IUser) { - return this.authService.logout(); - } - - register(user: IRegisterUser) { - console.log('TODO: inject Service to handle register'); - // this.mockLoginService(username, password, email, firstName, lastName); - } - - setAuthService(authService) { - this.authService = authService; - } - -} diff --git a/projects/user-info/src/public-api.ts b/projects/user-info/src/public-api.ts deleted file mode 100644 index b3527eb6b..000000000 --- a/projects/user-info/src/public-api.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Public API Surface of user-info - */ - -export * from './lib/user.service'; -export * from './lib/login/login.component'; -export * from './lib/register/register.component'; -export * from './lib/user-details/user-details.component'; diff --git a/projects/user-info/src/test.ts b/projects/user-info/src/test.ts deleted file mode 100644 index 70b007097..000000000 --- a/projects/user-info/src/test.ts +++ /dev/null @@ -1,17 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'zone.js'; -import 'zone.js/testing'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), { - teardown: { destroyAfterEach: false } -} -); diff --git a/projects/user-info/tsconfig.lib.json b/projects/user-info/tsconfig.lib.json deleted file mode 100644 index ea356ef5e..000000000 --- a/projects/user-info/tsconfig.lib.json +++ /dev/null @@ -1,24 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/lib", - "declaration": true, - "declarationMap": true, - "inlineSources": true, - "types": [], - "lib": [ - "dom", - "es2018" - ] - }, - "angularCompilerOptions": { - "skipTemplateCodegen": true, - "strictMetadataEmit": true, - "enableResourceInlining": true - }, - "exclude": [ - "src/test.ts", - "**/*.spec.ts" - ] -} diff --git a/projects/user-info/tsconfig.lib.prod.json b/projects/user-info/tsconfig.lib.prod.json deleted file mode 100644 index 06de549e1..000000000 --- a/projects/user-info/tsconfig.lib.prod.json +++ /dev/null @@ -1,10 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "./tsconfig.lib.json", - "compilerOptions": { - "declarationMap": false - }, - "angularCompilerOptions": { - "compilationMode": "partial" - } -} diff --git a/projects/user-info/tsconfig.spec.json b/projects/user-info/tsconfig.spec.json deleted file mode 100644 index 715dd0a5d..000000000 --- a/projects/user-info/tsconfig.spec.json +++ /dev/null @@ -1,17 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "../../out-tsc/spec", - "types": [ - "jasmine" - ] - }, - "files": [ - "src/test.ts" - ], - "include": [ - "**/*.spec.ts", - "**/*.d.ts" - ] -} diff --git a/projects/user-info/tslint.json b/projects/user-info/tslint.json deleted file mode 100644 index bdd3d3033..000000000 --- a/projects/user-info/tslint.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [ - true, - "attribute", - "ukis", - "camelCase" - ], - "component-selector": [ - true, - "element", - "ukis", - "kebab-case" - ] - } -} From 3c5ed22a929a94cb09da9ad925e06db9acab0c51 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Thu, 4 Sep 2025 11:30:34 +0200 Subject: [PATCH 19/30] fix (ukis-libraries-scripts): add missing dev dependency --- scripts/library/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/library/package.json b/scripts/library/package.json index 4e7be642b..e925b1742 100644 --- a/scripts/library/package.json +++ b/scripts/library/package.json @@ -28,6 +28,7 @@ "devDependencies": { "@types/jasmine": "^5.1.8", "@types/node": "^22.15.21", - "@types/toposort": "^2.0.3" + "@types/toposort": "^2.0.3", + "tslib": "^2.6.3" } } From 4ef6ef4ef201471574d77fbd1960647e8518c59e Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Thu, 4 Sep 2025 13:59:10 +0200 Subject: [PATCH 20/30] build: fix lock file --- package-lock.json | 9400 +++++++++++++++++++++++++++------------------ 1 file changed, 5669 insertions(+), 3731 deletions(-) diff --git a/package-lock.json b/package-lock.json index d4c7770e3..1c79bc2b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -268,126 +268,7 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1902.15", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1902.15.tgz", - "integrity": "sha512-pIfZeizWsViXx8bsMoBLZw7Tl7uFf7bM7hAfmNwk0bb0QGzx5k1BiW6IKWyaG+Dg6U4UCrlNpIiut2b78HwQZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1902.15", - "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-webpack/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular-devkit/core": { - "version": "19.2.15", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.15.tgz", - "integrity": "sha512-pU2RZYX6vhd7uLSdLwPnuBcr0mXJSjp3EgOXKsrlQFQZevc+Qs+2JdXgIElnOT/aDqtRtriDmLlSbtdE8n3ZbA==", - "license": "MIT", - "dependencies": { - "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": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^4.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular-devkit/schematics": { - "version": "19.2.15", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.15.tgz", - "integrity": "sha512-kNOJ+3vekJJCQKWihNmxBkarJzNW09kP5a9E1SRNiQVNOUEeSwcRR0qYotM65nx821gNzjjhJXnAZ8OazWldrg==", - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "19.2.15", - "jsonc-parser": "3.3.1", - "magic-string": "0.30.17", - "ora": "5.4.1", - "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" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular/animations": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.2.14.tgz", - "integrity": "sha512-xhl8fLto5HHJdVj8Nb6EoBEiTAcXuWDYn1q5uHcGxyVH3kiwENWy/2OQXgCr2CuWo2e6hNUGzSLf/cjbsMNqEA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/common": "19.2.14", - "@angular/core": "19.2.14" - } - }, - "node_modules/@angular/build": { + "node_modules/@angular-devkit/build-angular/node_modules/@angular/build": { "version": "19.2.15", "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.2.15.tgz", "integrity": "sha512-iE4fp4d5ALu702uoL6/YkjM2JlGEXZ5G+RVzq3W2jg/Ft6ISAQnRKB6mymtetDD6oD7i87e8uSu9kFVNBauX2w==", @@ -473,7 +354,7 @@ } } }, - "node_modules/@angular/build/node_modules/vite": { + "node_modules/@angular-devkit/build-angular/node_modules/@angular/build/node_modules/vite": { "version": "6.2.7", "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.7.tgz", "integrity": "sha512-qg3LkeuinTrZoJHHF94coSaTfIPyBYoywp+ys4qu20oSJFbKMYoIJo0FWJT9q6Vp49l6z9IsJRbHdcGtiKbGoQ==", @@ -545,7 +426,7 @@ } } }, - "node_modules/@angular/build/node_modules/vite/node_modules/postcss": { + "node_modules/@angular-devkit/build-angular/node_modules/@angular/build/node_modules/vite/node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", @@ -574,129 +455,23 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/@angular/cdk": { - "version": "19.2.19", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.2.19.tgz", - "integrity": "sha512-PCpJagurPBqciqcq4Z8+3OtKLb7rSl4w/qBJoIMua8CgnrjvA1i+SWawhdtfI1zlY8FSwhzLwXV0CmWWfFzQPg==", - "license": "MIT", - "peer": true, - "dependencies": { - "parse5": "^7.1.2", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": "^19.0.0 || ^20.0.0", - "@angular/core": "^19.0.0 || ^20.0.0", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/cli": { - "version": "19.2.15", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.2.15.tgz", - "integrity": "sha512-YRIpARHWSOnWkHusUWTQgeUrPWMjWvtQrOkjWc6stF36z2KUzKMEng6EzUvH6sZolNSwVwOFpODEP0ut4aBkvQ==", - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1902.15", - "@angular-devkit/core": "19.2.15", - "@angular-devkit/schematics": "19.2.15", - "@inquirer/prompts": "7.3.2", - "@listr2/prompt-adapter-inquirer": "2.0.18", - "@schematics/angular": "19.2.15", - "@yarnpkg/lockfile": "1.1.0", - "ini": "5.0.0", - "jsonc-parser": "3.3.1", - "listr2": "8.2.5", - "npm-package-arg": "12.0.2", - "npm-pick-manifest": "10.0.0", - "pacote": "20.0.0", - "resolve": "1.22.10", - "semver": "7.7.1", - "symbol-observable": "4.0.0", - "yargs": "17.7.2" - }, - "bin": { - "ng": "bin/ng.js" - }, - "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" - } - }, - "node_modules/@angular/common": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.2.14.tgz", - "integrity": "sha512-NcNklcuyqaTjOVGf7aru8APX9mjsnZ01gFZrn47BxHozhaR0EMRrotYQTdi8YdVjPkeYFYanVntSLfhyobq/jg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/core": "19.2.14", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/compiler": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.2.14.tgz", - "integrity": "sha512-ZqJDYOdhgKpVGNq3+n/Gbxma8DVYElDsoRe0tvNtjkWBVdaOxdZZUqmJ3kdCBsqD/aqTRvRBu0KGo9s2fCChkA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - } - }, - "node_modules/@angular/compiler-cli": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.2.14.tgz", - "integrity": "sha512-e9/h86ETjoIK2yTLE9aUeMCKujdg/du2pq7run/aINjop4RtnNOw+ZlSTUa6R65lP5CVwDup1kPytpAoifw8cA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "7.26.9", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^4.0.0", - "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.2.0", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, - "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/index.js" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/compiler": "19.2.14", - "typescript": ">=5.5 <5.9" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", - "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", + "@babel/generator": "^7.26.10", "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.9", - "@babel/parser": "^7.26.9", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.9", - "@babel/types": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -711,14 +486,7 @@ "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, - "license": "MIT" - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "node_modules/@angular-devkit/build-angular/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==", @@ -728,211 +496,7 @@ "semver": "bin/semver.js" } }, - "node_modules/@angular/core": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.2.14.tgz", - "integrity": "sha512-EVErpW9tGqJ/wNcAN3G/ErH8pHCJ8mM1E6bsJ8UJIpDTZkpqqYjBMtZS9YWH5n3KwUd1tAkAB2w8FK125AjDUQ==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.15.0" - } - }, - "node_modules/@angular/forms": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.2.14.tgz", - "integrity": "sha512-hWtDOj2B0AuRTf+nkMJeodnFpDpmEK9OIhIv1YxcRe73ooaxrIdjgugkElO8I9Tj0E4/7m117ezhWDUkbqm1zA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/common": "19.2.14", - "@angular/core": "19.2.14", - "@angular/platform-browser": "19.2.14", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/language-service": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-19.2.14.tgz", - "integrity": "sha512-XgzZdBCe/obCrck5I6GIG4qSI9UGaOtbrvNuw0QAK0DySKaW5inRm6/QwCMPRmPkJBY0wLeYUVz//rtHpEjeTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - } - }, - "node_modules/@angular/platform-browser": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.2.14.tgz", - "integrity": "sha512-hzkT5nmA64oVBQl6PRjdL4dIFT1n7lfM9rm5cAoS+6LUUKRgiE2d421Kpn/Hz3jaCJfo+calMIdtSMIfUJBmww==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/animations": "19.2.14", - "@angular/common": "19.2.14", - "@angular/core": "19.2.14" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } - } - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.2.14.tgz", - "integrity": "sha512-Hfz0z1KDQmIdnFXVFCwCPykuIsHPkr1uW2aY396eARwZ6PK8i0Aadcm1ZOnpd3MR1bMyDrJo30VRS5kx89QWvA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/common": "19.2.14", - "@angular/compiler": "19.2.14", - "@angular/core": "19.2.14", - "@angular/platform-browser": "19.2.14" - } - }, - "node_modules/@angular/router": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.2.14.tgz", - "integrity": "sha512-cBTWY9Jx7YhbmDYDb7Hqz4Q7UNIMlKTkdKToJd2pbhIXyoS+kHVQrySmyca+jgvYMjWnIjsAEa3dpje12D4mFw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/common": "19.2.14", - "@angular/core": "19.2.14", - "@angular/platform-browser": "19.2.14", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", - "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", - "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.10", - "@babel/types": "^7.26.10", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@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, - "license": "MIT" - }, - "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, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz", - "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.10", - "@babel/types": "^7.26.10", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-compilation-targets": { "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", @@ -949,7 +513,7 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", @@ -959,7 +523,7 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-create-class-features-plugin": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-create-class-features-plugin": { "version": "7.28.3", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", @@ -981,7 +545,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { "version": "7.27.3", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", @@ -994,7 +558,7 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "node_modules/@angular-devkit/build-angular/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==", @@ -1004,7 +568,7 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", @@ -1022,7 +586,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { "version": "7.27.3", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", @@ -1035,7 +599,7 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "node_modules/@angular-devkit/build-angular/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==", @@ -1045,7 +609,7 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-define-polyfill-provider": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-define-polyfill-provider": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", @@ -1062,44 +626,7 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", - "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-module-transforms": { "version": "7.28.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", @@ -1117,30 +644,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", - "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-remap-async-to-generator": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", @@ -1158,7 +662,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { "version": "7.27.3", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", @@ -1171,7 +675,7 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-replace-supers": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/helper-replace-supers": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", @@ -1189,106 +693,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", - "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "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.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", - "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", @@ -1305,7 +710,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", @@ -1321,7 +726,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", @@ -1337,7 +742,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", @@ -1355,7 +760,7 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { "version": "7.28.3", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", @@ -1372,7 +777,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "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==", @@ -1385,7 +790,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", @@ -1401,7 +806,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", @@ -1417,7 +822,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", "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==", @@ -1434,7 +839,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", @@ -1450,7 +855,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-generator-functions": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-async-generator-functions": { "version": "7.26.8", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", @@ -1468,7 +873,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", @@ -1486,7 +891,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", @@ -1502,7 +907,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-block-scoping": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", @@ -1518,7 +923,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-class-properties": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-class-properties": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", @@ -1535,7 +940,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-class-static-block": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-class-static-block": { "version": "7.28.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", @@ -1552,7 +957,7 @@ "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-transform-classes": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-classes": { "version": "7.28.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz", "integrity": "sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==", @@ -1573,7 +978,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { "version": "7.27.3", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", @@ -1586,7 +991,7 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-computed-properties": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", @@ -1603,7 +1008,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-destructuring": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", @@ -1620,7 +1025,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", @@ -1637,7 +1042,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", @@ -1653,7 +1058,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", @@ -1670,7 +1075,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-dynamic-import": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", @@ -1686,7 +1091,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", @@ -1702,7 +1107,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-export-namespace-from": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-export-namespace-from": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", @@ -1718,7 +1123,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-for-of": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", @@ -1735,7 +1140,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-function-name": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", @@ -1753,7 +1158,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-json-strings": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-json-strings": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", @@ -1769,7 +1174,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-literals": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", @@ -1785,7 +1190,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-logical-assignment-operators": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", @@ -1801,7 +1206,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", @@ -1817,7 +1222,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-amd": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-modules-amd": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", @@ -1834,7 +1239,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", @@ -1851,7 +1256,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", @@ -1870,7 +1275,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-umd": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-modules-umd": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", @@ -1887,7 +1292,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", @@ -1904,7 +1309,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-new-target": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-new-target": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", @@ -1920,7 +1325,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-nullish-coalescing-operator": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", @@ -1936,7 +1341,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-numeric-separator": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-numeric-separator": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", @@ -1952,7 +1357,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-rest-spread": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-object-rest-spread": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", @@ -1972,7 +1377,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-object-super": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", @@ -1989,7 +1394,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-optional-catch-binding": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", @@ -2005,7 +1410,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-optional-chaining": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-optional-chaining": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", @@ -2022,7 +1427,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-parameters": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-parameters": { "version": "7.27.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", @@ -2038,7 +1443,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-private-methods": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-private-methods": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", @@ -2055,7 +1460,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-private-property-in-object": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-private-property-in-object": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", @@ -2073,7 +1478,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { "version": "7.27.3", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", @@ -2086,7 +1491,7 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/plugin-transform-property-literals": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-property-literals": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", @@ -2102,7 +1507,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-regenerator": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-regenerator": { "version": "7.28.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz", "integrity": "sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==", @@ -2118,7 +1523,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-regexp-modifiers": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", @@ -2135,7 +1540,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-reserved-words": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", @@ -2151,7 +1556,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-runtime": { "version": "7.26.10", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz", "integrity": "sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==", @@ -2172,7 +1577,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-runtime/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", @@ -2182,7 +1587,7 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", @@ -2198,7 +1603,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-spread": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-spread": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", @@ -2215,7 +1620,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", @@ -2231,7 +1636,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-template-literals": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-template-literals": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", @@ -2247,7 +1652,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", @@ -2263,7 +1668,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-escapes": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", @@ -2279,7 +1684,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-unicode-property-regex": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", @@ -2296,7 +1701,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", @@ -2313,7 +1718,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/plugin-transform-unicode-sets-regex": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", @@ -2330,7 +1735,7 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/preset-env": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env": { "version": "7.26.9", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", @@ -2414,7 +1819,7 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/semver": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", @@ -2424,7 +1829,7 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/preset-modules": { + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-modules": { "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==", @@ -2439,316 +1844,2780 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", - "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "node_modules/@angular-devkit/build-angular/node_modules/@inquirer/confirm": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.6.tgz", + "integrity": "sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==", "dev": true, "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@inquirer/core": "^10.1.7", + "@inquirer/type": "^3.0.4" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "node": ">=18" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", - "debug": "^4.3.1" + "peerDependencies": { + "@types/node": ">=18" }, - "engines": { - "node": ">=6.9.0" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", + "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", + "cpu": [ + "arm" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-android-arm64": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", + "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@cds/city": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@cds/city/-/city-1.1.0.tgz", - "integrity": "sha512-S9K+Q39BGOghyLHmR0Wdcmu1i1noSUk8HcvMj+3IaohZw02WFd99aPTQDHJeseXrXZP3CNovaSlePI0R11NcFg==", - "license": "OFL-1.1", - "optional": true + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@cds/core": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/@cds/core/-/core-6.16.1.tgz", - "integrity": "sha512-skEie8NvnSwjnY3lufKMOtKoHG5V2B5cWA8+tH7LB7zXlq8cLkK6VPeQy15Wm/3oXaVzGhN283e8Z8+cRSLQqg==", + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", + "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "lit": "^2.1.3", - "ramda": "^0.29.0", - "tslib": "^2.3.1" - }, - "optionalDependencies": { - "@cds/city": "^1.1.0", - "modern-normalize": "1.1.0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@clr/angular": { - "version": "17.11.2", - "resolved": "https://registry.npmjs.org/@clr/angular/-/angular-17.11.2.tgz", - "integrity": "sha512-iXmPAdLLD+WXXGrglVxZKJW/J7BOeCWirNlWymQ7fuz5GJE5Q72wMGVOHoZ644SXx3fCBjRc/ek8wcMqYGyvsg==", + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-darwin-x64": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", + "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/cdk": "15 || 16 || 17 || 18 || 19", - "@angular/common": "15 || 16 || 17 || 18 || 19", - "@angular/core": "15 || 16 || 17 || 18 || 19", - "@cds/core": ">= 6.9.2", - "@clr/ui": "17.11.2" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@clr/ui": { - "version": "17.11.2", - "resolved": "https://registry.npmjs.org/@clr/ui/-/ui-17.11.2.tgz", - "integrity": "sha512-KbJ4XZQbq1EToIs+wnCrO5FPjHR1f/vUCaqEYsVUxHAGC33B/5zKvUttarU1UJD3rv7Tb+BNXdx2oBsklRhiog==", - "license": "MIT", - "peerDependencies": { - "@cds/core": "^6.9.2" + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", + "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", + "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", + "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", + "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", + "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", + "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", + "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", + "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", + "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", + "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", + "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", + "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", + "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", + "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@angular-devkit/build-angular/node_modules/@types/estree": { + "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, + "license": "MIT" + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-loader": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-plugin-polyfill-corejs2/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/@angular-devkit/build-angular/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/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, + "license": "MIT" + }, + "node_modules/@angular-devkit/build-angular/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular-devkit/build-angular/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rollup": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", + "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.34.8", + "@rollup/rollup-android-arm64": "4.34.8", + "@rollup/rollup-darwin-arm64": "4.34.8", + "@rollup/rollup-darwin-x64": "4.34.8", + "@rollup/rollup-freebsd-arm64": "4.34.8", + "@rollup/rollup-freebsd-x64": "4.34.8", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", + "@rollup/rollup-linux-arm-musleabihf": "4.34.8", + "@rollup/rollup-linux-arm64-gnu": "4.34.8", + "@rollup/rollup-linux-arm64-musl": "4.34.8", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", + "@rollup/rollup-linux-riscv64-gnu": "4.34.8", + "@rollup/rollup-linux-s390x-gnu": "4.34.8", + "@rollup/rollup-linux-x64-gnu": "4.34.8", + "@rollup/rollup-linux-x64-musl": "4.34.8", + "@rollup/rollup-win32-arm64-msvc": "4.34.8", + "@rollup/rollup-win32-ia32-msvc": "4.34.8", + "@rollup/rollup-win32-x64-msvc": "4.34.8", + "fsevents": "~2.3.2" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1902.15", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1902.15.tgz", + "integrity": "sha512-pIfZeizWsViXx8bsMoBLZw7Tl7uFf7bM7hAfmNwk0bb0QGzx5k1BiW6IKWyaG+Dg6U4UCrlNpIiut2b78HwQZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.1902.15", + "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-webpack/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.15.tgz", + "integrity": "sha512-pU2RZYX6vhd7uLSdLwPnuBcr0mXJSjp3EgOXKsrlQFQZevc+Qs+2JdXgIElnOT/aDqtRtriDmLlSbtdE8n3ZbA==", + "license": "MIT", + "dependencies": { + "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": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.15.tgz", + "integrity": "sha512-kNOJ+3vekJJCQKWihNmxBkarJzNW09kP5a9E1SRNiQVNOUEeSwcRR0qYotM65nx821gNzjjhJXnAZ8OazWldrg==", + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.2.15", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.17", + "ora": "5.4.1", + "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" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular/animations": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.2.14.tgz", + "integrity": "sha512-xhl8fLto5HHJdVj8Nb6EoBEiTAcXuWDYn1q5uHcGxyVH3kiwENWy/2OQXgCr2CuWo2e6hNUGzSLf/cjbsMNqEA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.2.14", + "@angular/core": "19.2.14" + } + }, + "node_modules/@angular/cdk": { + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.2.19.tgz", + "integrity": "sha512-PCpJagurPBqciqcq4Z8+3OtKLb7rSl4w/qBJoIMua8CgnrjvA1i+SWawhdtfI1zlY8FSwhzLwXV0CmWWfFzQPg==", + "license": "MIT", + "peer": true, + "dependencies": { + "parse5": "^7.1.2", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.2.15.tgz", + "integrity": "sha512-YRIpARHWSOnWkHusUWTQgeUrPWMjWvtQrOkjWc6stF36z2KUzKMEng6EzUvH6sZolNSwVwOFpODEP0ut4aBkvQ==", + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.1902.15", + "@angular-devkit/core": "19.2.15", + "@angular-devkit/schematics": "19.2.15", + "@inquirer/prompts": "7.3.2", + "@listr2/prompt-adapter-inquirer": "2.0.18", + "@schematics/angular": "19.2.15", + "@yarnpkg/lockfile": "1.1.0", + "ini": "5.0.0", + "jsonc-parser": "3.3.1", + "listr2": "8.2.5", + "npm-package-arg": "12.0.2", + "npm-pick-manifest": "10.0.0", + "pacote": "20.0.0", + "resolve": "1.22.10", + "semver": "7.7.1", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "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" + } + }, + "node_modules/@angular/common": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.2.14.tgz", + "integrity": "sha512-NcNklcuyqaTjOVGf7aru8APX9mjsnZ01gFZrn47BxHozhaR0EMRrotYQTdi8YdVjPkeYFYanVntSLfhyobq/jg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "19.2.14", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.2.14.tgz", + "integrity": "sha512-ZqJDYOdhgKpVGNq3+n/Gbxma8DVYElDsoRe0tvNtjkWBVdaOxdZZUqmJ3kdCBsqD/aqTRvRBu0KGo9s2fCChkA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.2.14.tgz", + "integrity": "sha512-e9/h86ETjoIK2yTLE9aUeMCKujdg/du2pq7run/aINjop4RtnNOw+ZlSTUa6R65lP5CVwDup1kPytpAoifw8cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "7.26.9", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^4.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/compiler": "19.2.14", + "typescript": ">=5.5 <5.9" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", + "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/helper-compilation-targets/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/@angular/compiler-cli/node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@angular/compiler-cli/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular/core": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.2.14.tgz", + "integrity": "sha512-EVErpW9tGqJ/wNcAN3G/ErH8pHCJ8mM1E6bsJ8UJIpDTZkpqqYjBMtZS9YWH5n3KwUd1tAkAB2w8FK125AjDUQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.15.0" + } + }, + "node_modules/@angular/forms": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.2.14.tgz", + "integrity": "sha512-hWtDOj2B0AuRTf+nkMJeodnFpDpmEK9OIhIv1YxcRe73ooaxrIdjgugkElO8I9Tj0E4/7m117ezhWDUkbqm1zA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.2.14", + "@angular/core": "19.2.14", + "@angular/platform-browser": "19.2.14", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/language-service": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-19.2.14.tgz", + "integrity": "sha512-XgzZdBCe/obCrck5I6GIG4qSI9UGaOtbrvNuw0QAK0DySKaW5inRm6/QwCMPRmPkJBY0wLeYUVz//rtHpEjeTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.2.14.tgz", + "integrity": "sha512-hzkT5nmA64oVBQl6PRjdL4dIFT1n7lfM9rm5cAoS+6LUUKRgiE2d421Kpn/Hz3jaCJfo+calMIdtSMIfUJBmww==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/animations": "19.2.14", + "@angular/common": "19.2.14", + "@angular/core": "19.2.14" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.2.14.tgz", + "integrity": "sha512-Hfz0z1KDQmIdnFXVFCwCPykuIsHPkr1uW2aY396eARwZ6PK8i0Aadcm1ZOnpd3MR1bMyDrJo30VRS5kx89QWvA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.2.14", + "@angular/compiler": "19.2.14", + "@angular/core": "19.2.14", + "@angular/platform-browser": "19.2.14" + } + }, + "node_modules/@angular/router": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.2.14.tgz", + "integrity": "sha512-cBTWY9Jx7YhbmDYDb7Hqz4Q7UNIMlKTkdKToJd2pbhIXyoS+kHVQrySmyca+jgvYMjWnIjsAEa3dpje12D4mFw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.2.14", + "@angular/core": "19.2.14", + "@angular/platform-browser": "19.2.14", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz", + "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.10", + "@babel/types": "^7.26.10", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "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.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/@babel/types": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cds/city": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@cds/city/-/city-1.1.0.tgz", + "integrity": "sha512-S9K+Q39BGOghyLHmR0Wdcmu1i1noSUk8HcvMj+3IaohZw02WFd99aPTQDHJeseXrXZP3CNovaSlePI0R11NcFg==", + "license": "OFL-1.1", + "optional": true + }, + "node_modules/@cds/core": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@cds/core/-/core-6.16.1.tgz", + "integrity": "sha512-skEie8NvnSwjnY3lufKMOtKoHG5V2B5cWA8+tH7LB7zXlq8cLkK6VPeQy15Wm/3oXaVzGhN283e8Z8+cRSLQqg==", + "license": "MIT", + "dependencies": { + "lit": "^2.1.3", + "ramda": "^0.29.0", + "tslib": "^2.3.1" + }, + "optionalDependencies": { + "@cds/city": "^1.1.0", + "modern-normalize": "1.1.0" + } + }, + "node_modules/@cesium/engine": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-17.0.0.tgz", + "integrity": "sha512-bvLWmWVY4QX9rfcx/zfBzA8R1xR8KzmaCDOVL6pFkNZeYmRtt8JN//IICYR3P45lznlcb0Dklw1iCb37t4tvLA==", + "license": "Apache-2.0", + "dependencies": { + "@tweenjs/tween.js": "^25.0.0", + "@zip.js/zip.js": "^2.7.34", + "autolinker": "^4.0.0", + "bitmap-sdf": "^1.0.3", + "dompurify": "^3.0.2", + "draco3d": "^1.5.1", + "earcut": "^3.0.0", + "grapheme-splitter": "^1.0.4", + "jsep": "^1.3.8", + "kdbush": "^4.0.1", + "ktx-parse": "^1.0.0", + "lerc": "^2.0.0", + "mersenne-twister": "^1.1.0", + "meshoptimizer": "^0.23.0", + "pako": "^2.0.4", + "protobufjs": "^7.1.0", + "rbush": "3.0.1", + "topojson-client": "^3.1.0", + "urijs": "^1.19.7" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@cesium/engine/node_modules/lerc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lerc/-/lerc-2.0.0.tgz", + "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==", + "license": "Apache-2.0" + }, + "node_modules/@cesium/engine/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/@cesium/engine/node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "license": "MIT", + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/@cesium/wasm-splats": { + "version": "0.1.0-alpha.2", + "resolved": "https://registry.npmjs.org/@cesium/wasm-splats/-/wasm-splats-0.1.0-alpha.2.tgz", + "integrity": "sha512-t9pMkknv31hhIbLpMa8yPvmqfpvs5UkUjgqlQv9SeO8VerCXOYnyP8/486BDaFrztM0A7FMbRjsXtNeKvqQghA==", + "license": "Apache-2.0" + }, + "node_modules/@cesium/widgets": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-12.3.0.tgz", + "integrity": "sha512-5Aa54lCrdywogY1ypOwRmRrb72LVrPvrOzOrcYeQ50DDZSs5hCxVXWecYYsq3qoeK0buA9wP/5TBWE7RlsV7OA==", + "license": "Apache-2.0", + "dependencies": { + "@cesium/engine": "^18.3.0", + "nosleep.js": "^0.12.0" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@cesium/widgets/node_modules/@cesium/engine": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-18.3.0.tgz", + "integrity": "sha512-ILNA1a+RX2gNsQGyF2zq27Ucaj5UMj19paYoJbKxX/U0QtxLuFUhJ2yg6wr2eBtC3X3kd475o7kAx0LpfCZxpg==", + "license": "Apache-2.0", + "dependencies": { + "@cesium/wasm-splats": "^0.1.0-alpha.2", + "@spz-loader/core": "0.1.0", + "@tweenjs/tween.js": "^25.0.0", + "@zip.js/zip.js": "^2.7.34", + "autolinker": "^4.0.0", + "bitmap-sdf": "^1.0.3", + "dompurify": "^3.0.2", + "draco3d": "^1.5.1", + "earcut": "^3.0.0", + "grapheme-splitter": "^1.0.4", + "jsep": "^1.3.8", + "kdbush": "^4.0.1", + "ktx-parse": "^1.0.0", + "lerc": "^2.0.0", + "mersenne-twister": "^1.1.0", + "meshoptimizer": "^0.24.0", + "pako": "^2.0.4", + "protobufjs": "^7.1.0", + "rbush": "^4.0.1", + "topojson-client": "^3.1.0", + "urijs": "^1.19.7" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@cesium/widgets/node_modules/lerc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lerc/-/lerc-2.0.0.tgz", + "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==", + "license": "Apache-2.0" + }, + "node_modules/@cesium/widgets/node_modules/meshoptimizer": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.24.0.tgz", + "integrity": "sha512-Iq/8cM5cK2B0P0QdKHexr30zEJn5sQxjXKtQJGp6LO7r1VUPwhgxau18pvybVDnEDsKE49GdlJYwqPX9A/P9Sw==", + "license": "MIT" + }, + "node_modules/@clr/angular": { + "version": "17.11.2", + "resolved": "https://registry.npmjs.org/@clr/angular/-/angular-17.11.2.tgz", + "integrity": "sha512-iXmPAdLLD+WXXGrglVxZKJW/J7BOeCWirNlWymQ7fuz5GJE5Q72wMGVOHoZ644SXx3fCBjRc/ek8wcMqYGyvsg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/cdk": "15 || 16 || 17 || 18 || 19", + "@angular/common": "15 || 16 || 17 || 18 || 19", + "@angular/core": "15 || 16 || 17 || 18 || 19", + "@cds/core": ">= 6.9.2", + "@clr/ui": "17.11.2" + } + }, + "node_modules/@clr/ui": { + "version": "17.11.2", + "resolved": "https://registry.npmjs.org/@clr/ui/-/ui-17.11.2.tgz", + "integrity": "sha512-KbJ4XZQbq1EToIs+wnCrO5FPjHR1f/vUCaqEYsVUxHAGC33B/5zKvUttarU1UJD3rv7Tb+BNXdx2oBsklRhiog==", + "license": "MIT", + "peerDependencies": { + "@cds/core": "^6.9.2" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@compodoc/compodoc": { + "version": "1.1.26", + "resolved": "https://registry.npmjs.org/@compodoc/compodoc/-/compodoc-1.1.26.tgz", + "integrity": "sha512-CJkqTtdotxMA4SDyUx8J6Mrm3MMmcgFtfEViUnG9Of2CXhYiXIqNeD881+pxn0opmMC+VCTL0/SCD03tDYhWYA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/schematics": "18.2.8", + "@babel/core": "7.25.8", + "@babel/plugin-transform-private-methods": "7.25.7", + "@babel/preset-env": "7.25.8", + "@compodoc/live-server": "^1.2.3", + "@compodoc/ngd-transformer": "^2.1.3", + "bootstrap.native": "^5.0.13", + "cheerio": "1.0.0-rc.12", + "chokidar": "^4.0.1", + "colors": "1.4.0", + "commander": "^12.1.0", + "cosmiconfig": "^9.0.0", + "decache": "^4.6.2", + "es6-shim": "^0.35.8", + "fancy-log": "^2.0.0", + "fast-glob": "^3.3.2", + "fs-extra": "^11.2.0", + "glob": "^11.0.0", + "handlebars": "^4.7.8", + "html-entities": "^2.5.2", + "i18next": "^23.16.0", + "json5": "^2.2.3", + "lodash": "^4.17.21", + "loglevel": "^1.9.2", + "loglevel-plugin-prefix": "^0.8.4", + "lunr": "^2.3.9", + "marked": "7.0.3", + "minimist": "^1.2.8", + "neotraverse": "^0.6.18", + "opencollective-postinstall": "^2.0.3", + "os-name": "4.0.1", + "picocolors": "^1.1.0", + "prismjs": "^1.29.0", + "semver": "^7.6.3", + "svg-pan-zoom": "^3.6.1", + "tablesort": "^5.3.0", + "ts-morph": "^24.0.0", + "uuid": "^10.0.0", + "vis": "^4.21.0-EOL" + }, + "bin": { + "compodoc": "bin/index-cli.js" + }, + "engines": { + "node": ">= 16.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@angular-devkit/schematics": { + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.8.tgz", + "integrity": "sha512-i/h2Oji5FhJMC7wDSnIl5XUe/qym+C1ZwScaATJwDyRLCUIynZkj5rLgdG/uK6l+H0PgvxigkF+akWpokkwW6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "18.2.8", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", + "ora": "5.4.1", + "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" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { + "version": "18.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.8.tgz", + "integrity": "sha512-4o2T6wsmXGE/v53+F8L7kGoN2+qzt03C9rtjLVQpOljzpJVttQ8bhvfWxyYLWwcl04RWqRa+82fpIZtBkOlZJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "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": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@compodoc/compodoc/node_modules/@angular-devkit/schematics/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/core": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz", + "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.8", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.8", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@compodoc/compodoc/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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/helper-compilation-targets/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/@compodoc/compodoc/node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", + "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/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/@compodoc/compodoc/node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/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/@compodoc/compodoc/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", + "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-classes": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz", + "integrity": "sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", + "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-private-methods": { + "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.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz", + "integrity": "sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=0.1.90" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@compodoc/compodoc": { - "version": "1.1.26", - "resolved": "https://registry.npmjs.org/@compodoc/compodoc/-/compodoc-1.1.26.tgz", - "integrity": "sha512-CJkqTtdotxMA4SDyUx8J6Mrm3MMmcgFtfEViUnG9Of2CXhYiXIqNeD881+pxn0opmMC+VCTL0/SCD03tDYhWYA==", + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "dev": true, - "hasInstallScript": true, "license": "MIT", "dependencies": { - "@angular-devkit/schematics": "18.2.8", - "@babel/core": "7.25.8", - "@babel/plugin-transform-private-methods": "7.25.7", - "@babel/preset-env": "7.25.8", - "@compodoc/live-server": "^1.2.3", - "@compodoc/ngd-transformer": "^2.1.3", - "bootstrap.native": "^5.0.13", - "cheerio": "1.0.0-rc.12", - "chokidar": "^4.0.1", - "colors": "1.4.0", - "commander": "^12.1.0", - "cosmiconfig": "^9.0.0", - "decache": "^4.6.2", - "es6-shim": "^0.35.8", - "fancy-log": "^2.0.0", - "fast-glob": "^3.3.2", - "fs-extra": "^11.2.0", - "glob": "^11.0.0", - "handlebars": "^4.7.8", - "html-entities": "^2.5.2", - "i18next": "^23.16.0", - "json5": "^2.2.3", - "lodash": "^4.17.21", - "loglevel": "^1.9.2", - "loglevel-plugin-prefix": "^0.8.4", - "lunr": "^2.3.9", - "marked": "7.0.3", - "minimist": "^1.2.8", - "neotraverse": "^0.6.18", - "opencollective-postinstall": "^2.0.3", - "os-name": "4.0.1", - "picocolors": "^1.1.0", - "prismjs": "^1.29.0", - "semver": "^7.6.3", - "svg-pan-zoom": "^3.6.1", - "tablesort": "^5.3.0", - "ts-morph": "^24.0.0", - "uuid": "^10.0.0", - "vis": "^4.21.0-EOL" - }, - "bin": { - "compodoc": "bin/index-cli.js" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">= 16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@compodoc/compodoc/node_modules/@angular-devkit/schematics": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.8.tgz", - "integrity": "sha512-i/h2Oji5FhJMC7wDSnIl5XUe/qym+C1ZwScaATJwDyRLCUIynZkj5rLgdG/uK6l+H0PgvxigkF+akWpokkwW6w==", + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.8", - "jsonc-parser": "3.3.1", - "magic-string": "0.30.11", - "ora": "5.4.1", - "rxjs": "7.8.1" + "@babel/helper-plugin-utils": "^7.27.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" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@compodoc/compodoc/node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.8.tgz", - "integrity": "sha512-4o2T6wsmXGE/v53+F8L7kGoN2+qzt03C9rtjLVQpOljzpJVttQ8bhvfWxyYLWwcl04RWqRa+82fpIZtBkOlZJw==", + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "dev": true, "license": "MIT", "dependencies": { - "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" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.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" + "node": ">=6.9.0" }, "peerDependencies": { - "chokidar": "^3.5.2" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@compodoc/compodoc/node_modules/@angular-devkit/schematics/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@compodoc/compodoc/node_modules/@babel/core": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz", - "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==", + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helpers": "^7.25.7", - "@babel/parser": "^7.25.8", - "@babel/template": "^7.25.7", - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.8", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@compodoc/compodoc/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==", + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-private-methods": { - "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==", + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.7", - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2757,6 +4626,23 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@compodoc/compodoc/node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@compodoc/compodoc/node_modules/@babel/preset-env": { "version": "7.25.8", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.8.tgz", @@ -2833,14 +4719,54 @@ "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, - "engines": { - "node": ">=6.9.0" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/preset-env/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/@compodoc/compodoc/node_modules/@babel/preset-modules": { + "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/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@compodoc/compodoc/node_modules/@babel/preset-env/node_modules/semver": { + "node_modules/@compodoc/compodoc/node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", @@ -2864,6 +4790,19 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@compodoc/compodoc/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@compodoc/compodoc/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -2871,6 +4810,24 @@ "dev": true, "license": "MIT" }, + "node_modules/@compodoc/compodoc/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/@compodoc/compodoc/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -2886,6 +4843,16 @@ "node": ">= 6" } }, + "node_modules/@compodoc/compodoc/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, "node_modules/@compodoc/compodoc/node_modules/magic-string": { "version": "0.30.11", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", @@ -2896,6 +4863,13 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/@compodoc/compodoc/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/@compodoc/compodoc/node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -3013,6 +4987,22 @@ "node": ">= 6" } }, + "node_modules/@compodoc/live-server/node_modules/http-auth": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-4.1.9.tgz", + "integrity": "sha512-kvPYxNGc9EKGTXvOMnTBQw2RZfuiSihK/mLw/a4pbtRueTE45S55Lw/3k5CktIf7Ak0veMKEIteDj4YkNmCzmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "apache-crypt": "^1.1.2", + "apache-md5": "^1.0.6", + "bcryptjs": "^2.4.3", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@compodoc/live-server/node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -3086,6 +5076,16 @@ "node": ">=8.10.0" } }, + "node_modules/@compodoc/live-server/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@compodoc/ngd-core": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.1.1.tgz", @@ -3663,13 +5663,13 @@ } }, "node_modules/@inquirer/confirm": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.6.tgz", - "integrity": "sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==", + "version": "5.1.16", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.16.tgz", + "integrity": "sha512-j1a5VstaK5KQy8Mu8cHmuQvN1Zc62TbLhjJxwHvKPPKEoowSF6h/0UdOpA9DNdWZ+9Inq73+puRq1df6OJ8Sag==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.7", - "@inquirer/type": "^3.0.4" + "@inquirer/core": "^10.2.0", + "@inquirer/type": "^3.0.8" }, "engines": { "node": ">=18" @@ -4361,6 +6361,126 @@ "win32" ] }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "license": "ISC", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/geojson-rewind/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/point-geometry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-1.1.0.tgz", + "integrity": "sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==", + "license": "ISC" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.7.tgz", + "integrity": "sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/togeojson": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@mapbox/togeojson/-/togeojson-0.16.2.tgz", + "integrity": "sha512-DcApudmw4g/grOrpM5gYPZfts6Kr8litBESN6n/27sDsjR2f+iJhx4BA0J2B+XrLlnHyJkKztYApe6oCUZpzFA==", + "license": "BSD-2-Clause", + "dependencies": { + "@xmldom/xmldom": "^0.8.10", + "concat-stream": "~2.0.0", + "minimist": "1.2.8" + }, + "bin": { + "togeojson": "togeojson" + } + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/vector-tile": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-2.0.4.tgz", + "integrity": "sha512-AkOLcbgGTdXScosBWwmmD7cDlvOjkg/DetGva26pIRiZPdeJYjYKarIlb4uxVzi6bwHO6EWH82eZ5Nuv4T5DUg==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/point-geometry": "~1.1.0", + "@types/geojson": "^7946.0.16", + "pbf": "^4.0.1" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "license": "ISC", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "23.3.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-23.3.0.tgz", + "integrity": "sha512-IGJtuBbaGzOUgODdBRg66p8stnwj9iDXkgbYKoYcNiiQmaez5WVRfXm4b03MCDwmZyX93csbfHFWEJJYHnn5oA==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^3.0.0", + "rw": "^1.3.3", + "tinyqueue": "^3.0.0" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@maplibre/vt-pbf": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@maplibre/vt-pbf/-/vt-pbf-4.0.3.tgz", + "integrity": "sha512-YsW99BwnT+ukJRkseBcLuZHfITB4puJoxnqPVjo72rhW/TaawVYsgQHcqWLzTxqknttYoDpgyERzWSa/XrETdA==", + "license": "MIT", + "dependencies": { + "@mapbox/point-geometry": "^1.1.0", + "@mapbox/vector-tile": "^2.0.4", + "@types/geojson-vt": "3.2.5", + "@types/supercluster": "^7.1.3", + "geojson-vt": "^4.0.2", + "pbf": "^4.0.1", + "supercluster": "^8.0.1" + } + }, "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", @@ -4839,12 +6959,6 @@ "node": "^18.17.0 || >=20.5.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==", - "license": "ISC" - }, "node_modules/@npmcli/fs": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", @@ -4885,12 +6999,6 @@ "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==", - "license": "ISC" - }, "node_modules/@npmcli/git/node_modules/which": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", @@ -4984,12 +7092,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/@npmcli/package-json/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==", - "license": "ISC" - }, "node_modules/@npmcli/package-json/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -5417,43 +7519,85 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@petamoriken/float16": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz", + "integrity": "sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==", + "license": "MIT" + }, + "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==", + "license": "MIT", "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, "engines": { - "node": ">=0.10" + "node": ">=14" } }, - "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, - "license": "MIT", - "optional": true + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" }, - "node_modules/@petamoriken/float16": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz", - "integrity": "sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==", - "license": "MIT" + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" }, - "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==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" }, "node_modules/@rollup/plugin-json": { "version": "6.1.0", @@ -5500,9 +7644,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", - "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.0.tgz", + "integrity": "sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==", "cpu": [ "arm" ], @@ -5514,9 +7658,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", - "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.0.tgz", + "integrity": "sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==", "cpu": [ "arm64" ], @@ -5528,9 +7672,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", - "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.0.tgz", + "integrity": "sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==", "cpu": [ "arm64" ], @@ -5542,9 +7686,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", - "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.0.tgz", + "integrity": "sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==", "cpu": [ "x64" ], @@ -5556,9 +7700,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", - "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.0.tgz", + "integrity": "sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==", "cpu": [ "arm64" ], @@ -5570,9 +7714,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", - "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.0.tgz", + "integrity": "sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==", "cpu": [ "x64" ], @@ -5584,9 +7728,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", - "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.0.tgz", + "integrity": "sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==", "cpu": [ "arm" ], @@ -5598,9 +7742,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", - "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.0.tgz", + "integrity": "sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==", "cpu": [ "arm" ], @@ -5612,9 +7756,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", - "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.0.tgz", + "integrity": "sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==", "cpu": [ "arm64" ], @@ -5626,9 +7770,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", - "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.0.tgz", + "integrity": "sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==", "cpu": [ "arm64" ], @@ -5640,9 +7784,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", - "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.0.tgz", + "integrity": "sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==", "cpu": [ "loong64" ], @@ -5679,13 +7823,12 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", - "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.0.tgz", + "integrity": "sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==", "cpu": [ "riscv64" ], @@ -5708,13 +7851,12 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", - "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.0.tgz", + "integrity": "sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==", "cpu": [ "s390x" ], @@ -5726,9 +7868,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", - "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.0.tgz", + "integrity": "sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==", "cpu": [ "x64" ], @@ -5740,9 +7882,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", - "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.0.tgz", + "integrity": "sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==", "cpu": [ "x64" ], @@ -5765,13 +7907,12 @@ "optional": true, "os": [ "openharmony" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", - "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.0.tgz", + "integrity": "sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==", "cpu": [ "arm64" ], @@ -5783,9 +7924,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", - "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.0.tgz", + "integrity": "sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==", "cpu": [ "ia32" ], @@ -5797,9 +7938,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", - "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.0.tgz", + "integrity": "sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==", "cpu": [ "x64" ], @@ -5940,6 +8081,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@spz-loader/core": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@spz-loader/core/-/core-0.1.0.tgz", + "integrity": "sha512-atqn/DLy0xNkqRgz3l/5CD12y1M44JdjTmAFQYDKvzf0pIyj+NlJ/PeCRlSJQfXmZ2JndNOCpcGOFVldANf/EA==", + "license": "Apache-2.0", + "engines": { + "node": ">=16", + "pnpm": ">=8" + } + }, "node_modules/@thednp/event-listener": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/@thednp/event-listener/-/event-listener-2.0.10.tgz", @@ -6041,6 +8192,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@tweenjs/tween.js": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz", + "integrity": "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==", + "license": "MIT" + }, "node_modules/@types/body-parser": { "version": "1.19.6", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", @@ -6154,6 +8311,15 @@ "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", "license": "MIT" }, + "node_modules/@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@types/http-errors": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", @@ -6209,9 +8375,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.18.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.0.tgz", - "integrity": "sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==", + "version": "22.18.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.1.tgz", + "integrity": "sha512-rzSDyhn4cYznVG+PCzGe1lwuMYJrcBS1fc3JqSa2PvtABwWo+dZ1ij5OVok3tqfpEBCBoaR4d7upFJk73HRJDw==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -6324,6 +8490,15 @@ "@types/node": "*" } }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@types/toposort": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/toposort/-/toposort-2.0.7.tgz", @@ -6620,6 +8795,15 @@ "integrity": "sha512-loGD63sacRzOzSJgQnB9ZAhaQGkN7wl2Zuw7tsphI5Isa0irijrRo6EnJii/GgjGefIFO8AIO7UivzRhFaEk9w==", "license": "BSD-3-Clause" }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", + "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -6640,6 +8824,17 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "license": "BSD-2-Clause" }, + "node_modules/@zip.js/zip.js": { + "version": "2.7.73", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.73.tgz", + "integrity": "sha512-I2UP8/rdQE5hTtVVL08B7P8XuwXiKuuMUPjNuFOVL/9b+8IsExR9S5jz2H58u0rJjU4M1BikLgqEMG8gZJZVBw==", + "license": "BSD-3-Clause", + "engines": { + "bun": ">=0.7.0", + "deno": ">=1.0.0", + "node": ">=16.5.0" + } + }, "node_modules/abbrev": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", @@ -7057,6 +9252,18 @@ "node": ">= 4.0.0" } }, + "node_modules/autolinker": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-4.1.5.tgz", + "integrity": "sha512-vEfYZPmvVOIuE567XBVCsx8SBgOYtjB2+S1iAaJ+HgH+DNjAcrHem2hmAeC9yaNGWayicv4yR+9UaJlkF3pvtw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + }, + "engines": { + "pnpm": ">=10.10.0" + } + }, "node_modules/autoprefixer": { "version": "10.4.20", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", @@ -7076,120 +9283,50 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", - "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", - "dev": true, - "license": "MIT" - }, - "node_modules/axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "ast-types-flow": "0.0.7" - } - }, - "node_modules/babel-loader": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", - "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", - "semver": "^6.3.1" + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "postcss": "^8.1.0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "Apache-2.0", + "engines": { + "node": "*" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", - "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3", - "core-js-compat": "^3.40.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } + "license": "MIT" }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "node_modules/axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "ast-types-flow": "0.0.7" } }, "node_modules/balanced-match": { @@ -7285,6 +9422,39 @@ "node": ">=14.0.0" } }, + "node_modules/beasties/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/beasties/node_modules/htmlparser2": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -7308,6 +9478,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bitmap-sdf": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", + "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==", + "license": "MIT" + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -7360,16 +9536,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, "node_modules/body-parser/node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -7383,13 +9549,6 @@ "node": ">=0.10.0" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/body-parser/node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -7538,6 +9697,13 @@ "node": ">= 4.5.0" } }, + "node_modules/browserstack/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -7566,7 +9732,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, "license": "MIT" }, "node_modules/builtin-modules": { @@ -7579,175 +9744,30 @@ "node": ">=0.10.0" } }, - "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": { - "run-applescript": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", - "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^4.0.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^7.0.2", - "ssri": "^12.0.0", - "tar": "^7.4.3", - "unique-filename": "^4.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/cacache/node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/cacache/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==", - "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/cacache/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/cacache/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==", - "license": "ISC" - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/tar": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", - "license": "ISC", + "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": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", - "yallist": "^5.0.0" + "run-applescript": "^7.0.0" }, "engines": { "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cacache/node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "license": "BlueOak-1.0.0", + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=18" + "node": ">= 0.8" } }, "node_modules/call-bind": { @@ -7928,26 +9948,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cheerio/node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, "node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", @@ -7965,12 +9965,12 @@ } }, "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "license": "ISC", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/chrome-trace-event": { @@ -8262,6 +10262,26 @@ "npm": ">=2.0.0" } }, + "node_modules/codelyzer/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/codelyzer/node_modules/semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^5.3.0" + } + }, "node_modules/codelyzer/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -8399,23 +10419,6 @@ "node": ">= 0.8.0" } }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/compression/node_modules/negotiator": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", @@ -8453,6 +10456,21 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", @@ -8479,23 +10497,6 @@ "node": ">=0.8" } }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -8617,9 +10618,9 @@ } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true, "license": "MIT" }, @@ -8838,20 +10839,13 @@ } }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "ms": "2.0.0" } }, "node_modules/decache": { @@ -8911,160 +10905,40 @@ "license": "MIT", "dependencies": { "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/del/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", - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/del/node_modules/globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del/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/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "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": "ISC", - "dependencies": { - "glob": "^7.1.3" + "license": "MIT", + "engines": { + "node": ">=12" }, - "bin": { - "rimraf": "bin.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/delaunator": { @@ -9176,6 +11050,23 @@ "node": ">=10" } }, + "node_modules/depcheck/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/depcheck/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -9204,6 +11095,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/depcheck/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/depcheck/node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -9369,14 +11266,17 @@ } }, "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, "license": "Apache-2.0", "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, "node_modules/detect-node": { @@ -9473,6 +11373,15 @@ "url": "https://github.com/fb55/domhandler?sponsor=1" } }, + "node_modules/dompurify": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/domutils": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", @@ -9495,6 +11404,12 @@ "dev": true, "license": "MIT" }, + "node_modules/draco3d": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", + "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==", + "license": "Apache-2.0" + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -9658,6 +11573,13 @@ } } }, + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/enhanced-resolve": { "version": "5.18.3", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", @@ -10103,259 +12025,54 @@ } }, "node_modules/execa/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", - "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", - "license": "Apache-2.0" - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/express/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/express/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">= 0.8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" + "license": "ISC" }, - "node_modules/express/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/express/node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/express/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "node_modules/exponential-backoff": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", + "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", + "license": "Apache-2.0" }, "node_modules/ext": { "version": "1.7.0", @@ -10533,55 +12250,62 @@ "node": ">= 0.8" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "license": "MIT", "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" + "semver": "^6.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-cache-dir/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/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/find-yarn-workspace-root": { @@ -10820,6 +12544,12 @@ "node": ">=6.9.0" } }, + "node_modules/geojson-vt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", + "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==", + "license": "ISC" + }, "node_modules/geotiff": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz", @@ -10925,6 +12655,12 @@ "assert-plus": "^1.0.0" } }, + "node_modules/gl-matrix": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", + "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", + "license": "MIT" + }, "node_modules/glob": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", @@ -11016,7 +12752,7 @@ "node": ">=0.10.0" } }, - "node_modules/global-prefix": { + "node_modules/global-modules/node_modules/global-prefix": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", @@ -11032,13 +12768,13 @@ "node": ">=0.10.0" } }, - "node_modules/global-prefix/node_modules/ini": { + "node_modules/global-modules/node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "license": "ISC" }, - "node_modules/global-prefix/node_modules/which": { + "node_modules/global-modules/node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", @@ -11100,6 +12836,12 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "license": "ISC" }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "license": "MIT" + }, "node_modules/hammerjs": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", @@ -11308,12 +13050,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/hosted-git-info/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==", - "license": "ISC" - }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -11385,9 +13121,9 @@ "license": "MIT" }, "node_modules/htmlparser2": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", - "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -11400,37 +13136,8 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.2.1", - "entities": "^6.0.0" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/http-auth": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-4.1.9.tgz", - "integrity": "sha512-kvPYxNGc9EKGTXvOMnTBQw2RZfuiSihK/mLw/a4pbtRueTE45S55Lw/3k5CktIf7Ak0veMKEIteDj4YkNmCzmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "apache-crypt": "^1.1.2", - "apache-md5": "^1.0.6", - "bcryptjs": "^2.4.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=8" + "domutils": "^3.0.1", + "entities": "^4.4.0" } }, "node_modules/http-auth-connect": { @@ -11443,16 +13150,6 @@ "node": ">=8" } }, - "node_modules/http-auth/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/http-cache-semantics": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", @@ -11528,6 +13225,29 @@ "node": ">= 14" } }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/http-proxy-middleware": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.5.tgz", @@ -11546,6 +13266,31 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/http-proxy-middleware/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -11568,13 +13313,36 @@ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" }, "engines": { - "node": ">= 14" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -12179,6 +13947,151 @@ "node": ">=10" } }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/core": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/istanbul-lib-instrument/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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/helper-compilation-targets/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/istanbul-lib-instrument/node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/istanbul-lib-instrument/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, + "license": "MIT" + }, + "node_modules/istanbul-lib-instrument/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", @@ -12209,6 +14122,31 @@ "node": ">=10" } }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -12317,13 +14255,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jasmine/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/jasmine/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -12434,6 +14365,15 @@ "dev": true, "license": "MIT" }, + "node_modules/jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -12488,6 +14428,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", + "license": "MIT" + }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -12696,15 +14642,98 @@ "dev": true, "license": "MIT", "dependencies": { - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.0.5", - "minimatch": "^3.0.4" + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-coverage/node_modules/@babel/core": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/karma-coverage/node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/karma-coverage/node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/karma-coverage/node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { - "node": ">=10.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/karma-coverage/node_modules/brace-expansion": { @@ -12718,6 +14747,31 @@ "concat-map": "0.0.1" } }, + "node_modules/karma-coverage/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, + "license": "MIT" + }, + "node_modules/karma-coverage/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/karma-coverage/node_modules/istanbul-lib-instrument": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", @@ -12735,6 +14789,16 @@ "node": ">=8" } }, + "node_modules/karma-coverage/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, "node_modules/karma-coverage/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -12748,6 +14812,13 @@ "node": "*" } }, + "node_modules/karma-coverage/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/karma-coverage/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -13054,6 +15125,12 @@ "node": ">=10" } }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC" + }, "node_modules/keycharm": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.2.0.tgz", @@ -13080,6 +15157,12 @@ "graceful-fs": "^4.1.11" } }, + "node_modules/ktx-parse": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.1.0.tgz", + "integrity": "sha512-mKp3y+FaYgR7mXWAbyyzpa/r1zDWeaunH+INJO4fou3hb45XuNSwar+7llrRyvpMWafxSIi99RNFJ05MHedaJQ==", + "license": "MIT" + }, "node_modules/launch-editor": { "version": "2.11.1", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.11.1.tgz", @@ -13180,17 +15263,6 @@ "node": ">=4" } }, - "node_modules/less/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/less/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -13380,6 +15452,14 @@ "@lmdb/lmdb-win32-x64": "3.2.6" } }, + "node_modules/lmdb/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", + "optional": true + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -13401,19 +15481,16 @@ } }, "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^6.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/lodash": { @@ -13579,6 +15656,31 @@ "node": ">=8.0" } }, + "node_modules/log4js/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/log4js/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/loglevel": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", @@ -13600,15 +15702,17 @@ "dev": true, "license": "MIT" }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/lunr": { "version": "2.3.9", @@ -13661,36 +15765,166 @@ "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/make-fetch-happen": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", + "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^4.0.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/make-fetch-happen/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==", + "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/make-fetch-happen/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/make-fetch-happen/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" - }, - "node_modules/make-fetch-happen": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", - "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", + "node_modules/make-fetch-happen/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", "license": "ISC", "dependencies": { - "@npmcli/agent": "^3.0.0", - "cacache": "^19.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "ssri": "^12.0.0" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=18" + } + }, + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, "node_modules/map-stream": { @@ -13700,6 +15934,49 @@ "dev": true, "license": "MIT" }, + "node_modules/mapbox-to-css-font": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-3.2.0.tgz", + "integrity": "sha512-kvsEfzvLik34BiFj+S19bv5d70l9qSdkUzrq99dvZ9d5POaLyB4vJMQmq3BoJ5D6lFG1GYnMM7o7cm5Jh8YEEg==", + "license": "BSD-2-Clause" + }, + "node_modules/maplibre-gl": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.7.0.tgz", + "integrity": "sha512-Hs+Y0qbR1iZo+07WuSbYUCOOUK45pPRzA3+7Pes8Y9jCcAqZendIMcVP6O99CWD1V/znh3qHgaZOAi3jlVxwcg==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^1.1.0", + "@mapbox/tiny-sdf": "^2.0.7", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^2.0.4", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/maplibre-gl-style-spec": "^23.3.0", + "@maplibre/vt-pbf": "^4.0.3", + "@types/geojson": "^7946.0.16", + "@types/geojson-vt": "3.2.5", + "@types/supercluster": "^7.1.3", + "earcut": "^3.0.2", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.4", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^4.0.1", + "potpack": "^2.1.0", + "quickselect": "^3.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } + }, "node_modules/marked": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/marked/-/marked-7.0.3.tgz", @@ -13793,6 +16070,18 @@ "node": ">= 8" } }, + "node_modules/mersenne-twister": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mersenne-twister/-/mersenne-twister-1.1.0.tgz", + "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==", + "license": "MIT" + }, + "node_modules/meshoptimizer": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.23.0.tgz", + "integrity": "sha512-zAZcfhHE3wBbwEN8MfCMI9PKRyOpz8491wcR2dxkv3IlNwDZrq2hEs5JZVtzfBrmjWhBZZtZZUO0OBSNFq5iUQ==", + "license": "MIT" + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -14136,23 +16425,6 @@ "node": ">= 0.8.0" } }, - "node_modules/morgan/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/morgan/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -14164,9 +16436,10 @@ } }, "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, "license": "MIT" }, "node_modules/msgpackr": { @@ -14258,6 +16531,12 @@ "node": "*" } }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "license": "MIT" + }, "node_modules/mute-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", @@ -14401,133 +16680,10 @@ "dev": true, "license": "MIT" }, - "node_modules/ng-packagr/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/ng-packagr/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ng-packagr/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ng-packagr/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ng-packagr/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ng-packagr/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ng-packagr/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ng-packagr/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ng-packagr/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/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==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, "license": "MIT", "optional": true @@ -14602,13 +16758,15 @@ "node-gyp-build-optional-packages-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "license": "BlueOak-1.0.0", + "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, "engines": { - "node": ">=18" + "node": ">=8" } }, "node_modules/node-gyp/node_modules/isexe": { @@ -14718,6 +16876,12 @@ "node": ">=0.10.0" } }, + "node_modules/nosleep.js": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", + "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==", + "license": "MIT" + }, "node_modules/npm-bundled": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", @@ -14909,9 +17073,22 @@ "pbf": "4.0.1", "rbush": "^4.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/openlayers" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/openlayers" + } + }, + "node_modules/ol-mapbox-style": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-12.6.1.tgz", + "integrity": "sha512-bpN7ZvqbQX/JZnru0MTQgPIAUBAgPOvYDj/9BoJoqCvFYjHxCpRFDQJEoD10PLw3vGHNJFYBUvY82yfW26otQg==", + "license": "BSD-2-Clause", + "dependencies": { + "@maplibre/maplibre-gl-style-spec": "^23.1.0", + "mapbox-to-css-font": "^3.1.2" + }, + "peerDependencies": { + "ol": "*" } }, "node_modules/on-finished": { @@ -15128,35 +17305,32 @@ } }, "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^4.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/p-map": { @@ -15246,6 +17420,238 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/pacote/node_modules/cacache": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", + "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^4.0.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/pacote/node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/pacote/node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/pacote/node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/pacote/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==", + "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/pacote/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/pacote/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/pacote/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/pacote/node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/tar/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==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pacote/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", @@ -15572,13 +17978,13 @@ "license": "MIT" }, "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8" } }, "node_modules/path-is-absolute": { @@ -15711,13 +18117,14 @@ } }, "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "license": "MIT", + "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/pinkie": { @@ -15754,19 +18161,16 @@ } }, "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "license": "MIT", "dependencies": { - "find-up": "^6.3.0" + "find-up": "^4.0.0" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/please-upgrade-node": { @@ -15930,6 +18334,12 @@ "dev": true, "license": "MIT" }, + "node_modules/potpack": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.1.0.tgz", + "integrity": "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==", + "license": "ISC" + }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -15992,6 +18402,30 @@ "hammerjs": "^2.0.8" } }, + "node_modules/protobufjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", + "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/protocol-buffers-schema": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", @@ -16130,20 +18564,6 @@ "dev": true, "license": "MIT" }, - "node_modules/protractor/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/protractor/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -16198,19 +18618,6 @@ "dev": true, "license": "MIT" }, - "node_modules/protractor/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/protractor/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -16224,43 +18631,34 @@ "node": "*" } }, - "node_modules/protractor/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/protractor/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "glob": "^7.1.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "rimraf": "bin.js" } }, - "node_modules/protractor/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/protractor/node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "p-limit": "^2.2.0" + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" }, "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node": ">= 6.9.0" } }, "node_modules/protractor/node_modules/source-map": { @@ -16344,6 +18742,19 @@ "node": ">=0.8.0" } }, + "node_modules/protractor/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/protractor/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", @@ -16742,83 +19153,6 @@ "node": ">=6" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/request/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -17061,13 +19395,13 @@ "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", - "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.0.tgz", + "integrity": "sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -17077,35 +19411,30 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.8", - "@rollup/rollup-android-arm64": "4.34.8", - "@rollup/rollup-darwin-arm64": "4.34.8", - "@rollup/rollup-darwin-x64": "4.34.8", - "@rollup/rollup-freebsd-arm64": "4.34.8", - "@rollup/rollup-freebsd-x64": "4.34.8", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", - "@rollup/rollup-linux-arm-musleabihf": "4.34.8", - "@rollup/rollup-linux-arm64-gnu": "4.34.8", - "@rollup/rollup-linux-arm64-musl": "4.34.8", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", - "@rollup/rollup-linux-riscv64-gnu": "4.34.8", - "@rollup/rollup-linux-s390x-gnu": "4.34.8", - "@rollup/rollup-linux-x64-gnu": "4.34.8", - "@rollup/rollup-linux-x64-musl": "4.34.8", - "@rollup/rollup-win32-arm64-msvc": "4.34.8", - "@rollup/rollup-win32-ia32-msvc": "4.34.8", - "@rollup/rollup-win32-x64-msvc": "4.34.8", + "@rollup/rollup-android-arm-eabi": "4.50.0", + "@rollup/rollup-android-arm64": "4.50.0", + "@rollup/rollup-darwin-arm64": "4.50.0", + "@rollup/rollup-darwin-x64": "4.50.0", + "@rollup/rollup-freebsd-arm64": "4.50.0", + "@rollup/rollup-freebsd-x64": "4.50.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.0", + "@rollup/rollup-linux-arm-musleabihf": "4.50.0", + "@rollup/rollup-linux-arm64-gnu": "4.50.0", + "@rollup/rollup-linux-arm64-musl": "4.50.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.0", + "@rollup/rollup-linux-ppc64-gnu": "4.50.0", + "@rollup/rollup-linux-riscv64-gnu": "4.50.0", + "@rollup/rollup-linux-riscv64-musl": "4.50.0", + "@rollup/rollup-linux-s390x-gnu": "4.50.0", + "@rollup/rollup-linux-x64-gnu": "4.50.0", + "@rollup/rollup-linux-x64-musl": "4.50.0", + "@rollup/rollup-openharmony-arm64": "4.50.0", + "@rollup/rollup-win32-arm64-msvc": "4.50.0", + "@rollup/rollup-win32-ia32-msvc": "4.50.0", + "@rollup/rollup-win32-x64-msvc": "4.50.0", "fsevents": "~2.3.2" } }, - "node_modules/rollup/node_modules/@types/estree": { - "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, - "license": "MIT" - }, "node_modules/run-applescript": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", @@ -17143,6 +19472,12 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, "node_modules/rxjs": { "version": "7.8.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", @@ -17294,6 +19629,13 @@ "node": ">= 4.5.0" } }, + "node_modules/saucelabs/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", @@ -17346,95 +19688,6 @@ "dev": true, "license": "MIT" }, - "node_modules/selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/selenium-webdriver/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/selenium-webdriver/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", - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/selenium-webdriver/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/selenium-webdriver/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/selenium-webdriver/node_modules/tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", @@ -17467,26 +19720,6 @@ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", "license": "MIT" }, - "node_modules/semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^5.3.0" - } - }, - "node_modules/semver-dsl/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/send": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", @@ -17510,6 +19743,24 @@ "node": ">= 18" } }, + "node_modules/send/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/send/node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", @@ -17520,6 +19771,13 @@ "node": ">= 0.8" } }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/send/node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -17572,16 +19830,6 @@ "node": ">= 0.8.0" } }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, "node_modules/serve-index/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -17638,143 +19886,12 @@ "node": ">= 0.6" } }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-static/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-static/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/serve-static/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serve-static/node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/serve-static/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serve-static/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-static/node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serve-static/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "dev": true, + "license": "ISC" }, "node_modules/set-blocking": { "version": "2.0.0", @@ -18066,6 +20183,13 @@ } } }, + "node_modules/socket.io-adapter/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/socket.io-parser": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", @@ -18098,6 +20222,13 @@ } } }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/socket.io/node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -18116,27 +20247,12 @@ } } }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } + "license": "MIT" }, "node_modules/socks": { "version": "2.8.7", @@ -18166,6 +20282,29 @@ "node": ">= 14" } }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -18290,6 +20429,56 @@ "wbuf": "^1.7.3" } }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy-transport/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -18384,6 +20573,24 @@ "node": ">=8.0" } }, + "node_modules/streamroller/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/streamroller/node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -18409,6 +20616,13 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/streamroller/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/streamroller/node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -18563,6 +20777,15 @@ "node": ">=6" } }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -18628,99 +20851,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/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==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "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==", - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "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==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, "node_modules/terser": { "version": "5.39.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", @@ -18799,6 +20929,12 @@ "tslib": "^2" } }, + "node_modules/three": { + "version": "0.176.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.176.0.tgz", + "integrity": "sha512-PWRKYWQo23ojf9oZSlRGH8K09q7nRSWx6LY/HF/UUrMdYgN9i1e2OwJYHoQjwc6HF/4lvvYLC5YC1X8UJL2ZpA==", + "license": "MIT" + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -18829,6 +20965,12 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, "node_modules/tmp": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", @@ -18861,6 +21003,26 @@ "node": ">=0.6" } }, + "node_modules/topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "license": "ISC", + "dependencies": { + "commander": "2" + }, + "bin": { + "topo2geo": "bin/topo2geo", + "topomerge": "bin/topomerge", + "topoquantize": "bin/topoquantize" + } + }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, "node_modules/toposort": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", @@ -19202,6 +21364,29 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/tuf-js/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/tuf-js/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -19284,6 +21469,12 @@ "dev": true, "license": "MIT" }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, "node_modules/typescript": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", @@ -19507,6 +21698,12 @@ "node": ">=6" } }, + "node_modules/urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", + "license": "MIT" + }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -19591,6 +21788,13 @@ "extsprintf": "^1.2.0" } }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "license": "MIT" + }, "node_modules/vis": { "version": "4.21.0", "resolved": "https://registry.npmjs.org/vis/-/vis-4.21.0.tgz", @@ -19670,287 +21874,17 @@ }, "sugarss": { "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.0.tgz", - "integrity": "sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-android-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.0.tgz", - "integrity": "sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.0.tgz", - "integrity": "sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-darwin-x64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.0.tgz", - "integrity": "sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.0.tgz", - "integrity": "sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.0.tgz", - "integrity": "sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.0.tgz", - "integrity": "sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.0.tgz", - "integrity": "sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.0.tgz", - "integrity": "sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.0.tgz", - "integrity": "sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.0.tgz", - "integrity": "sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.0.tgz", - "integrity": "sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.0.tgz", - "integrity": "sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.0.tgz", - "integrity": "sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.0.tgz", - "integrity": "sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.0.tgz", - "integrity": "sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.0.tgz", - "integrity": "sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/vite/node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.0.tgz", - "integrity": "sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } }, "node_modules/vite/node_modules/postcss": { "version": "8.5.6", @@ -19982,48 +21916,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/vite/node_modules/rollup": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.0.tgz", - "integrity": "sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.50.0", - "@rollup/rollup-android-arm64": "4.50.0", - "@rollup/rollup-darwin-arm64": "4.50.0", - "@rollup/rollup-darwin-x64": "4.50.0", - "@rollup/rollup-freebsd-arm64": "4.50.0", - "@rollup/rollup-freebsd-x64": "4.50.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.50.0", - "@rollup/rollup-linux-arm-musleabihf": "4.50.0", - "@rollup/rollup-linux-arm64-gnu": "4.50.0", - "@rollup/rollup-linux-arm64-musl": "4.50.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.50.0", - "@rollup/rollup-linux-ppc64-gnu": "4.50.0", - "@rollup/rollup-linux-riscv64-gnu": "4.50.0", - "@rollup/rollup-linux-riscv64-musl": "4.50.0", - "@rollup/rollup-linux-s390x-gnu": "4.50.0", - "@rollup/rollup-linux-x64-gnu": "4.50.0", - "@rollup/rollup-linux-x64-musl": "4.50.0", - "@rollup/rollup-openharmony-arm64": "4.50.0", - "@rollup/rollup-win32-arm64-msvc": "4.50.0", - "@rollup/rollup-win32-ia32-msvc": "4.50.0", - "@rollup/rollup-win32-x64-msvc": "4.50.0", - "fsevents": "~2.3.2" - } - }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -20043,9 +21935,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", "dev": true, "license": "MIT", "dependencies": { @@ -20103,6 +21995,95 @@ "node": ">=6.9.x" } }, + "node_modules/webdriver-js-extender/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/webdriver-js-extender/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", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webdriver-js-extender/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/webdriver-js-extender/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webdriver-js-extender/node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/webdriver-js-extender/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/webdriver-manager": { "version": "12.1.9", "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.9.tgz", @@ -20149,6 +22130,29 @@ "node": ">=0.10.0" } }, + "node_modules/webdriver-manager/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webdriver-manager/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webdriver-manager/node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -20177,6 +22181,25 @@ "node": ">=0.10.0" } }, + "node_modules/webdriver-manager/node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webdriver-manager/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -20199,6 +22222,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/webdriver-manager/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webdriver-manager/node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", @@ -20206,6 +22247,29 @@ "dev": true, "license": "ISC" }, + "node_modules/webdriver-manager/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webdriver-manager/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/webdriver-manager/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -20216,7 +22280,60 @@ "brace-expansion": "^1.1.7" }, "engines": { - "node": "*" + "node": "*" + } + }, + "node_modules/webdriver-manager/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webdriver-manager/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/webdriver-manager/node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" } }, "node_modules/webdriver-manager/node_modules/rimraf": { @@ -20266,6 +22383,17 @@ "node": ">=0.8.0" } }, + "node_modules/webdriver-manager/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -20468,6 +22596,102 @@ "fsevents": "~2.3.2" } }, + "node_modules/webpack-dev-server/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-server/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webpack-dev-server/node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/webpack-dev-server/node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webpack-dev-server/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/webpack-dev-server/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -20488,48 +22712,185 @@ "dev": true, "license": "MIT", "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack-dev-server/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webpack-dev-server/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/webpack-dev-server/node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/webpack-dev-server/node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webpack-dev-server/node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/webpack-dev-server/node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" } }, - "node_modules/webpack-dev-server/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/webpack-dev-server/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">= 0.8" } }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/webpack-dev-server/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" + "bin": { + "uuid": "dist/bin/uuid" } }, "node_modules/webpack-dev-server/node_modules/ws": { @@ -20800,218 +23161,19 @@ "node": ">=8" } }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/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==", - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "dev": true, - "license": "MIT", - "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/xml-utils": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.2.tgz", - "integrity": "sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==", - "license": "CC0-1.0" - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xml2js/node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlbuilder": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz", - "integrity": "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/xmldom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", - "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xmlserializer": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/xmlserializer/-/xmlserializer-0.6.1.tgz", - "integrity": "sha512-FNb0eEqqUUbnuvxuHqNuKH8qCGKqxu+558Zi8UzOoQk8Z9LdvpONK+v7m3gpKVHrk5Aq+0nNLsKxu/6OYh7Umw==", - "license": "MIT" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/yargs/node_modules/ansi-regex": { + "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", @@ -21020,13 +23182,13 @@ "node": ">=8" } }, - "node_modules/yargs/node_modules/emoji-regex": { + "node_modules/wrap-ansi/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==", "license": "MIT" }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", @@ -21035,7 +23197,7 @@ "node": ">=8" } }, - "node_modules/yargs/node_modules/string-width": { + "node_modules/wrap-ansi/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", @@ -21049,7 +23211,7 @@ "node": ">=8" } }, - "node_modules/yargs/node_modules/strip-ansi": { + "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", @@ -21061,556 +23223,381 @@ "node": ">=8" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } + "license": "ISC" }, - "node_modules/yocto-queue": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", - "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yoctocolors-cjs": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", - "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zone.js": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.1.tgz", - "integrity": "sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==", - "license": "MIT" - }, - "node_modules/zstddec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", - "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==", - "license": "MIT AND BSD-3-Clause" - }, - "projects/base-layers-raster": { - "name": "@dlr-eoc/base-layers-raster", - "version": "16.0.0-next.0", - "license": "Apache-2.0", - "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "@angular/platform-browser-dynamic": "^19.2.12", - "zone.js": "~0.15.0" - }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12" - } - }, - "projects/cookie-alert": { - "name": "@dlr-eoc/cookie-alert", - "version": "16.0.0-next.0", - "license": "Apache-2.0", - "dependencies": { - "@dlr-eoc/services-util-store": "16.0.0-next.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "@angular/platform-browser-dynamic": "^19.2.12", - "zone.js": "~0.15.0" - }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12" - } - }, - "projects/demo-auth": { - "version": "16.0.0-next.0", - "license": "Apache-2.0", - "dependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/cookie-alert": "16.0.0-next.0", - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0" - }, - "devDependencies": { - "@angular/platform-browser-dynamic": "^19.2.12", - "protractor": "^7.0.0", - "zone.js": "~0.15.0" - }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "@angular/platform-browser": "^19.2.12", - "@angular/router": "^19.2.12", - "@clr/angular": "^17.10.0", - "rxjs": "~7.8.2" - } - }, - "projects/demo-maps": { - "version": "16.0.0-next.0", - "license": "Apache-2.0", - "dependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/map-cesium": "16.0.0-next.0", - "@dlr-eoc/map-maplibre": "16.0.0-next.0", - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/map-three": "16.0.0-next.0", - "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0", - "@dlr-eoc/services-ogc": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0", - "@dlr-eoc/utils-maps": "16.0.0-next.0" - }, - "devDependencies": { - "@angular/platform-browser-dynamic": "^19.2.12", - "protractor": "^7.0.0", - "zone.js": "~0.15.0" - }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "@angular/platform-browser": "^19.2.12", - "@angular/router": "^19.2.12", - "@clr/angular": "^17.10.0", - "ol": "^v10.5.0", - "proj4": "^2.17.0", - "rxjs": "~7.8.2" - } - }, - "projects/map-cesium": { - "name": "@dlr-eoc/map-cesium", - "version": "16.0.0-next.0", - "license": "Apache-2.0", - "dependencies": { - "@cesium/engine": "^17.0.0", - "@cesium/widgets": "^12.0.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0" + "node": ">=10.0.0" }, "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "rxjs": "~7.8.2" - } - }, - "projects/map-cesium/node_modules/@cesium/engine": { - "version": "17.0.0", - "license": "Apache-2.0", - "dependencies": { - "@tweenjs/tween.js": "^25.0.0", - "@zip.js/zip.js": "^2.7.34", - "autolinker": "^4.0.0", - "bitmap-sdf": "^1.0.3", - "dompurify": "^3.0.2", - "draco3d": "^1.5.1", - "earcut": "^3.0.0", - "grapheme-splitter": "^1.0.4", - "jsep": "^1.3.8", - "kdbush": "^4.0.1", - "ktx-parse": "^1.0.0", - "lerc": "^2.0.0", - "mersenne-twister": "^1.1.0", - "meshoptimizer": "^0.23.0", - "pako": "^2.0.4", - "protobufjs": "^7.1.0", - "rbush": "3.0.1", - "topojson-client": "^3.1.0", - "urijs": "^1.19.7" + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" }, - "engines": { - "node": ">=14.0.0" + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "projects/map-cesium/node_modules/@cesium/wasm-splats": { - "version": "0.1.0-alpha.2", - "license": "Apache-2.0" - }, - "projects/map-cesium/node_modules/@cesium/widgets": { - "version": "12.3.0", - "license": "Apache-2.0", - "dependencies": { - "@cesium/engine": "^18.3.0", - "nosleep.js": "^0.12.0" - }, - "engines": { - "node": ">=20.19.0" - } + "node_modules/xml-utils": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.2.tgz", + "integrity": "sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==", + "license": "CC0-1.0" }, - "projects/map-cesium/node_modules/@cesium/widgets/node_modules/@cesium/engine": { - "version": "18.3.0", - "license": "Apache-2.0", - "dependencies": { - "@cesium/wasm-splats": "^0.1.0-alpha.2", - "@spz-loader/core": "0.1.0", - "@tweenjs/tween.js": "^25.0.0", - "@zip.js/zip.js": "^2.7.34", - "autolinker": "^4.0.0", - "bitmap-sdf": "^1.0.3", - "dompurify": "^3.0.2", - "draco3d": "^1.5.1", - "earcut": "^3.0.0", - "grapheme-splitter": "^1.0.4", - "jsep": "^1.3.8", - "kdbush": "^4.0.1", - "ktx-parse": "^1.0.0", - "lerc": "^2.0.0", - "mersenne-twister": "^1.1.0", - "meshoptimizer": "^0.24.0", - "pako": "^2.0.4", - "protobufjs": "^7.1.0", - "rbush": "^4.0.1", - "topojson-client": "^3.1.0", - "urijs": "^1.19.7" + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" }, "engines": { - "node": ">=20.19.0" + "node": ">=4.0.0" } }, - "projects/map-cesium/node_modules/@cesium/widgets/node_modules/meshoptimizer": { - "version": "0.24.0", - "license": "MIT" - }, - "projects/map-cesium/node_modules/@cesium/widgets/node_modules/quickselect": { - "version": "3.0.0", - "license": "ISC" - }, - "projects/map-cesium/node_modules/@cesium/widgets/node_modules/rbush": { - "version": "4.0.1", + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, "license": "MIT", - "dependencies": { - "quickselect": "^3.0.0" + "engines": { + "node": ">=4.0" } }, - "projects/map-cesium/node_modules/@spz-loader/core": { - "version": "0.1.0", - "license": "Apache-2.0", + "node_modules/xmlbuilder": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz", + "integrity": "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=16", - "pnpm": ">=8" + "node": ">=6.0" } }, - "projects/map-cesium/node_modules/@tweenjs/tween.js": { - "version": "25.0.0", - "license": "MIT" - }, - "projects/map-cesium/node_modules/@zip.js/zip.js": { - "version": "2.7.73", - "license": "BSD-3-Clause", + "node_modules/xmldom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", + "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==", + "license": "MIT", "engines": { - "bun": ">=0.7.0", - "deno": ">=1.0.0", - "node": ">=16.5.0" + "node": ">=10.0.0" } }, - "projects/map-cesium/node_modules/autolinker": { - "version": "4.1.5", + "node_modules/xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - }, "engines": { - "pnpm": ">=10.10.0" + "node": ">=0.4.0" } }, - "projects/map-cesium/node_modules/bitmap-sdf": { - "version": "1.0.4", + "node_modules/xmlserializer": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/xmlserializer/-/xmlserializer-0.6.1.tgz", + "integrity": "sha512-FNb0eEqqUUbnuvxuHqNuKH8qCGKqxu+558Zi8UzOoQk8Z9LdvpONK+v7m3gpKVHrk5Aq+0nNLsKxu/6OYh7Umw==", "license": "MIT" }, - "projects/map-cesium/node_modules/dompurify": { - "version": "3.2.6", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, - "projects/map-cesium/node_modules/draco3d": { - "version": "1.5.7", - "license": "Apache-2.0" - }, - "projects/map-cesium/node_modules/jsep": { - "version": "1.4.0", - "license": "MIT", + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { - "node": ">= 10.16.0" + "node": ">=10" } }, - "projects/map-cesium/node_modules/kdbush": { - "version": "4.0.2", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, "license": "ISC" }, - "projects/map-cesium/node_modules/ktx-parse": { - "version": "1.1.0", - "license": "MIT" - }, - "projects/map-cesium/node_modules/lerc": { - "version": "2.0.0", - "license": "Apache-2.0" - }, - "projects/map-cesium/node_modules/long": { - "version": "5.3.2", - "license": "Apache-2.0" - }, - "projects/map-cesium/node_modules/meshoptimizer": { - "version": "0.23.0", - "license": "MIT" - }, - "projects/map-cesium/node_modules/nosleep.js": { - "version": "0.12.0", - "license": "MIT" - }, - "projects/map-cesium/node_modules/protobufjs": { - "version": "7.5.4", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" }, "engines": { - "node": ">=12.0.0" + "node": ">= 14.6" } }, - "projects/map-cesium/node_modules/quickselect": { - "version": "2.0.0", - "license": "ISC" - }, - "projects/map-cesium/node_modules/rbush": { - "version": "3.0.1", + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "license": "MIT", "dependencies": { - "quickselect": "^2.0.0" - } - }, - "projects/map-cesium/node_modules/urijs": { - "version": "1.19.11", - "license": "MIT" - }, - "projects/map-maplibre": { - "name": "@dlr-eoc/map-maplibre", - "version": "16.0.0-next.0", - "license": "Apache-2.0", - "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/utilities": "16.0.0-next.0", - "@mapbox/togeojson": "0.16.2", - "maplibre-gl": "^5.5.0", - "tslib": "^2.6.3" - }, - "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12", - "rxjs": "~7.8.2" + "engines": { + "node": ">=12" } }, - "projects/map-maplibre/node_modules/@mapbox/geojson-rewind": { - "version": "0.5.2", + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "license": "ISC", - "dependencies": { - "get-stream": "^6.0.1", - "minimist": "^1.2.6" - }, - "bin": { - "geojson-rewind": "geojson-rewind" + "engines": { + "node": ">=12" } }, - "projects/map-maplibre/node_modules/@mapbox/point-geometry": { - "version": "1.1.0", - "license": "ISC" - }, - "projects/map-maplibre/node_modules/@mapbox/tiny-sdf": { - "version": "2.0.7", - "license": "BSD-2-Clause" - }, - "projects/map-maplibre/node_modules/@mapbox/togeojson": { - "version": "0.16.2", - "license": "BSD-2-Clause", - "dependencies": { - "@xmldom/xmldom": "^0.8.10", - "concat-stream": "~2.0.0", - "minimist": "1.2.8" - }, - "bin": { - "togeojson": "togeojson" + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "projects/map-maplibre/node_modules/@mapbox/unitbezier": { - "version": "0.0.1", - "license": "BSD-2-Clause" - }, - "projects/map-maplibre/node_modules/@mapbox/vector-tile": { - "version": "2.0.4", - "license": "BSD-3-Clause", - "dependencies": { - "@mapbox/point-geometry": "~1.1.0", - "@types/geojson": "^7946.0.16", - "pbf": "^4.0.1" - } + "node_modules/yargs/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==", + "license": "MIT" }, - "projects/map-maplibre/node_modules/@maplibre/maplibre-gl-style-spec": { - "version": "23.3.0", - "license": "ISC", - "dependencies": { - "@mapbox/jsonlint-lines-primitives": "~2.0.2", - "@mapbox/unitbezier": "^0.0.1", - "json-stringify-pretty-compact": "^4.0.0", - "minimist": "^1.2.8", - "quickselect": "^3.0.0", - "rw": "^1.3.3", - "tinyqueue": "^3.0.0" - }, - "bin": { - "gl-style-format": "dist/gl-style-format.mjs", - "gl-style-migrate": "dist/gl-style-migrate.mjs", - "gl-style-validate": "dist/gl-style-validate.mjs" + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "projects/map-maplibre/node_modules/@maplibre/vt-pbf": { - "version": "4.0.3", + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", "dependencies": { - "@mapbox/point-geometry": "^1.1.0", - "@mapbox/vector-tile": "^2.0.4", - "@types/geojson-vt": "3.2.5", - "@types/supercluster": "^7.1.3", - "geojson-vt": "^4.0.2", - "pbf": "^4.0.1", - "supercluster": "^8.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "projects/map-maplibre/node_modules/@types/geojson-vt": { - "version": "3.2.5", + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { - "@types/geojson": "*" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "projects/map-maplibre/node_modules/@types/supercluster": { - "version": "7.1.3", + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, "license": "MIT", - "dependencies": { - "@types/geojson": "*" + "engines": { + "node": ">=6" } }, - "projects/map-maplibre/node_modules/@xmldom/xmldom": { - "version": "0.8.11", + "node_modules/yocto-queue": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "dev": true, "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "projects/map-maplibre/node_modules/geojson-vt": { - "version": "4.0.2", - "license": "ISC" - }, - "projects/map-maplibre/node_modules/get-stream": { - "version": "6.0.1", + "node_modules/yoctocolors-cjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "projects/map-maplibre/node_modules/gl-matrix": { - "version": "3.4.4", + "node_modules/zone.js": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.1.tgz", + "integrity": "sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==", "license": "MIT" }, - "projects/map-maplibre/node_modules/json-stringify-pretty-compact": { - "version": "4.0.0", - "license": "MIT" + "node_modules/zstddec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", + "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==", + "license": "MIT AND BSD-3-Clause" }, - "projects/map-maplibre/node_modules/kdbush": { - "version": "4.0.2", - "license": "ISC" + "projects/base-layers-raster": { + "name": "@dlr-eoc/base-layers-raster", + "version": "16.0.0-next.0", + "license": "Apache-2.0", + "dependencies": { + "@dlr-eoc/services-layers": "16.0.0-next.0", + "tslib": "^2.6.3" + }, + "devDependencies": { + "@angular/platform-browser-dynamic": "^19.2.12", + "zone.js": "~0.15.0" + }, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12" + } }, - "projects/map-maplibre/node_modules/maplibre-gl": { - "version": "5.7.0", - "license": "BSD-3-Clause", + "projects/cookie-alert": { + "name": "@dlr-eoc/cookie-alert", + "version": "16.0.0-next.0", + "license": "Apache-2.0", "dependencies": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/point-geometry": "^1.1.0", - "@mapbox/tiny-sdf": "^2.0.7", - "@mapbox/unitbezier": "^0.0.1", - "@mapbox/vector-tile": "^2.0.4", - "@mapbox/whoots-js": "^3.1.0", - "@maplibre/maplibre-gl-style-spec": "^23.3.0", - "@maplibre/vt-pbf": "^4.0.3", - "@types/geojson": "^7946.0.16", - "@types/geojson-vt": "3.2.5", - "@types/supercluster": "^7.1.3", - "earcut": "^3.0.2", - "geojson-vt": "^4.0.2", - "gl-matrix": "^3.4.4", - "kdbush": "^4.0.2", - "murmurhash-js": "^1.0.0", - "pbf": "^4.0.1", - "potpack": "^2.1.0", - "quickselect": "^3.0.0", - "supercluster": "^8.0.1", - "tinyqueue": "^3.0.0" + "@dlr-eoc/services-util-store": "16.0.0-next.0", + "tslib": "^2.6.3" }, - "engines": { - "node": ">=16.14.0", - "npm": ">=8.1.0" + "devDependencies": { + "@angular/platform-browser-dynamic": "^19.2.12", + "zone.js": "~0.15.0" }, - "funding": { - "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12" } }, - "projects/map-maplibre/node_modules/potpack": { - "version": "2.1.0", - "license": "ISC" + "projects/demo-auth": { + "version": "16.0.0-next.0", + "license": "Apache-2.0", + "dependencies": { + "@dlr-eoc/base-layers-raster": "16.0.0-next.0", + "@dlr-eoc/cookie-alert": "16.0.0-next.0", + "@dlr-eoc/map-ol": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0" + }, + "devDependencies": { + "@angular/platform-browser-dynamic": "^19.2.12", + "protractor": "^7.0.0", + "zone.js": "~0.15.0" + }, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12", + "@angular/platform-browser": "^19.2.12", + "@angular/router": "^19.2.12", + "@clr/angular": "^17.10.0", + "rxjs": "~7.8.2" + } }, - "projects/map-maplibre/node_modules/supercluster": { - "version": "8.0.1", - "license": "ISC", + "projects/demo-maps": { + "version": "16.0.0-next.0", + "license": "Apache-2.0", "dependencies": { - "kdbush": "^4.0.2" + "@dlr-eoc/base-layers-raster": "16.0.0-next.0", + "@dlr-eoc/map-cesium": "16.0.0-next.0", + "@dlr-eoc/map-maplibre": "16.0.0-next.0", + "@dlr-eoc/map-ol": "16.0.0-next.0", + "@dlr-eoc/map-three": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0", + "@dlr-eoc/services-ogc": "16.0.0-next.0", + "@dlr-eoc/shared-assets": "16.0.0-next.0", + "@dlr-eoc/utils-maps": "16.0.0-next.0" + }, + "devDependencies": { + "@angular/platform-browser-dynamic": "^19.2.12", + "protractor": "^7.0.0", + "zone.js": "~0.15.0" + }, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12", + "@angular/platform-browser": "^19.2.12", + "@angular/router": "^19.2.12", + "@clr/angular": "^17.10.0", + "ol": "^v10.5.0", + "proj4": "^2.17.0", + "rxjs": "~7.8.2" } }, - "projects/map-maplibre/node_modules/tinyqueue": { - "version": "3.0.0", - "license": "ISC" + "projects/map-cesium": { + "name": "@dlr-eoc/map-cesium", + "version": "16.0.0-next.0", + "license": "Apache-2.0", + "dependencies": { + "@cesium/engine": "^17.0.0", + "@cesium/widgets": "^12.0.0", + "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-map-state": "16.0.0-next.0", + "tslib": "^2.6.3" + }, + "devDependencies": { + "@dlr-eoc/base-layers-raster": "16.0.0-next.0", + "@dlr-eoc/shared-assets": "16.0.0-next.0" + }, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12", + "rxjs": "~7.8.2" + } + }, + "projects/map-maplibre": { + "name": "@dlr-eoc/map-maplibre", + "version": "16.0.0-next.0", + "license": "Apache-2.0", + "dependencies": { + "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-map-state": "16.0.0-next.0", + "@dlr-eoc/utilities": "16.0.0-next.0", + "@mapbox/togeojson": "0.16.2", + "maplibre-gl": "^5.5.0", + "tslib": "^2.6.3" + }, + "devDependencies": { + "@dlr-eoc/base-layers-raster": "16.0.0-next.0", + "@dlr-eoc/shared-assets": "16.0.0-next.0" + }, + "peerDependencies": { + "@angular/common": "^19.2.12", + "@angular/core": "^19.2.12", + "rxjs": "~7.8.2" + } }, "projects/map-ol": { "name": "@dlr-eoc/map-ol", @@ -21637,51 +23624,6 @@ "rxjs": "~7.8.2" } }, - "projects/map-ol/node_modules/@mapbox/unitbezier": { - "version": "0.0.1", - "license": "BSD-2-Clause" - }, - "projects/map-ol/node_modules/@maplibre/maplibre-gl-style-spec": { - "version": "23.3.0", - "license": "ISC", - "dependencies": { - "@mapbox/jsonlint-lines-primitives": "~2.0.2", - "@mapbox/unitbezier": "^0.0.1", - "json-stringify-pretty-compact": "^4.0.0", - "minimist": "^1.2.8", - "quickselect": "^3.0.0", - "rw": "^1.3.3", - "tinyqueue": "^3.0.0" - }, - "bin": { - "gl-style-format": "dist/gl-style-format.mjs", - "gl-style-migrate": "dist/gl-style-migrate.mjs", - "gl-style-validate": "dist/gl-style-validate.mjs" - } - }, - "projects/map-ol/node_modules/json-stringify-pretty-compact": { - "version": "4.0.0", - "license": "MIT" - }, - "projects/map-ol/node_modules/mapbox-to-css-font": { - "version": "3.2.0", - "license": "BSD-2-Clause" - }, - "projects/map-ol/node_modules/ol-mapbox-style": { - "version": "12.6.1", - "license": "BSD-2-Clause", - "dependencies": { - "@maplibre/maplibre-gl-style-spec": "^23.1.0", - "mapbox-to-css-font": "^3.1.2" - }, - "peerDependencies": { - "ol": "*" - } - }, - "projects/map-ol/node_modules/tinyqueue": { - "version": "3.0.0", - "license": "ISC" - }, "projects/map-three": { "name": "@dlr-eoc/map-three", "version": "16.0.0-next.0", @@ -21704,10 +23646,6 @@ "@angular/core": "^19.2.12" } }, - "projects/map-three/node_modules/three": { - "version": "0.176.0", - "license": "MIT" - }, "projects/ngx-ukis-ui-clarity": { "name": "@dlr-eoc/ngx-ukis-ui-clarity", "version": "16.0.0-next.0", From aadf7cf7e91531fe0f596953332e9780dc376b4e Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Fri, 5 Sep 2025 13:30:01 +0200 Subject: [PATCH 21/30] feat (ukis-libraries-scripts): use strictNullChecks --- scripts/library/index.ts | 40 +++++++++++------------ scripts/library/tsconfig.json | 1 + scripts/library/utils.ts | 60 ++++++++++++++++------------------- 3 files changed, 49 insertions(+), 52 deletions(-) diff --git a/scripts/library/index.ts b/scripts/library/index.ts index 22554aa9a..be4864764 100644 --- a/scripts/library/index.ts +++ b/scripts/library/index.ts @@ -4,7 +4,7 @@ * node scripts/projectsVersion.js -l */ -import { fork, spawn } from 'child_process'; +import { ChildProcess, fork, spawn } from 'child_process'; import { join } from 'path'; import { existsSync } from 'fs'; import { Command } from 'commander'; @@ -36,12 +36,12 @@ interface IgraphOptions { function showDependencyGraph(options: IgraphOptions) { const filterProjects = options?.projects?.split(',') || false; const projects = getProjects(ANGULARJSON); - const graph = dependencyGraph(projects, PACKAGE_SCOPE, filterProjects); + const graph = dependencyGraph(projects, PACKAGE_SCOPE!, filterProjects); console.log(graph.nodesmapGraph); } async function runCheckDeps() { - const allErrors = await checkDeps(ANGULARJSON, PACKAGE_SCOPE); + const allErrors = await checkDeps(ANGULARJSON, PACKAGE_SCOPE!); if (allErrors.length) { allErrors.map(e => formatCheckDepsOutput(e, false)); console.error(`check for missing dependencies`) @@ -66,7 +66,7 @@ function getSortedDeps(options: ISortedDepsOptions) { const targetFilter = (item: ICustomWorkspaceProject) => (options.target === 'all') ? true : item[options.target]; const typeFilter = (item: ICustomWorkspaceProject) => (options.type === 'all') ? true : item.type === options.type; const filteredProjects = getProjects(ANGULARJSON).filter(item => targetFilter(item) && typeFilter(item)); - return getSortedProjects(filteredProjects, PACKAGE_SCOPE, filterProjects); + return getSortedProjects(filteredProjects, PACKAGE_SCOPE!, filterProjects); } function runTests(offset = 0, projects, headless = false) { @@ -113,18 +113,18 @@ function runBuilds(offset = 0, projects) { const project = projects[offset]; const cliArgs = ['build', '--configuration=production', '--watch=false', project]; if (project) { - + const packageJson: IPackageJSON = require(join(CWD, ANGULARJSON.projects[project].root, 'package.json')); - let child = null; - if(packageJson && packageJson.scripts && packageJson.scripts['build']){ - const spawnCliArgs = ['run', 'build', `--workspace=projects/${project}`]; + let child: null | ChildProcess = null; + if (packageJson && packageJson.scripts && packageJson.scripts['build']) { + const spawnCliArgs = ['run', 'build', `--workspace=projects/${project}`]; console.log(consoleLogColors.Bright, `---------------------->>> ${offset + 1}: npm ${spawnCliArgs.join(' ')}`); let command = 'npm'; if (process.platform !== 'win32') { command = 'npm.cmd' } child = spawn(command, spawnCliArgs, { stdio: "inherit", shell: true }); - }else{ + } else { console.log(consoleLogColors.Bright, `---------------------->>> ${offset + 1}: run ng ${cliArgs.join(' ')}`); child = fork(`${__dirname}/run-ng.js`, cliArgs); } @@ -180,9 +180,9 @@ function setVersionsOfProjects(useDistPath = false, workspacePaths = false) { } if (!errors.length && projectsPaths.length) { if (workspacePaths && !useDistPath) { - setDependencyVersionsInWorkspaces(MAINPACKAGE, PACKAGE_SCOPE); + setDependencyVersionsInWorkspaces(MAINPACKAGE, PACKAGE_SCOPE!); } else { - setDependencyVersionsInWorkspaces(MAINPACKAGE, PACKAGE_SCOPE, projectsPaths); + setDependencyVersionsInWorkspaces(MAINPACKAGE, PACKAGE_SCOPE!, projectsPaths); } console.log(`replaced all versions in project workspaces with the versions of the main package.json`); @@ -203,7 +203,6 @@ function updateBuildPackages(registry?: string) { if (projectsPaths.length) { - const packageScope = PACKAGE_SCOPE; const repositoryUrl = `git+https://github.com/${process.env.GITHUB_REPOSITORY}.git`; projectsPaths.map(p => { @@ -221,9 +220,9 @@ function updateBuildPackages(registry?: string) { }); if (typeof registry === 'string') { - createNpmrc(join(p, '.npmrc'), packageScope, registry); + createNpmrc(join(p, '.npmrc'), PACKAGE_SCOPE!, registry); } else { - createNpmrc(join(p, '.npmrc'), packageScope); + createNpmrc(join(p, '.npmrc'), PACKAGE_SCOPE!); } }); @@ -258,15 +257,15 @@ function showProjectsAndDependencies(silent = false, showPeer = false, projectTy } projectsPaths.forEach((p) => { - const projectPackage = require(p.packagePath); + const projectPackage: IPackageJSON = require(p.packagePath); const project: Iproject = { name: projectPackage.name, - version: projectPackage.version, + version: projectPackage.version!, error: false, - dependencies: null + dependencies: '' }; - if (p.type === 'library' && projectPackage.name.indexOf(PACKAGE_SCOPE) === -1) { + if (p.type === 'library' && projectPackage.name.indexOf(PACKAGE_SCOPE!) === -1) { const error = `name of project: ${projectPackage.name} must be prefixed with the ${PACKAGE_SCOPE} namespace!`; if (!silent) { console.error(error); @@ -277,7 +276,7 @@ function showProjectsAndDependencies(silent = false, showPeer = false, projectTy if (projectPackage.dependencies) { const dependencies = Object.keys(projectPackage.dependencies); - project.dependencies = dependencies.join(',') || null; + project.dependencies = dependencies.join(','); } // without peerDeps @@ -286,7 +285,7 @@ function showProjectsAndDependencies(silent = false, showPeer = false, projectTy const newProject = Object.assign({}, project); if (projectPackage.peerDependencies) { const peerDependencies = Object.keys(projectPackage.peerDependencies); - newProject.peerDependencies = peerDependencies.join(',') || null; + newProject.peerDependencies = peerDependencies.join(','); } projectsPeer.push(newProject); }); @@ -302,6 +301,7 @@ function showProjectsAndDependencies(silent = false, showPeer = false, projectTy return errors; } +// TODO: maybe check https://github.com/lerna-lite/lerna-lite as replacement? export function run() { const privPackage = require(join(__dirname, 'package.json')); const program = new Command(`node ${privPackage.main}`); diff --git a/scripts/library/tsconfig.json b/scripts/library/tsconfig.json index bc05a62bc..fb418bf0c 100644 --- a/scripts/library/tsconfig.json +++ b/scripts/library/tsconfig.json @@ -9,6 +9,7 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "importHelpers": true, + "strictNullChecks": true, "types": [ "jasmine", "node" diff --git a/scripts/library/utils.ts b/scripts/library/utils.ts index 0f3a4a765..9058e9866 100644 --- a/scripts/library/utils.ts +++ b/scripts/library/utils.ts @@ -78,16 +78,16 @@ export interface IcheckDepsOutput { usedDependencies?: string; } -type RecursiveMap = Map; +type RecursiveMap = Map; /** * replaces all dependency versions in your workspaces with the versions set in main package.json dependencies and devDependencies. * Workspace paths are a replacement for the default paths from your package workspaces, and another dependency object in the main package can be used using depsKey */ export function setDependencyVersionsInWorkspaces(MAINPACKAGE: IPackageJSON, packageScope: string, workspacesPaths?: string[], depsKey?: string) { - const workspaces = workspacesPaths || MAINPACKAGE?.workspaces.map(p => join(CWD, p.replace(/\\/g, '/'), 'package.json')); + const workspaces = workspacesPaths || MAINPACKAGE?.workspaces?.map(p => join(CWD, p.replace(/\\/g, '/'), 'package.json')); if (workspaces) { - let mainDependencies = Object.assign(MAINPACKAGE.devDependencies, MAINPACKAGE.dependencies); + let mainDependencies = Object.assign(MAINPACKAGE.devDependencies || {}, MAINPACKAGE.dependencies); if (depsKey) { mainDependencies = MAINPACKAGE[depsKey]; @@ -97,7 +97,7 @@ export function setDependencyVersionsInWorkspaces(MAINPACKAGE: IPackageJSON, pac workspaces.forEach(async path => { // todo use all deps in man also dev or add a shared deps // and replace also in @dlr-eoc/shared-assets wich not in workspacesPaths - await updateWorkspace(path, mainDependencies, MAINPACKAGE.version, packageScope); + await updateWorkspace(path, mainDependencies, MAINPACKAGE.version as string, packageScope); }); } else { @@ -223,8 +223,8 @@ export function getProjects(angularJson: WorkspaceSchema) { */ export function dependencyGraph(projects: ICustomWorkspaceProject[], packageScope: string, filterPN?: string[] | false) { const projectNames = projects.map(p => p.name); - const nodesmapGraph: Map = new Map(); - const edges: [string, string][] = []; + const nodesmapGraph: RecursiveMap = new Map(); + const edges: [string, string | undefined][] = []; /** * Map of depName: projectName */ @@ -236,9 +236,9 @@ export function dependencyGraph(projects: ICustomWorkspaceProject[], packageScop nodes.push(packageProjectName); // also get projectPackage.devDependencies and projectPackage.peerDependencies - let projectDeps: string[] = null; - let projectDevDeps: string[] = null; - let projectPeerDeps: string[] = null; + let projectDeps: string[] = []; + let projectDevDeps: string[] = []; + let projectPeerDeps: string[] = []; if (projectPackage.dependencies) { projectDeps = Object.keys(projectPackage.dependencies).filter((key) => key.indexOf(packageScope) !== -1).map(key => key.replace(packageScope, '')); addDepsOfProject('dependencies', projectDeps, projectNames, packageProjectName, nodesmapGraph, edges); @@ -264,10 +264,10 @@ export function dependencyGraph(projects: ICustomWorkspaceProject[], packageScop traverseUpdate(nodesmapGraph, nodesmapGraph); if (filterPN) { - const filteredGraph: Map = new Map(); + const filteredGraph: RecursiveMap = new Map(); filterPN.forEach(projectName => { if (nodesmapGraph.has(projectName)) { - filteredGraph.set(projectName, nodesmapGraph.get(projectName)); + filteredGraph.set(projectName, nodesmapGraph.get(projectName)!); } }); @@ -292,7 +292,7 @@ export function dependencyGraph(projects: ICustomWorkspaceProject[], packageScop function addDepsOfProject(depsType: string, dependencies: string[], projectNames: string[], packageProjectName: string, nodesmapGraph: Map, edges: [string, string][]) { if (dependencies.length) { - const depsObj: Map = new Map(); + const depsObj: RecursiveMap = new Map(); dependencies.forEach((dep) => { if (projectNames.includes(dep)) { // graph only for dependencies not like edges for all; @@ -308,22 +308,18 @@ function addDepsOfProject(depsType: string, dependencies: string[], projectNames } }); if (depsObj.size) { - nodesmapGraph.set(packageProjectName, depsObj); - } - } -} - - -function traverseUpdate(map: RecursiveMap, lookupTree: Map) { - if (map.size) { - for (const [key, value] of map.entries()) { - if (!value) { +/** + * fill all null childs if the would have dependencies - not get in the first iteration for the graph + * + */ +function traverseUpdate(graph: RecursiveMap, lookupTree: RecursiveMap) { + if (graph.size) { + for (const [key, value] of graph.entries()) { + if (value === null && lookupTree.has(key)) { // if value of the key is null and the key is in the tree, replace the map key with the tree key if it is not null - if (lookupTree.has(key)) { - const treeKey = lookupTree.get(key); - if (treeKey) { - map.set(key, treeKey); - } + const treeKey = lookupTree.get(key); + if (treeKey) { + graph.set(key, treeKey); } } if (value instanceof Map) { @@ -431,17 +427,17 @@ export function formatCheckDepsOutput(error: IcheckDepsOutput, showUsed = false) projectPath: ${error.projectPath} missingDependencies: ${error.missingDependencies}`; - if (error.unusedDependencies.length) { + if (error.unusedDependencies?.length) { str += ` peerDependencies: ${error.unusedDependencies}`; } - if (error.unusedDevDependencies.length) { + if (error.unusedDevDependencies?.length) { str += ` unusedDevDependencies: ${error.unusedDevDependencies}`; } - if (error.invalidFiles.length > 2) { + if (error.invalidFiles?.length && error.invalidFiles.length > 2) { str += ` invalidFiles: ${error.invalidFiles}`; } @@ -479,14 +475,14 @@ function checkTransitiveDependencies(depcheckResults: depcheck.Results, packageS * get package.json for each dependency and check if it includes one of the dependencies; */ allDependencies.map(key => { - if(key === "projects"){ + if (key === "projects") { console.info(`Check imports - maybe it should be ${packageScope} instead of "projects/"`, depcheckResults.using[key]); } let packagePath = `${key}/package.json`; if (key.includes(packageScope)) { packagePath = join(CWD, packagePath.replace(packageScope, 'projects/')); } - const allPackageDeps = []; + const allPackageDeps: string[] = []; // Resolve package path and then read package.json with FS because some packages do not list ./package.json on there exports so if we require the package.json an error occurres. // Package subpath './package.json' is not defined by "exports" const resPackagePath = browserifyResolve(packagePath); From 9e0b1520ba432eb19419060ad7d31febccc3022d Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Fri, 5 Sep 2025 13:34:08 +0200 Subject: [PATCH 22/30] fix (ukis-libraries-scripts): build deps graph and sort also if all dependencies (peerDependencies) are used --- scripts/library/package.json | 3 +- scripts/library/utils.ts | 101 ++++++++++++++++++++++++----------- 2 files changed, 71 insertions(+), 33 deletions(-) diff --git a/scripts/library/package.json b/scripts/library/package.json index e925b1742..e6c4a02a9 100644 --- a/scripts/library/package.json +++ b/scripts/library/package.json @@ -1,11 +1,12 @@ { "name": "ukis-libraries-scripts", - "version": "3.0.1", + "version": "3.0.2", "license": "Apache-2.0", "author": "Team UKIS", "description": "This package contains a few scripts to build and test angular libraries.", "scripts": { "build": "npx tsc -p tsconfig.json", + "build:watch": "npx tsc -p tsconfig.json -w", "postinstall": "npm run build" }, "main": "index.js", diff --git a/scripts/library/utils.ts b/scripts/library/utils.ts index 9058e9866..296f72dce 100644 --- a/scripts/library/utils.ts +++ b/scripts/library/utils.ts @@ -232,8 +232,8 @@ export function dependencyGraph(projects: ICustomWorkspaceProject[], packageScop projects.forEach((project) => { if (existsSync(project.packagePath)) { const projectPackage: IPackageJSON = require(project.packagePath); - const packageProjectName = projectPackage.name.replace(packageScope, ''); - nodes.push(packageProjectName); + const projectPackageName = projectPackage.name.replace(packageScope, ''); + nodes.push(projectPackageName); // also get projectPackage.devDependencies and projectPackage.peerDependencies let projectDeps: string[] = []; @@ -241,26 +241,26 @@ export function dependencyGraph(projects: ICustomWorkspaceProject[], packageScop let projectPeerDeps: string[] = []; if (projectPackage.dependencies) { projectDeps = Object.keys(projectPackage.dependencies).filter((key) => key.indexOf(packageScope) !== -1).map(key => key.replace(packageScope, '')); - addDepsOfProject('dependencies', projectDeps, projectNames, packageProjectName, nodesmapGraph, edges); + addDepsOfProject('dependencies', projectDeps, projectNames, projectPackageName, nodesmapGraph, edges); } if (projectPackage.devDependencies) { projectDevDeps = Object.keys(projectPackage.devDependencies).filter((key) => key.indexOf(packageScope) !== -1).map(key => key.replace(packageScope, '')); - addDepsOfProject('devDependencies', projectDevDeps, projectNames, packageProjectName, nodesmapGraph, edges); + addDepsOfProject('devDependencies', projectDevDeps, projectNames, projectPackageName, nodesmapGraph, edges); } if (projectPackage.peerDependencies) { projectPeerDeps = Object.keys(projectPackage.peerDependencies).filter((key) => key.indexOf(packageScope) !== -1).map(key => key.replace(packageScope, '')); - addDepsOfProject('peerDependencies', projectPeerDeps, projectNames, packageProjectName, nodesmapGraph, edges); + addDepsOfProject('peerDependencies', projectPeerDeps, projectNames, projectPackageName, nodesmapGraph, edges); } // if project has no dependencies at all if (!projectDeps?.length && !projectDevDeps?.length && !projectPeerDeps?.length) { - nodesmapGraph.set(packageProjectName, null); + nodesmapGraph.set(projectPackageName, null); } } }); - // fill all null childs not get in the first iteration + traverseUpdate(nodesmapGraph, nodesmapGraph); if (filterPN) { @@ -271,18 +271,10 @@ export function dependencyGraph(projects: ICustomWorkspaceProject[], packageScop } }); - // edge = [projectName, dep->projectName] - // check if project name from filter array is edge[0] -> map to edge[1] and remove duplicates - const projectsDeps: string[] = edges.filter(e => filterPN.includes(e[0])).map(e => e[1]).filter((item, index, array) => array.indexOf(item) === index); - - // add the dependencies of the project to the filter array so we can then filter all edges edge[0] based on this list - projectsDeps.forEach(item => { - if (filterPN.indexOf(item) === -1) { - filterPN.push(item); - } - }); - const filteredEdges: [string, string][] = edges.filter(e => filterPN.includes(e[0])); + /** filterPN is then already included in the filteredEdges */ + const filteredEdges = edgesFromGraph(filterPN, filteredGraph); const filteredNodes = nodes.filter(n => filterPN.includes(n)); + return { edges: filteredEdges, nodes: filteredNodes, nodesmapGraph: filteredGraph }; } else { return { edges, nodes, nodesmapGraph }; @@ -290,24 +282,75 @@ export function dependencyGraph(projects: ICustomWorkspaceProject[], packageScop } -function addDepsOfProject(depsType: string, dependencies: string[], projectNames: string[], packageProjectName: string, nodesmapGraph: Map, edges: [string, string][]) { + +function edgesFromGraph(parent: string | string[], map: RecursiveMap) { + const edges: [string, string | undefined][] = []; + + if (!map) return edges; + + // if parent is an array of roots, run recursively for each + if (Array.isArray(parent)) { + for (const p of parent) { + const hasKey = map.get(p); + if (hasKey) { + edges.push(...edgesFromGraph(p, hasKey)); + } + } + + const uniqueEdges = Array.from( + new Map(edges.map(edge => [edge.join('|'), edge])).values() + ); + return uniqueEdges.sort((a, b) => a[0].localeCompare(b[0])); + } + + for (const [key, value] of map.entries()) { + edges.push([parent, key]); + if (value instanceof Map) { + edges.push(...edgesFromGraph(key, value)); + } + } + + const uniqueEdges = Array.from( + new Map(edges.map(edge => [edge.join('|'), edge])).values() + ); + + return uniqueEdges.sort((a, b) => a[0].localeCompare(b[0])); +} + +/** + * check if the project has dependencies, if yes add it as node to the graph + * create edges for all its dependencies +*/ +function addDepsOfProject(depsType: 'dependencies' | 'devDependencies' | 'peerDependencies', dependencies: string[], projectNames: string[], projectPackageName: string, nodesmapGraph: RecursiveMap, edges: [string, string | undefined][]) { if (dependencies.length) { const depsObj: RecursiveMap = new Map(); dependencies.forEach((dep) => { if (projectNames.includes(dep)) { // graph only for dependencies not like edges for all; - if (depsType === 'dependencies') { + if (depsType === 'dependencies' || depsType === 'peerDependencies' || depsType === 'devDependencies') { if (nodesmapGraph.has(dep)) { - depsObj.set(dep, nodesmapGraph.get(dep)); + depsObj.set(dep, nodesmapGraph.get(dep)!); } else { depsObj.set(dep, null); } } - edges.push([packageProjectName, dep]); + edges.push([projectPackageName, dep]); } }); if (depsObj.size) { + // this runs for all depsType, to create a merge of the depsObj if the graph already has the node + if (nodesmapGraph.has(projectPackageName)) { + const oldMap = nodesmapGraph.get(projectPackageName); + const mergeMap: RecursiveMap = new Map([...oldMap!, ...depsObj]); + nodesmapGraph.set(projectPackageName, mergeMap); + } else { + nodesmapGraph.set(projectPackageName, depsObj); + } + } + } +} + /** * fill all null childs if the would have dependencies - not get in the first iteration for the graph * @@ -331,17 +374,11 @@ function traverseUpdate(graph: RecursiveMap, lookupTree: RecursiveMap) { export function getSortedProjects(projects: ICustomWorkspaceProject[], packageScope: string, filterPN?: string[] | false) { - const gne = dependencyGraph(projects, packageScope, filterPN); + const { edges } = dependencyGraph(projects, packageScope, filterPN); /** An array of directed edges describing a graph e.g. edge1 */ - //const flattdeps = toposort.array(gne.nodes, gne.edges).reverse(); - const flattdeps = toposort(gne.edges).reverse(); - let difference = gne.nodes.filter(x => !flattdeps.includes(x)); - let sortedProjects = flattdeps; - if (difference.length) { - // if projects do not have dependencies the ara not in flattdeps so we have to collect them from the nodes array - sortedProjects = [...difference, ...flattdeps]; - } - return sortedProjects + // maybe check other toposort libs https://www.npmjs.com/search?page=0&q=toposort&sortBy=dependent_count + const flattdeps = toposort(edges).reverse(); + return flattdeps; } /** From 0b13da60bd3a3e230bbff72ce94ebc21dd9ed0f9 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Fri, 5 Sep 2025 13:36:31 +0200 Subject: [PATCH 23/30] fix (ngx-ukis-ui-clarity): build has deps so run all builds before test --- package.json | 5 ++--- projects/ngx-ukis-ui-clarity/package.json | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 6d264a477..84ea19034 100644 --- a/package.json +++ b/package.json @@ -20,10 +20,9 @@ ], "scripts": { "start": "ng serve demo-maps", - "build": "node scripts/library/index.js --build", - "test": "node scripts/library/index.js --test", + "library": "node scripts/library/index.js", "schematics:test": "npm run schematics:test --workspace=projects/ngx-ukis-ui-clarity", - "syncVersionsInWorkspaces": "node scripts/library/index.js --set-source", + "ui-clarity:build": "npm run library -- --build --projects=ngx-ukis-ui-clarity", "build:scripts": "npx tsc -p scripts/library/tsconfig.json", "lint": "ng lint", "compodoc": "compodoc -p tsconfig.doc.json -a projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets -n \"UKIS Frontend libraries\"", diff --git a/projects/ngx-ukis-ui-clarity/package.json b/projects/ngx-ukis-ui-clarity/package.json index c36fd9cb9..a2a20bf69 100644 --- a/projects/ngx-ukis-ui-clarity/package.json +++ b/projects/ngx-ukis-ui-clarity/package.json @@ -15,7 +15,7 @@ "build": "ng build ngx-ukis-ui-clarity --configuration=production --watch=false", "schematics:build": "tsc -p tsconfig.schematics.json", "postbuild": "npm run schematics:build", - "preschematics:test": "npm run build", + "preschematics:test": "npm run --prefix ../../ ui-clarity:build", "schematics:test": "npx jasmine ../../dist/ngx-ukis-ui-clarity/schematics/**/*_spec.js" }, "dependencies": { From 8c28f618c696d5c988d2bbdc76304ce0a9c33ab8 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Fri, 5 Sep 2025 13:37:39 +0200 Subject: [PATCH 24/30] refactor: use npm script to run library scripts --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 84ea19034..8ef977f6e 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,11 @@ "scripts": { "start": "ng serve demo-maps", "library": "node scripts/library/index.js", + "build": "npm run library -- --build", + "test": "npm run library -- --test", "schematics:test": "npm run schematics:test --workspace=projects/ngx-ukis-ui-clarity", "ui-clarity:build": "npm run library -- --build --projects=ngx-ukis-ui-clarity", + "syncVersionsInWorkspaces": "npm run library -- --set-source", "build:scripts": "npx tsc -p scripts/library/tsconfig.json", "lint": "ng lint", "compodoc": "compodoc -p tsconfig.doc.json -a projects/ngx-ukis-ui-clarity/schematics/ng-add/files/src/assets -n \"UKIS Frontend libraries\"", From 0e0116e06d9cf968f3b545a26518c682898da6af Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Fri, 5 Sep 2025 15:10:16 +0200 Subject: [PATCH 25/30] fix (ukis-libraries-scripts): check platform for npm --- scripts/library/index.ts | 2 +- scripts/library/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/library/index.ts b/scripts/library/index.ts index be4864764..420ae696c 100644 --- a/scripts/library/index.ts +++ b/scripts/library/index.ts @@ -120,7 +120,7 @@ function runBuilds(offset = 0, projects) { const spawnCliArgs = ['run', 'build', `--workspace=projects/${project}`]; console.log(consoleLogColors.Bright, `---------------------->>> ${offset + 1}: npm ${spawnCliArgs.join(' ')}`); let command = 'npm'; - if (process.platform !== 'win32') { + if (process.platform === 'win32') { command = 'npm.cmd' } child = spawn(command, spawnCliArgs, { stdio: "inherit", shell: true }); diff --git a/scripts/library/package.json b/scripts/library/package.json index e6c4a02a9..c2647db97 100644 --- a/scripts/library/package.json +++ b/scripts/library/package.json @@ -1,6 +1,6 @@ { "name": "ukis-libraries-scripts", - "version": "3.0.2", + "version": "3.0.3", "license": "Apache-2.0", "author": "Team UKIS", "description": "This package contains a few scripts to build and test angular libraries.", From b77b7fcda0519b3797a3cd961e447a49f9f1ee97 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 9 Sep 2025 10:45:54 +0200 Subject: [PATCH 26/30] fix (base-layers-raster): remove unnecessary peer dependencies --- projects/base-layers-raster/package.json | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/projects/base-layers-raster/package.json b/projects/base-layers-raster/package.json index 26a6b852d..8ee507eba 100644 --- a/projects/base-layers-raster/package.json +++ b/projects/base-layers-raster/package.json @@ -12,16 +12,13 @@ "Geoservice", "OSM" ], - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12" - }, "dependencies": { "@dlr-eoc/services-layers": "16.0.0-next.0", "tslib": "^2.6.3" }, "devDependencies": { "zone.js": "~0.15.0", - "@angular/platform-browser-dynamic": "^19.2.12" + "@angular/platform-browser-dynamic": "^19.2.12", + "@angular/core": "^19.2.12" } } From b2f47e51413fc8531400172974d2476378dad5f3 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 9 Sep 2025 10:51:35 +0200 Subject: [PATCH 27/30] refactor (ngx-ukis-utilities): adjust docs and remove unused files from the library generation --- projects/ngx-ukis-utilities/README.md | 64 ++----------------- .../src/lib/ngx-ukis-utilities.spec.ts | 23 ------- .../src/lib/ngx-ukis-utilities.ts | 15 ----- projects/ngx-ukis-utilities/src/public-api.ts | 2 - 4 files changed, 5 insertions(+), 99 deletions(-) delete mode 100644 projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.spec.ts delete mode 100644 projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.ts diff --git a/projects/ngx-ukis-utilities/README.md b/projects/ngx-ukis-utilities/README.md index 1b57ff6cb..02ad5960b 100644 --- a/projects/ngx-ukis-utilities/README.md +++ b/projects/ngx-ukis-utilities/README.md @@ -1,63 +1,9 @@ -# NgxUkisUtilities +# @dlr-eoc/ngx-ukis-utilities -This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.2.0. - -## Code scaffolding - -Angular CLI includes powerful code scaffolding tools. To generate a new component, run: - -```bash -ng generate component component-name -``` - -For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: - -```bash -ng generate --help -``` - -## Building - -To build the library, run: - -```bash -ng build ngx-ukis-utilities -``` - -This command will compile your project, and the build artifacts will be placed in the `dist/` directory. - -### Publishing the Library +This package includes utilities based on angular to use in ukis frontends. -Once the project is built, you can publish your library by following these steps: +- dynamic-component +- pipes -1. Navigate to the `dist` directory: - ```bash - cd dist/ngx-ukis-utilities - ``` -2. Run the `npm publish` command to publish your library to the npm registry: - ```bash - npm publish - ``` - -## Running unit tests - -To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: - -```bash -ng test -``` - -## Running end-to-end tests - -For end-to-end (e2e) testing, run: - -```bash -ng e2e -``` - -Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. - -## Additional Resources - -For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.2.0. diff --git a/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.spec.ts b/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.spec.ts deleted file mode 100644 index bf6c458e3..000000000 --- a/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { NgxUkisUtilities } from './ngx-ukis-utilities'; - -describe('NgxUkisUtilities', () => { - let component: NgxUkisUtilities; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [NgxUkisUtilities] - }) - .compileComponents(); - - fixture = TestBed.createComponent(NgxUkisUtilities); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.ts b/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.ts deleted file mode 100644 index 267bd3d64..000000000 --- a/projects/ngx-ukis-utilities/src/lib/ngx-ukis-utilities.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'ngx-ngx-ukis-utilities', - imports: [], - template: ` -

- ngx-ukis-utilities works! -

- `, - styles: `` -}) -export class NgxUkisUtilities { - -} diff --git a/projects/ngx-ukis-utilities/src/public-api.ts b/projects/ngx-ukis-utilities/src/public-api.ts index 51a66fffa..1de88f064 100644 --- a/projects/ngx-ukis-utilities/src/public-api.ts +++ b/projects/ngx-ukis-utilities/src/public-api.ts @@ -1,7 +1,5 @@ /* * Public API Surface of ngx-ukis-utilities */ - -export * from './lib/ngx-ukis-utilities'; export * from './lib/pipes'; export * from './lib/dynamic-component/dynamic-component'; From d5abda4481c69d8e0825fbe13b4e66ff8b08b9a2 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 9 Sep 2025 10:59:02 +0200 Subject: [PATCH 28/30] build: fix not set version for last prereleases --- package-lock.json | 141 +++++++++++----------- package.json | 2 +- projects/base-layers-raster/package.json | 4 +- projects/cookie-alert/package.json | 4 +- projects/demo-auth/package.json | 10 +- projects/demo-maps/package.json | 20 +-- projects/map-cesium/package.json | 10 +- projects/map-maplibre/package.json | 12 +- projects/map-ol/package.json | 12 +- projects/map-three/package.json | 10 +- projects/ngx-ukis-ui-clarity/package.json | 10 +- projects/ngx-ukis-utilities/package.json | 2 +- projects/services-layers/package.json | 6 +- projects/services-map-state/package.json | 4 +- projects/services-ogc/package.json | 14 +-- projects/services-util-store/package.json | 2 +- projects/shared-assets/package.json | 2 +- projects/utilities/package.json | 2 +- projects/utils-browser/package.json | 2 +- projects/utils-maps/package.json | 2 +- projects/utils-ogc/package.json | 2 +- 21 files changed, 135 insertions(+), 138 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1c79bc2b2..3a9eab876 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ukis-frontend-libraries", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ukis-frontend-libraries", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "hasInstallScript": true, "license": "Apache-2.0", "workspaces": [ @@ -23471,27 +23471,24 @@ }, "projects/base-layers-raster": { "name": "@dlr-eoc/base-layers-raster", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-layers": "16.0.0-next.2", "tslib": "^2.6.3" }, "devDependencies": { + "@angular/core": "^19.2.12", "@angular/platform-browser-dynamic": "^19.2.12", "zone.js": "~0.15.0" - }, - "peerDependencies": { - "@angular/common": "^19.2.12", - "@angular/core": "^19.2.12" } }, "projects/cookie-alert": { "name": "@dlr-eoc/cookie-alert", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-util-store": "16.0.0-next.0", + "@dlr-eoc/services-util-store": "16.0.0-next.2", "tslib": "^2.6.3" }, "devDependencies": { @@ -23504,13 +23501,13 @@ } }, "projects/demo-auth": { - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/cookie-alert": "16.0.0-next.0", - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0" + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/cookie-alert": "16.0.0-next.2", + "@dlr-eoc/map-ol": "16.0.0-next.2", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.2" }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", @@ -23527,18 +23524,18 @@ } }, "projects/demo-maps": { - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/map-cesium": "16.0.0-next.0", - "@dlr-eoc/map-maplibre": "16.0.0-next.0", - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/map-three": "16.0.0-next.0", - "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0", - "@dlr-eoc/services-ogc": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0", - "@dlr-eoc/utils-maps": "16.0.0-next.0" + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/map-cesium": "16.0.0-next.2", + "@dlr-eoc/map-maplibre": "16.0.0-next.2", + "@dlr-eoc/map-ol": "16.0.0-next.2", + "@dlr-eoc/map-three": "16.0.0-next.2", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.2", + "@dlr-eoc/services-ogc": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.2", + "@dlr-eoc/utils-maps": "16.0.0-next.2" }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", @@ -23558,18 +23555,18 @@ }, "projects/map-cesium": { "name": "@dlr-eoc/map-cesium", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { "@cesium/engine": "^17.0.0", "@cesium/widgets": "^12.0.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.2", "tslib": "^2.6.3" }, "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0" + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.2" }, "peerDependencies": { "@angular/common": "^19.2.12", @@ -23579,19 +23576,19 @@ }, "projects/map-maplibre": { "name": "@dlr-eoc/map-maplibre", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/utilities": "16.0.0-next.0", + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/utilities": "16.0.0-next.2", "@mapbox/togeojson": "0.16.2", "maplibre-gl": "^5.5.0", "tslib": "^2.6.3" }, "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0" + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.2" }, "peerDependencies": { "@angular/common": "^19.2.12", @@ -23601,12 +23598,12 @@ }, "projects/map-ol": { "name": "@dlr-eoc/map-ol", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/utils-maps": "16.0.0-next.0", + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/utils-maps": "16.0.0-next.2", "ol": "^v10.5.0", "ol-mapbox-style": "^12.4.0", "proj4": "^2.17.0", @@ -23614,8 +23611,8 @@ }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0", + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.2", "zone.js": "~0.15.0" }, "peerDependencies": { @@ -23626,13 +23623,13 @@ }, "projects/map-three": { "name": "@dlr-eoc/map-three", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/utils-maps": "16.0.0-next.0", + "@dlr-eoc/map-ol": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/utils-maps": "16.0.0-next.2", "proj4": "^2.17.0", "three": "^0.176.0", "tslib": "^2.6.3" @@ -23648,7 +23645,7 @@ }, "projects/ngx-ukis-ui-clarity": { "name": "@dlr-eoc/ngx-ukis-ui-clarity", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { "@angular-devkit/core": "^19.2.13", @@ -23673,10 +23670,10 @@ "@cds/core": "^6.15.1", "@clr/angular": "^17.10.0", "@clr/ui": "^17.10.0", - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", + "@dlr-eoc/map-ol": "16.0.0-next.2", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.2", "jsonc-parser": "^3.3.1", "ol": "^v10.5.0", "proj4": "^2.17.0", @@ -23711,7 +23708,7 @@ }, "projects/ngx-ukis-utilities": { "name": "@dlr-eoc/ngx-ukis-utilities", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.3" @@ -23725,15 +23722,15 @@ }, "projects/services-layers": { "name": "@dlr-eoc/services-layers", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.3" }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.2", "zone.js": "~0.15.0" }, "peerDependencies": { @@ -23744,10 +23741,10 @@ }, "projects/services-map-state": { "name": "@dlr-eoc/services-map-state", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-layers": "16.0.0-next.2", "tslib": "^2.6.3" }, "devDependencies": { @@ -23762,14 +23759,14 @@ }, "projects/services-ogc": { "name": "@dlr-eoc/services-ogc", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/services-util-store": "16.0.0-next.0", - "@dlr-eoc/utils-ogc": "16.0.0-next.0", + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/services-util-store": "16.0.0-next.2", + "@dlr-eoc/utils-ogc": "16.0.0-next.2", "jsonix": "^3.0.0", "luxon": "^3.6.1", "ogc-schemas": "^2.6.1", @@ -23780,7 +23777,7 @@ }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/shared-assets": "16.0.0-next.0", + "@dlr-eoc/shared-assets": "16.0.0-next.2", "proj4": "^2.17.0", "terser": "^5.39.2", "zone.js": "~0.15.0" @@ -23819,7 +23816,7 @@ }, "projects/services-util-store": { "name": "@dlr-eoc/services-util-store", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { "md5": "^2.3.0", @@ -23836,13 +23833,13 @@ }, "projects/shared-assets": { "name": "@dlr-eoc/shared-assets", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "devDependencies": {} }, "projects/utilities": { "name": "@dlr-eoc/utilities", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.3" @@ -23854,7 +23851,7 @@ }, "projects/utils-browser": { "name": "@dlr-eoc/utils-browser", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "devDependencies": { "@angular/core": "^19.2.12", @@ -23864,7 +23861,7 @@ }, "projects/utils-maps": { "name": "@dlr-eoc/utils-maps", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { "delaunator": "^5.0.1", @@ -23879,7 +23876,7 @@ }, "projects/utils-ogc": { "name": "@dlr-eoc/utils-ogc", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "dependencies": { "jsonix": "^3.0.0", @@ -23896,7 +23893,7 @@ }, "scripts/library": { "name": "ukis-libraries-scripts", - "version": "3.0.1", + "version": "3.0.3", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 8ef977f6e..88fffe51f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ukis-frontend-libraries", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "author": "Team UKIS", "projectsScope": "@dlr-eoc/", diff --git a/projects/base-layers-raster/package.json b/projects/base-layers-raster/package.json index 8ee507eba..61da0036e 100644 --- a/projects/base-layers-raster/package.json +++ b/projects/base-layers-raster/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/base-layers-raster", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -13,7 +13,7 @@ "OSM" ], "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-layers": "16.0.0-next.2", "tslib": "^2.6.3" }, "devDependencies": { diff --git a/projects/cookie-alert/package.json b/projects/cookie-alert/package.json index 6131ffa62..c080c57d7 100644 --- a/projects/cookie-alert/package.json +++ b/projects/cookie-alert/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/cookie-alert", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -16,7 +16,7 @@ "@angular/core": "^19.2.12" }, "dependencies": { - "@dlr-eoc/services-util-store": "16.0.0-next.0", + "@dlr-eoc/services-util-store": "16.0.0-next.2", "tslib": "^2.6.3" }, "devDependencies": { diff --git a/projects/demo-auth/package.json b/projects/demo-auth/package.json index 43cf5cc74..d7dd47032 100644 --- a/projects/demo-auth/package.json +++ b/projects/demo-auth/package.json @@ -1,6 +1,6 @@ { "name": "demo-auth", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -21,10 +21,10 @@ "rxjs": "~7.8.2" }, "dependencies": { - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0", - "@dlr-eoc/cookie-alert": "16.0.0-next.0", - "@dlr-eoc/base-layers-raster": "16.0.0-next.0" + "@dlr-eoc/map-ol": "16.0.0-next.2", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.2", + "@dlr-eoc/cookie-alert": "16.0.0-next.2", + "@dlr-eoc/base-layers-raster": "16.0.0-next.2" }, "devDependencies": { "zone.js": "~0.15.0", diff --git a/projects/demo-maps/package.json b/projects/demo-maps/package.json index 547baabcd..a14d9112d 100644 --- a/projects/demo-maps/package.json +++ b/projects/demo-maps/package.json @@ -1,6 +1,6 @@ { "name": "demo-maps", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -22,15 +22,15 @@ "proj4": "^2.17.0" }, "dependencies": { - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.0", - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/map-three": "16.0.0-next.0", - "@dlr-eoc/utils-maps": "16.0.0-next.0", - "@dlr-eoc/services-ogc": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0", - "@dlr-eoc/map-cesium": "16.0.0-next.0", - "@dlr-eoc/map-maplibre": "16.0.0-next.0" + "@dlr-eoc/map-ol": "16.0.0-next.2", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.2", + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/map-three": "16.0.0-next.2", + "@dlr-eoc/utils-maps": "16.0.0-next.2", + "@dlr-eoc/services-ogc": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.2", + "@dlr-eoc/map-cesium": "16.0.0-next.2", + "@dlr-eoc/map-maplibre": "16.0.0-next.2" }, "devDependencies": { "zone.js": "~0.15.0", diff --git a/projects/map-cesium/package.json b/projects/map-cesium/package.json index 78c2c5cce..d4e21fdfc 100644 --- a/projects/map-cesium/package.json +++ b/projects/map-cesium/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/map-cesium", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -19,15 +19,15 @@ "rxjs": "~7.8.2" }, "dependencies": { - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.2", "@cesium/engine": "^17.0.0", "@cesium/widgets": "^12.0.0", "tslib": "^2.6.3" }, "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0" + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.2" }, "sideEffects": false } diff --git a/projects/map-maplibre/package.json b/projects/map-maplibre/package.json index dbc816512..3c2275833 100644 --- a/projects/map-maplibre/package.json +++ b/projects/map-maplibre/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/map-maplibre", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -21,13 +21,13 @@ "tslib": "^2.6.3", "maplibre-gl": "^5.5.0", "@mapbox/togeojson": "0.16.2", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/utilities": "16.0.0-next.0" + "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/utilities": "16.0.0-next.2" }, "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0" + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.2" }, "sideEffects": false } diff --git a/projects/map-ol/package.json b/projects/map-ol/package.json index 946b85660..7d086652b 100644 --- a/projects/map-ol/package.json +++ b/projects/map-ol/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/map-ol", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -17,9 +17,9 @@ "rxjs": "~7.8.2" }, "dependencies": { - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/utils-maps": "16.0.0-next.0", + "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/utils-maps": "16.0.0-next.2", "ol": "^v10.5.0", "ol-mapbox-style": "^12.4.0", "proj4": "^2.17.0", @@ -28,7 +28,7 @@ "devDependencies": { "zone.js": "~0.15.0", "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0" + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.2" } } diff --git a/projects/map-three/package.json b/projects/map-three/package.json index 6af2e61aa..4fbba4a3e 100644 --- a/projects/map-three/package.json +++ b/projects/map-three/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/map-three", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -19,10 +19,10 @@ "@angular/core": "^19.2.12" }, "dependencies": { - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/map-ol": "16.0.0-next.0", - "@dlr-eoc/utils-maps": "16.0.0-next.0", + "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/map-ol": "16.0.0-next.2", + "@dlr-eoc/utils-maps": "16.0.0-next.2", "proj4": "^2.17.0", "tslib": "^2.6.3", "three": "^0.176.0" diff --git a/projects/ngx-ukis-ui-clarity/package.json b/projects/ngx-ukis-ui-clarity/package.json index a2a20bf69..d689cc098 100644 --- a/projects/ngx-ukis-ui-clarity/package.json +++ b/projects/ngx-ukis-ui-clarity/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/ngx-ukis-ui-clarity", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "description": "This project includes schematics to add a base UKIS-Layout to an angular application. The Layout is based on Clarity so [add this first](https://clarity.design/get-started/developing/angular)!", "keywords": [ "schematics", @@ -45,10 +45,10 @@ "jsonc-parser": "^3.3.1", "ol": "^v10.5.0", "proj4": "^2.17.0", - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", - "@dlr-eoc/map-ol": "16.0.0-next.0" + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.2", + "@dlr-eoc/map-ol": "16.0.0-next.2" }, "schematics": "./schematics/collection.json", "ng-add": { diff --git a/projects/ngx-ukis-utilities/package.json b/projects/ngx-ukis-utilities/package.json index 80f166694..1b7760532 100644 --- a/projects/ngx-ukis-utilities/package.json +++ b/projects/ngx-ukis-utilities/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/ngx-ukis-utilities", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "description": "Angular utilities for @dlr-eoc ukis frontends", "keywords": [ "angular", diff --git a/projects/services-layers/package.json b/projects/services-layers/package.json index e4d23b7f5..dea836843 100644 --- a/projects/services-layers/package.json +++ b/projects/services-layers/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/services-layers", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -20,8 +20,8 @@ "devDependencies": { "zone.js": "~0.15.0", "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.0", - "@dlr-eoc/shared-assets": "16.0.0-next.0" + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.2" }, "dependencies": { "tslib": "^2.6.3" diff --git a/projects/services-map-state/package.json b/projects/services-map-state/package.json index 5c0882398..38ee668ce 100644 --- a/projects/services-map-state/package.json +++ b/projects/services-map-state/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/services-map-state", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -20,7 +20,7 @@ "rxjs": "~7.8.2" }, "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", + "@dlr-eoc/services-layers": "16.0.0-next.2", "tslib": "^2.6.3" }, "devDependencies": { diff --git a/projects/services-ogc/package.json b/projects/services-ogc/package.json index 8f2179280..92e2f1d65 100644 --- a/projects/services-ogc/package.json +++ b/projects/services-ogc/package.json @@ -1,7 +1,7 @@ { "name": "@dlr-eoc/services-ogc", "main": "src/public-api", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "author": "Team UKIS", "description": "This module bundles our clients for OGC standards. E.g. parse OWS Context JSON, WMS, WMTS or WPS.", @@ -20,11 +20,11 @@ "rxjs": "~7.8.2" }, "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.0", - "@dlr-eoc/services-util-store": "16.0.0-next.0", - "@dlr-eoc/base-layers-raster": "16.0.0-next.0", - "@dlr-eoc/services-map-state": "16.0.0-next.0", - "@dlr-eoc/utils-ogc": "16.0.0-next.0", + "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-util-store": "16.0.0-next.2", + "@dlr-eoc/base-layers-raster": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/utils-ogc": "16.0.0-next.2", "w3c-schemas": "^1.4.0", "ogc-schemas": "^2.6.1", "ol": "^v10.5.0", @@ -36,7 +36,7 @@ "devDependencies": { "zone.js": "~0.15.0", "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/shared-assets": "16.0.0-next.0", + "@dlr-eoc/shared-assets": "16.0.0-next.2", "proj4": "^2.17.0", "terser": "^5.39.2" } diff --git a/projects/services-util-store/package.json b/projects/services-util-store/package.json index 595e2fdab..2422344f3 100644 --- a/projects/services-util-store/package.json +++ b/projects/services-util-store/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/services-util-store", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", diff --git a/projects/shared-assets/package.json b/projects/shared-assets/package.json index a6844cf3b..dacdbdbb2 100644 --- a/projects/shared-assets/package.json +++ b/projects/shared-assets/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/shared-assets", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "main": "index", "license": "Apache-2.0", "author": "Team UKIS", diff --git a/projects/utilities/package.json b/projects/utilities/package.json index 334dbb1b6..b83adb900 100644 --- a/projects/utilities/package.json +++ b/projects/utilities/package.json @@ -1,7 +1,7 @@ { "name": "@dlr-eoc/utilities", "main": "src/public-api", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "author": "Team UKIS", "description": "This library contains a collection of utilities.", diff --git a/projects/utils-browser/package.json b/projects/utils-browser/package.json index 6e4d78d11..91b4bc64b 100644 --- a/projects/utils-browser/package.json +++ b/projects/utils-browser/package.json @@ -1,7 +1,7 @@ { "name": "@dlr-eoc/utils-browser", "main": "src/public-api", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "author": "Team UKIS", "description": "This library contains a collection of utilities like download data as blob and Paper layout.", diff --git a/projects/utils-maps/package.json b/projects/utils-maps/package.json index 6ca880f18..658d7bc05 100644 --- a/projects/utils-maps/package.json +++ b/projects/utils-maps/package.json @@ -1,7 +1,7 @@ { "name": "@dlr-eoc/utils-maps", "main": "src/public-api", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "author": "Team UKIS", "description": "This library contains a collection of utilities for OpenLayers and WebGL.", diff --git a/projects/utils-ogc/package.json b/projects/utils-ogc/package.json index fc361d47d..ad1d07982 100644 --- a/projects/utils-ogc/package.json +++ b/projects/utils-ogc/package.json @@ -1,7 +1,7 @@ { "name": "@dlr-eoc/utils-ogc", "main": "src/public-api", - "version": "16.0.0-next.0", + "version": "16.0.0-next.2", "license": "Apache-2.0", "author": "Team UKIS", "description": "This library bundles our clients for OGC standards. The long-term-strategy is to make all services in `@dlr-eoc/services-ogc` independent of angular and move them here.", From 7867071051741cf414ec94c828e19ea709055287 Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 9 Sep 2025 11:43:31 +0200 Subject: [PATCH 29/30] docs: adjust create prerelease --- DEVELOPMENT.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index cabce1ab8..92b63087b 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -173,8 +173,9 @@ You can check this with `[semver](https://github.com/npm/node-semver#readme) 7.2 Whereby after semantic versioning the following order exists: 7.2.0 < 7.3.0-alpha.0 < 7.3.0-beta.0 < 7.3.0-next.0 To create a new prerelease, you only have to create a new version from your current branch -- `npm version prerelease --preid=next -m "prerelease message" --workspace=projects --include-workspace-root` (premajor | preminor | prepatch). Append `--no-git-tag-version` to `npm version ...` if you want to skip creating a tag. -- run `node scripts/library/index.js --set-source` to sync all versions and run `npm i --workspaces --include-workspace-root` to regenerate `package-lock.json` (If something failed during the npm version, remove the local tag and create a new one. `git tag -d && git tag -a <(v)version> -m "`). +- `npm version prerelease --preid=next -m "prerelease message" --workspace=projects --include-workspace-root=true --workspaces-update=false --no-git-tag-version` (premajor | preminor | prepatch). +- run `node scripts/library/index.js --set-source` to sync all versions and run `npm i --workspaces --include-workspace-root` to regenerate `package-lock.json`. +Add the Changes `git add . && git commit -m "build: set ukis version"` and create a new tag. `git tag -a <(v)version> -m "`). And then `git push origin --tags` which will trigger the [Pre Release](.github/workflows/pre-release-package.yml) workflow. **Before doing this you should [locally test and build](#further-you-can-test-and-build-locally)!!!** to prevent failed workflows but created tags. From 592d74a199e38b3a3e4cfd32c2e4336ce1d23a6f Mon Sep 17 00:00:00 2001 From: Mathias Boeck Date: Tue, 9 Sep 2025 11:43:56 +0200 Subject: [PATCH 30/30] build: set ukis version --- package-lock.json | 134 +++++++++++----------- package.json | 2 +- projects/base-layers-raster/package.json | 4 +- projects/cookie-alert/package.json | 4 +- projects/demo-auth/package.json | 10 +- projects/demo-maps/package.json | 20 ++-- projects/map-cesium/package.json | 10 +- projects/map-maplibre/package.json | 12 +- projects/map-ol/package.json | 12 +- projects/map-three/package.json | 10 +- projects/ngx-ukis-ui-clarity/package.json | 10 +- projects/ngx-ukis-utilities/package.json | 2 +- projects/services-layers/package.json | 6 +- projects/services-map-state/package.json | 4 +- projects/services-ogc/package.json | 14 +-- projects/services-util-store/package.json | 2 +- projects/shared-assets/package.json | 2 +- projects/utilities/package.json | 2 +- projects/utils-browser/package.json | 2 +- projects/utils-maps/package.json | 2 +- projects/utils-ogc/package.json | 2 +- 21 files changed, 133 insertions(+), 133 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3a9eab876..e57321e8c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ukis-frontend-libraries", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ukis-frontend-libraries", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "hasInstallScript": true, "license": "Apache-2.0", "workspaces": [ @@ -23471,10 +23471,10 @@ }, "projects/base-layers-raster": { "name": "@dlr-eoc/base-layers-raster", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.3", "tslib": "^2.6.3" }, "devDependencies": { @@ -23485,10 +23485,10 @@ }, "projects/cookie-alert": { "name": "@dlr-eoc/cookie-alert", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-util-store": "16.0.0-next.2", + "@dlr-eoc/services-util-store": "16.0.0-next.3", "tslib": "^2.6.3" }, "devDependencies": { @@ -23501,13 +23501,13 @@ } }, "projects/demo-auth": { - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/cookie-alert": "16.0.0-next.2", - "@dlr-eoc/map-ol": "16.0.0-next.2", - "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.2" + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/cookie-alert": "16.0.0-next.3", + "@dlr-eoc/map-ol": "16.0.0-next.3", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.3" }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", @@ -23524,18 +23524,18 @@ } }, "projects/demo-maps": { - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/map-cesium": "16.0.0-next.2", - "@dlr-eoc/map-maplibre": "16.0.0-next.2", - "@dlr-eoc/map-ol": "16.0.0-next.2", - "@dlr-eoc/map-three": "16.0.0-next.2", - "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.2", - "@dlr-eoc/services-ogc": "16.0.0-next.2", - "@dlr-eoc/shared-assets": "16.0.0-next.2", - "@dlr-eoc/utils-maps": "16.0.0-next.2" + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/map-cesium": "16.0.0-next.3", + "@dlr-eoc/map-maplibre": "16.0.0-next.3", + "@dlr-eoc/map-ol": "16.0.0-next.3", + "@dlr-eoc/map-three": "16.0.0-next.3", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.3", + "@dlr-eoc/services-ogc": "16.0.0-next.3", + "@dlr-eoc/shared-assets": "16.0.0-next.3", + "@dlr-eoc/utils-maps": "16.0.0-next.3" }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", @@ -23555,18 +23555,18 @@ }, "projects/map-cesium": { "name": "@dlr-eoc/map-cesium", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { "@cesium/engine": "^17.0.0", "@cesium/widgets": "^12.0.0", - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/services-map-state": "16.0.0-next.3", "tslib": "^2.6.3" }, "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/shared-assets": "16.0.0-next.2" + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/shared-assets": "16.0.0-next.3" }, "peerDependencies": { "@angular/common": "^19.2.12", @@ -23576,19 +23576,19 @@ }, "projects/map-maplibre": { "name": "@dlr-eoc/map-maplibre", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/services-map-state": "16.0.0-next.2", - "@dlr-eoc/utilities": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/services-map-state": "16.0.0-next.3", + "@dlr-eoc/utilities": "16.0.0-next.3", "@mapbox/togeojson": "0.16.2", "maplibre-gl": "^5.5.0", "tslib": "^2.6.3" }, "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/shared-assets": "16.0.0-next.2" + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/shared-assets": "16.0.0-next.3" }, "peerDependencies": { "@angular/common": "^19.2.12", @@ -23598,12 +23598,12 @@ }, "projects/map-ol": { "name": "@dlr-eoc/map-ol", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/services-map-state": "16.0.0-next.2", - "@dlr-eoc/utils-maps": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/services-map-state": "16.0.0-next.3", + "@dlr-eoc/utils-maps": "16.0.0-next.3", "ol": "^v10.5.0", "ol-mapbox-style": "^12.4.0", "proj4": "^2.17.0", @@ -23611,8 +23611,8 @@ }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/shared-assets": "16.0.0-next.2", + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/shared-assets": "16.0.0-next.3", "zone.js": "~0.15.0" }, "peerDependencies": { @@ -23623,13 +23623,13 @@ }, "projects/map-three": { "name": "@dlr-eoc/map-three", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/map-ol": "16.0.0-next.2", - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/services-map-state": "16.0.0-next.2", - "@dlr-eoc/utils-maps": "16.0.0-next.2", + "@dlr-eoc/map-ol": "16.0.0-next.3", + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/services-map-state": "16.0.0-next.3", + "@dlr-eoc/utils-maps": "16.0.0-next.3", "proj4": "^2.17.0", "three": "^0.176.0", "tslib": "^2.6.3" @@ -23645,7 +23645,7 @@ }, "projects/ngx-ukis-ui-clarity": { "name": "@dlr-eoc/ngx-ukis-ui-clarity", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { "@angular-devkit/core": "^19.2.13", @@ -23670,10 +23670,10 @@ "@cds/core": "^6.15.1", "@clr/angular": "^17.10.0", "@clr/ui": "^17.10.0", - "@dlr-eoc/map-ol": "16.0.0-next.2", - "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.2", - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/services-map-state": "16.0.0-next.2", + "@dlr-eoc/map-ol": "16.0.0-next.3", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.3", + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/services-map-state": "16.0.0-next.3", "jsonc-parser": "^3.3.1", "ol": "^v10.5.0", "proj4": "^2.17.0", @@ -23708,7 +23708,7 @@ }, "projects/ngx-ukis-utilities": { "name": "@dlr-eoc/ngx-ukis-utilities", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.3" @@ -23722,15 +23722,15 @@ }, "projects/services-layers": { "name": "@dlr-eoc/services-layers", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.3" }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.2", - "@dlr-eoc/shared-assets": "16.0.0-next.2", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.3", + "@dlr-eoc/shared-assets": "16.0.0-next.3", "zone.js": "~0.15.0" }, "peerDependencies": { @@ -23741,10 +23741,10 @@ }, "projects/services-map-state": { "name": "@dlr-eoc/services-map-state", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.3", "tslib": "^2.6.3" }, "devDependencies": { @@ -23759,14 +23759,14 @@ }, "projects/services-ogc": { "name": "@dlr-eoc/services-ogc", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/services-map-state": "16.0.0-next.2", - "@dlr-eoc/services-util-store": "16.0.0-next.2", - "@dlr-eoc/utils-ogc": "16.0.0-next.2", + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/services-map-state": "16.0.0-next.3", + "@dlr-eoc/services-util-store": "16.0.0-next.3", + "@dlr-eoc/utils-ogc": "16.0.0-next.3", "jsonix": "^3.0.0", "luxon": "^3.6.1", "ogc-schemas": "^2.6.1", @@ -23777,7 +23777,7 @@ }, "devDependencies": { "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/shared-assets": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.3", "proj4": "^2.17.0", "terser": "^5.39.2", "zone.js": "~0.15.0" @@ -23816,7 +23816,7 @@ }, "projects/services-util-store": { "name": "@dlr-eoc/services-util-store", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { "md5": "^2.3.0", @@ -23833,13 +23833,13 @@ }, "projects/shared-assets": { "name": "@dlr-eoc/shared-assets", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "devDependencies": {} }, "projects/utilities": { "name": "@dlr-eoc/utilities", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.3" @@ -23851,7 +23851,7 @@ }, "projects/utils-browser": { "name": "@dlr-eoc/utils-browser", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "devDependencies": { "@angular/core": "^19.2.12", @@ -23861,7 +23861,7 @@ }, "projects/utils-maps": { "name": "@dlr-eoc/utils-maps", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { "delaunator": "^5.0.1", @@ -23876,7 +23876,7 @@ }, "projects/utils-ogc": { "name": "@dlr-eoc/utils-ogc", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "dependencies": { "jsonix": "^3.0.0", diff --git a/package.json b/package.json index 88fffe51f..e037ec0ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ukis-frontend-libraries", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "author": "Team UKIS", "projectsScope": "@dlr-eoc/", diff --git a/projects/base-layers-raster/package.json b/projects/base-layers-raster/package.json index 61da0036e..ba691ef69 100644 --- a/projects/base-layers-raster/package.json +++ b/projects/base-layers-raster/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/base-layers-raster", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -13,7 +13,7 @@ "OSM" ], "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.3", "tslib": "^2.6.3" }, "devDependencies": { diff --git a/projects/cookie-alert/package.json b/projects/cookie-alert/package.json index c080c57d7..dbf503e34 100644 --- a/projects/cookie-alert/package.json +++ b/projects/cookie-alert/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/cookie-alert", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -16,7 +16,7 @@ "@angular/core": "^19.2.12" }, "dependencies": { - "@dlr-eoc/services-util-store": "16.0.0-next.2", + "@dlr-eoc/services-util-store": "16.0.0-next.3", "tslib": "^2.6.3" }, "devDependencies": { diff --git a/projects/demo-auth/package.json b/projects/demo-auth/package.json index d7dd47032..b0fdd0a33 100644 --- a/projects/demo-auth/package.json +++ b/projects/demo-auth/package.json @@ -1,6 +1,6 @@ { "name": "demo-auth", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -21,10 +21,10 @@ "rxjs": "~7.8.2" }, "dependencies": { - "@dlr-eoc/map-ol": "16.0.0-next.2", - "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.2", - "@dlr-eoc/cookie-alert": "16.0.0-next.2", - "@dlr-eoc/base-layers-raster": "16.0.0-next.2" + "@dlr-eoc/map-ol": "16.0.0-next.3", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.3", + "@dlr-eoc/cookie-alert": "16.0.0-next.3", + "@dlr-eoc/base-layers-raster": "16.0.0-next.3" }, "devDependencies": { "zone.js": "~0.15.0", diff --git a/projects/demo-maps/package.json b/projects/demo-maps/package.json index a14d9112d..d592fc7a5 100644 --- a/projects/demo-maps/package.json +++ b/projects/demo-maps/package.json @@ -1,6 +1,6 @@ { "name": "demo-maps", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -22,15 +22,15 @@ "proj4": "^2.17.0" }, "dependencies": { - "@dlr-eoc/map-ol": "16.0.0-next.2", - "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.2", - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/map-three": "16.0.0-next.2", - "@dlr-eoc/utils-maps": "16.0.0-next.2", - "@dlr-eoc/services-ogc": "16.0.0-next.2", - "@dlr-eoc/shared-assets": "16.0.0-next.2", - "@dlr-eoc/map-cesium": "16.0.0-next.2", - "@dlr-eoc/map-maplibre": "16.0.0-next.2" + "@dlr-eoc/map-ol": "16.0.0-next.3", + "@dlr-eoc/ngx-ukis-ui-clarity": "16.0.0-next.3", + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/map-three": "16.0.0-next.3", + "@dlr-eoc/utils-maps": "16.0.0-next.3", + "@dlr-eoc/services-ogc": "16.0.0-next.3", + "@dlr-eoc/shared-assets": "16.0.0-next.3", + "@dlr-eoc/map-cesium": "16.0.0-next.3", + "@dlr-eoc/map-maplibre": "16.0.0-next.3" }, "devDependencies": { "zone.js": "~0.15.0", diff --git a/projects/map-cesium/package.json b/projects/map-cesium/package.json index d4e21fdfc..d5cbe47e3 100644 --- a/projects/map-cesium/package.json +++ b/projects/map-cesium/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/map-cesium", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -19,15 +19,15 @@ "rxjs": "~7.8.2" }, "dependencies": { - "@dlr-eoc/services-map-state": "16.0.0-next.2", - "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.3", + "@dlr-eoc/services-layers": "16.0.0-next.3", "@cesium/engine": "^17.0.0", "@cesium/widgets": "^12.0.0", "tslib": "^2.6.3" }, "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/shared-assets": "16.0.0-next.2" + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/shared-assets": "16.0.0-next.3" }, "sideEffects": false } diff --git a/projects/map-maplibre/package.json b/projects/map-maplibre/package.json index 3c2275833..02925239b 100644 --- a/projects/map-maplibre/package.json +++ b/projects/map-maplibre/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/map-maplibre", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -21,13 +21,13 @@ "tslib": "^2.6.3", "maplibre-gl": "^5.5.0", "@mapbox/togeojson": "0.16.2", - "@dlr-eoc/services-map-state": "16.0.0-next.2", - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/utilities": "16.0.0-next.2" + "@dlr-eoc/services-map-state": "16.0.0-next.3", + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/utilities": "16.0.0-next.3" }, "devDependencies": { - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/shared-assets": "16.0.0-next.2" + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/shared-assets": "16.0.0-next.3" }, "sideEffects": false } diff --git a/projects/map-ol/package.json b/projects/map-ol/package.json index 7d086652b..8c9ebd4bb 100644 --- a/projects/map-ol/package.json +++ b/projects/map-ol/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/map-ol", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -17,9 +17,9 @@ "rxjs": "~7.8.2" }, "dependencies": { - "@dlr-eoc/services-map-state": "16.0.0-next.2", - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/utils-maps": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.3", + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/utils-maps": "16.0.0-next.3", "ol": "^v10.5.0", "ol-mapbox-style": "^12.4.0", "proj4": "^2.17.0", @@ -28,7 +28,7 @@ "devDependencies": { "zone.js": "~0.15.0", "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/shared-assets": "16.0.0-next.2" + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/shared-assets": "16.0.0-next.3" } } diff --git a/projects/map-three/package.json b/projects/map-three/package.json index 4fbba4a3e..d9a581746 100644 --- a/projects/map-three/package.json +++ b/projects/map-three/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/map-three", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -19,10 +19,10 @@ "@angular/core": "^19.2.12" }, "dependencies": { - "@dlr-eoc/services-map-state": "16.0.0-next.2", - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/map-ol": "16.0.0-next.2", - "@dlr-eoc/utils-maps": "16.0.0-next.2", + "@dlr-eoc/services-map-state": "16.0.0-next.3", + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/map-ol": "16.0.0-next.3", + "@dlr-eoc/utils-maps": "16.0.0-next.3", "proj4": "^2.17.0", "tslib": "^2.6.3", "three": "^0.176.0" diff --git a/projects/ngx-ukis-ui-clarity/package.json b/projects/ngx-ukis-ui-clarity/package.json index d689cc098..105b74427 100644 --- a/projects/ngx-ukis-ui-clarity/package.json +++ b/projects/ngx-ukis-ui-clarity/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/ngx-ukis-ui-clarity", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "description": "This project includes schematics to add a base UKIS-Layout to an angular application. The Layout is based on Clarity so [add this first](https://clarity.design/get-started/developing/angular)!", "keywords": [ "schematics", @@ -45,10 +45,10 @@ "jsonc-parser": "^3.3.1", "ol": "^v10.5.0", "proj4": "^2.17.0", - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/services-map-state": "16.0.0-next.2", - "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.2", - "@dlr-eoc/map-ol": "16.0.0-next.2" + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/services-map-state": "16.0.0-next.3", + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.3", + "@dlr-eoc/map-ol": "16.0.0-next.3" }, "schematics": "./schematics/collection.json", "ng-add": { diff --git a/projects/ngx-ukis-utilities/package.json b/projects/ngx-ukis-utilities/package.json index 1b7760532..0fde84923 100644 --- a/projects/ngx-ukis-utilities/package.json +++ b/projects/ngx-ukis-utilities/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/ngx-ukis-utilities", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "description": "Angular utilities for @dlr-eoc ukis frontends", "keywords": [ "angular", diff --git a/projects/services-layers/package.json b/projects/services-layers/package.json index dea836843..19854a06a 100644 --- a/projects/services-layers/package.json +++ b/projects/services-layers/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/services-layers", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -20,8 +20,8 @@ "devDependencies": { "zone.js": "~0.15.0", "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.2", - "@dlr-eoc/shared-assets": "16.0.0-next.2" + "@dlr-eoc/ngx-ukis-utilities": "16.0.0-next.3", + "@dlr-eoc/shared-assets": "16.0.0-next.3" }, "dependencies": { "tslib": "^2.6.3" diff --git a/projects/services-map-state/package.json b/projects/services-map-state/package.json index 38ee668ce..6e4c04ab1 100644 --- a/projects/services-map-state/package.json +++ b/projects/services-map-state/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/services-map-state", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", @@ -20,7 +20,7 @@ "rxjs": "~7.8.2" }, "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.3", "tslib": "^2.6.3" }, "devDependencies": { diff --git a/projects/services-ogc/package.json b/projects/services-ogc/package.json index 92e2f1d65..fdc8e5064 100644 --- a/projects/services-ogc/package.json +++ b/projects/services-ogc/package.json @@ -1,7 +1,7 @@ { "name": "@dlr-eoc/services-ogc", "main": "src/public-api", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "author": "Team UKIS", "description": "This module bundles our clients for OGC standards. E.g. parse OWS Context JSON, WMS, WMTS or WPS.", @@ -20,11 +20,11 @@ "rxjs": "~7.8.2" }, "dependencies": { - "@dlr-eoc/services-layers": "16.0.0-next.2", - "@dlr-eoc/services-util-store": "16.0.0-next.2", - "@dlr-eoc/base-layers-raster": "16.0.0-next.2", - "@dlr-eoc/services-map-state": "16.0.0-next.2", - "@dlr-eoc/utils-ogc": "16.0.0-next.2", + "@dlr-eoc/services-layers": "16.0.0-next.3", + "@dlr-eoc/services-util-store": "16.0.0-next.3", + "@dlr-eoc/base-layers-raster": "16.0.0-next.3", + "@dlr-eoc/services-map-state": "16.0.0-next.3", + "@dlr-eoc/utils-ogc": "16.0.0-next.3", "w3c-schemas": "^1.4.0", "ogc-schemas": "^2.6.1", "ol": "^v10.5.0", @@ -36,7 +36,7 @@ "devDependencies": { "zone.js": "~0.15.0", "@angular/platform-browser-dynamic": "^19.2.12", - "@dlr-eoc/shared-assets": "16.0.0-next.2", + "@dlr-eoc/shared-assets": "16.0.0-next.3", "proj4": "^2.17.0", "terser": "^5.39.2" } diff --git a/projects/services-util-store/package.json b/projects/services-util-store/package.json index 2422344f3..0b6122de2 100644 --- a/projects/services-util-store/package.json +++ b/projects/services-util-store/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/services-util-store", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "src/public-api", "license": "Apache-2.0", "author": "Team UKIS", diff --git a/projects/shared-assets/package.json b/projects/shared-assets/package.json index dacdbdbb2..4af16a674 100644 --- a/projects/shared-assets/package.json +++ b/projects/shared-assets/package.json @@ -1,6 +1,6 @@ { "name": "@dlr-eoc/shared-assets", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "main": "index", "license": "Apache-2.0", "author": "Team UKIS", diff --git a/projects/utilities/package.json b/projects/utilities/package.json index b83adb900..46b47a401 100644 --- a/projects/utilities/package.json +++ b/projects/utilities/package.json @@ -1,7 +1,7 @@ { "name": "@dlr-eoc/utilities", "main": "src/public-api", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "author": "Team UKIS", "description": "This library contains a collection of utilities.", diff --git a/projects/utils-browser/package.json b/projects/utils-browser/package.json index 91b4bc64b..509eb271a 100644 --- a/projects/utils-browser/package.json +++ b/projects/utils-browser/package.json @@ -1,7 +1,7 @@ { "name": "@dlr-eoc/utils-browser", "main": "src/public-api", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "author": "Team UKIS", "description": "This library contains a collection of utilities like download data as blob and Paper layout.", diff --git a/projects/utils-maps/package.json b/projects/utils-maps/package.json index 658d7bc05..423fa792d 100644 --- a/projects/utils-maps/package.json +++ b/projects/utils-maps/package.json @@ -1,7 +1,7 @@ { "name": "@dlr-eoc/utils-maps", "main": "src/public-api", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "author": "Team UKIS", "description": "This library contains a collection of utilities for OpenLayers and WebGL.", diff --git a/projects/utils-ogc/package.json b/projects/utils-ogc/package.json index ad1d07982..78e3934ee 100644 --- a/projects/utils-ogc/package.json +++ b/projects/utils-ogc/package.json @@ -1,7 +1,7 @@ { "name": "@dlr-eoc/utils-ogc", "main": "src/public-api", - "version": "16.0.0-next.2", + "version": "16.0.0-next.3", "license": "Apache-2.0", "author": "Team UKIS", "description": "This library bundles our clients for OGC standards. The long-term-strategy is to make all services in `@dlr-eoc/services-ogc` independent of angular and move them here.",