diff --git a/docs/config.json b/docs/config.json index 56e305bd7b..d050a0a967 100644 --- a/docs/config.json +++ b/docs/config.json @@ -435,9 +435,29 @@ "to": "framework/angular/examples/row-selection", "label": "Row Selection" }, + { + "to": "framework/angular/examples/expanding", + "label": "Expanding" + }, + { + "to": "framework/angular/examples/sub-components", + "label": "Sub Components" + }, { "to": "framework/angular/examples/signal-input", "label": "Signal Input" + }, + { + "to": "framework/angular/examples/editable", + "label": "Editable data" + }, + { + "to": "framework/angular/examples/row-dnd", + "label": "Row DnD" + }, + { + "to": "framework/angular/examples/column-resizing-performant", + "label": "Performant Column Resizing" } ] }, @@ -594,10 +614,18 @@ "to": "framework/react/examples/virtualized-columns", "label": "Virtualized Columns" }, + { + "to": "framework/react/examples/virtualized-columns-experimental", + "label": "Virtualized Columns (Experimental)" + }, { "to": "framework/react/examples/virtualized-rows", "label": "Virtualized Rows" }, + { + "to": "framework/react/examples/virtualized-rows-experimental", + "label": "Virtualized Rows (Experimental)" + }, { "to": "framework/react/examples/virtualized-infinite-scrolling", "label": "Virtualized Infinite Scrolling" diff --git a/docs/framework/angular/angular-table.md b/docs/framework/angular/angular-table.md index 5a82ed5c33..27a5877f75 100644 --- a/docs/framework/angular/angular-table.md +++ b/docs/framework/angular/angular-table.md @@ -40,41 +40,181 @@ FlexRender supports any type of content supported by Angular: - A [TemplateRef](https://angular.dev/api/core/TemplateRef) - A [Component](https://angular.dev/api/core/Component) wrapped into `FlexRenderComponent` -Example: +You can just use the `cell.renderValue` or `cell.getValue` APIs to render the cells of your table. However, +these APIs will only spit out the raw cell values (from accessor functions). +If you are using the `cell: () => any` column definition options, you will want to use the `FlexRenderDirective` from the adapter. + +Cell column definition is **reactive** and runs into an **injection context**, then you can inject services or make use of signals to automatically modify the rendered content. + +#### Example ```ts @Component({ imports: [FlexRenderDirective], //... }) +class YourComponent {} ``` ```angular-html @for (row of table.getRowModel().rows; track row.id) { - - @for (cell of row.getVisibleCells(); track cell.id) { - - - - {{ cell }} - -
-
- -} - + > + + {{ cell }} + +
+ + + } + } ``` +#### Rendering a Component + +To render a Component into a specific column header/cell/footer, you can pass a `FlexRenderComponent` instantiated with +your `ComponentType, with the ability to include parameters such as inputs, outputs and a custom injector. + +```ts +import {flexRenderComponent} from "./flex-render-component"; +import {ChangeDetectionStrategy, input, output} from "@angular/core"; + +@Component({ + template: ` + ... + `, + standalone: true, + changeDetectionStrategy: ChangeDetectionStrategy.OnPush, + host: { + '(click)': 'clickEvent.emit($event)' + } +}) +class CustomCell { + readonly content = input.required(); + readonly cellType = input(); + + // An output that will emit for every cell click + readonly clickEvent = output(); +} + +class AppComponent { + columns: ColumnDef[] = [ + { + id: 'custom-cell', + header: () => { + const translateService = inject(TranslateService); + return translateService.translate('...'); + }, + cell: (context) => { + return flexRenderComponent( + MyCustomComponent, + { + injector, // Optional injector + inputs: { + // Mandatory input since we are using `input.required() + content: context.row.original.rowProperty, + // cellType? - Optional input + }, + outputs: { + clickEvent: () => { + // Do something + } + } + } + ) + }, + }, + ] +} +``` + +Underneath, this utilizes +the [ViewContainerRef#createComponent](https://angular.dev/api/core/ViewContainerRef#createComponent) api. +Therefore, you should declare your custom inputs using the @Input decorator or input/model signals. + +You can still access the table cell context through the `injectFlexRenderContext` function, which returns the context +value based on the props you pass to the `FlexRenderDirective`. + +```ts + +@Component({ + // ... +}) +class CustomCellComponent { + // context of a cell component + readonly context = injectFlexRenderContext>(); + // context of a header/footer component + readonly context = injectFlexRenderContext>(); +} +``` + +Alternatively, you can render a component into a specific column header, cell, or footer by passing the component type +to the corresponding column definitions. These column definitions will be provided to the `flexRender` directive along +with the `context`. + +```ts +class AppComponent { + columns: ColumnDef[] = [ + { + id: 'select', + header: () => TableHeadSelectionComponent, + cell: () => TableRowSelectionComponent, + }, + ] +} +``` + +```angular-html + + {{ headerCell }} + +``` + +Properties of `context` provided in the `flexRender` directive will be accessible to your component. +You can explicitly define the context properties required by your component. +In this example, the context provided to flexRender is of type HeaderContext. +Input signal `table`, which is a property of HeaderContext together with `column` and `header` properties, +is then defined to be used in the component. If any of the context properties are +needed in your component, feel free to use them. Please take note that only input signal is supported, +when defining access to context properties, using this approach. + +```angular-ts +@Component({ + template: ` + + `, + // ... +}) +export class TableHeadSelectionComponent { + //column = input.required>() + //header = input.required>() + table = input.required>() +} +``` + #### Rendering a TemplateRef In order to render a TemplateRef into a specific column header/cell/footer, you can pass the TemplateRef into the column @@ -214,7 +354,7 @@ class CustomCellComponent { } ``` -Alternatively, you can render a component into a specific column header, cell, or footer by passing the component type +Alternatively, you can render a component into a specific column header, cell, or footer by passing the component type to the corresponding column definitions. These column definitions will be provided to the `flexRender` directive along with the `context`. ```ts @@ -243,12 +383,12 @@ class AppComponent { ``` -Properties of `context` provided in the `flexRender` directive will be accessible to your component. -You can explicitly define the context properties required by your component. -In this example, the context provided to flexRender is of type HeaderContext. +Properties of `context` provided in the `flexRender` directive will be accessible to your component. +You can explicitly define the context properties required by your component. +In this example, the context provided to flexRender is of type HeaderContext. Input signal `table`, which is a property of HeaderContext together with `column` and `header` properties, -is then defined to be used in the component. If any of the context properties are -needed in your component, feel free to use them. Please take note that only input signal is supported, +is then defined to be used in the component. If any of the context properties are +needed in your component, feel free to use them. Please take note that only input signal is supported, when defining access to context properties, using this approach. ```angular-ts @@ -268,4 +408,4 @@ export class TableHeadSelectionComponent { //header = input.required>() table = input.required>() } -``` \ No newline at end of file +``` diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index a5c6b37c13..c4f14e4dd9 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -11,21 +11,21 @@ }, "private": true, "dependencies": { - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", - "@angular/router": "^19.0.5", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", + "@angular/router": "^19.1.4", "@tanstack/angular-table": "^9.0.0-alpha.10", "rxjs": "~7.8.1", "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular/build": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", "@types/jasmine": "~5.1.5", "jasmine-core": "~5.5.0", "tslib": "^2.8.1", diff --git a/examples/angular/column-ordering/package.json b/examples/angular/column-ordering/package.json index cbcb6ca171..2d8e343b4d 100644 --- a/examples/angular/column-ordering/package.json +++ b/examples/angular/column-ordering/package.json @@ -11,20 +11,20 @@ }, "private": true, "dependencies": { - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", "@tanstack/angular-table": "^9.0.0-alpha.10", "rxjs": "~7.8.1", "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular/build": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", "tslib": "^2.8.1", "typescript": "5.6.3" } diff --git a/examples/angular/column-pinning-sticky/package.json b/examples/angular/column-pinning-sticky/package.json index 9107f12202..a612ddcfc1 100644 --- a/examples/angular/column-pinning-sticky/package.json +++ b/examples/angular/column-pinning-sticky/package.json @@ -11,21 +11,21 @@ }, "private": true, "dependencies": { - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", "@faker-js/faker": "^9.3.0", "@tanstack/angular-table": "^9.0.0-alpha.10", "rxjs": "~7.8.1", "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular/build": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", "tslib": "^2.8.1", "typescript": "5.6.3" } diff --git a/examples/angular/column-pinning/package.json b/examples/angular/column-pinning/package.json index e7f6795256..8daa808b13 100644 --- a/examples/angular/column-pinning/package.json +++ b/examples/angular/column-pinning/package.json @@ -11,22 +11,22 @@ }, "private": true, "dependencies": { - "@angular/animations": "^19.0.5", - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", + "@angular/animations": "^19.1.4", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", "@faker-js/faker": "^9.3.0", "@tanstack/angular-table": "^9.0.0-alpha.10", "rxjs": "~7.8.1", "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular/build": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", "tslib": "^2.8.1", "typescript": "5.6.3" } diff --git a/examples/angular/column-resizing-performant/.devcontainer/devcontainer.json b/examples/angular/column-resizing-performant/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..36f47d8762 --- /dev/null +++ b/examples/angular/column-resizing-performant/.devcontainer/devcontainer.json @@ -0,0 +1,4 @@ +{ + "name": "Node.js", + "image": "mcr.microsoft.com/devcontainers/javascript-node:18" +} diff --git a/examples/angular/column-resizing-performant/.editorconfig b/examples/angular/column-resizing-performant/.editorconfig new file mode 100644 index 0000000000..59d9a3a3e7 --- /dev/null +++ b/examples/angular/column-resizing-performant/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/examples/angular/column-resizing-performant/.gitignore b/examples/angular/column-resizing-performant/.gitignore new file mode 100644 index 0000000000..0711527ef9 --- /dev/null +++ b/examples/angular/column-resizing-performant/.gitignore @@ -0,0 +1,42 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/examples/angular/column-resizing-performant/README.md b/examples/angular/column-resizing-performant/README.md new file mode 100644 index 0000000000..5da97a87d1 --- /dev/null +++ b/examples/angular/column-resizing-performant/README.md @@ -0,0 +1,27 @@ +# Basic + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.1.2. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/examples/angular/column-resizing-performant/angular.json b/examples/angular/column-resizing-performant/angular.json new file mode 100644 index 0000000000..f74e8d69b9 --- /dev/null +++ b/examples/angular/column-resizing-performant/angular.json @@ -0,0 +1,83 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "column-resizing-performant": { + "cli": { + "cache": { + "enabled": false + } + }, + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/column-resizing-performant", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "column-resizing-performant:build:production" + }, + "development": { + "buildTarget": "column-resizing-performant:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "column-resizing-performant:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": ["zone.js", "zone.js/testing"], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": false + } +} diff --git a/examples/angular/column-resizing-performant/package.json b/examples/angular/column-resizing-performant/package.json new file mode 100644 index 0000000000..d648ab286b --- /dev/null +++ b/examples/angular/column-resizing-performant/package.json @@ -0,0 +1,40 @@ +{ + "name": "tanstack-table-example-angular-column-resizing-performant", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^19.1.4", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", + "@angular/router": "^19.1.4", + "@faker-js/faker": "^8.4.1", + "@tanstack/angular-table": "^9.0.0-alpha.10", + "rxjs": "~7.8.1", + "zone.js": "~0.15.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", + "@types/jasmine": "~5.1.4", + "jasmine-core": "~5.1.2", + "karma": "~6.4.3", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.1", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "tslib": "^2.6.2", + "typescript": "5.7.3" + } +} diff --git a/examples/angular/column-resizing-performant/src/app/app.component.html b/examples/angular/column-resizing-performant/src/app/app.component.html new file mode 100644 index 0000000000..553fd7b246 --- /dev/null +++ b/examples/angular/column-resizing-performant/src/app/app.component.html @@ -0,0 +1,66 @@ +
+
+
+    {{ columnSizingDebugInfo() }}
+  
+
+ + ({{ data().length }} rows) + +
+
+
+ @for (headerGroup of table.getHeaderGroups(); track headerGroup.id) { +
+ @for (header of headerGroup.headers; track header.id) { +
+ @if (!header.isPlaceholder) { + +
+
+ } + +
+
+ } +
+ } +
+
+ @for (row of table.getRowModel().rows; track row.id) { + + @for (cell of row.getAllCells(); track cell.id) { + + +
+
+ + } + + } +
+
+
+
diff --git a/examples/angular/column-resizing-performant/src/app/app.component.ts b/examples/angular/column-resizing-performant/src/app/app.component.ts new file mode 100644 index 0000000000..93be923e40 --- /dev/null +++ b/examples/angular/column-resizing-performant/src/app/app.component.ts @@ -0,0 +1,125 @@ +import { + ChangeDetectionStrategy, + Component, + computed, + signal, + untracked, +} from '@angular/core' +import { + FlexRenderDirective, + columnResizingFeature, + columnSizingFeature, + injectTable, + tableFeatures, +} from '@tanstack/angular-table' +import { makeData } from './makeData' +import { TableResizableCell, TableResizableHeader } from './resizable-cell' +import type { Person } from './makeData' +import type { ColumnDef, ColumnResizeMode } from '@tanstack/angular-table' + +const _features = tableFeatures({ + columnSizingFeature, + columnResizingFeature, +}) + +const defaultColumns: Array> = [ + { + header: 'Name', + footer: (props) => props.column.id, + columns: [ + { + accessorKey: 'firstName', + cell: (info) => info.getValue(), + footer: (props) => props.column.id, + }, + { + accessorFn: (row) => row.lastName, + id: 'lastName', + cell: (info) => info.getValue(), + header: () => 'Last Name', + footer: (props) => props.column.id, + }, + ], + }, + { + header: 'Info', + footer: (props) => props.column.id, + columns: [ + { + accessorKey: 'age', + header: () => 'Age', + footer: (props) => props.column.id, + }, + { + accessorKey: 'visits', + header: () => 'Visits', + footer: (props) => props.column.id, + }, + { + accessorKey: 'status', + header: 'Status', + footer: (props) => props.column.id, + }, + { + accessorKey: 'progress', + header: 'Profile Progress', + footer: (props) => props.column.id, + }, + ], + }, +] + +@Component({ + selector: 'app-root', + imports: [FlexRenderDirective, TableResizableCell, TableResizableHeader], + templateUrl: './app.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AppComponent { + readonly data = signal>(makeData(200)) + + readonly columnSizing = computed(() => this.table.getState().columnSizing) + + /** + * Instead of calling `column.getSize()` on every render for every header + * and especially every data cell (very expensive), + * we will calculate all column sizes at once at the root table level in a useMemo + * and pass the column sizes down as CSS variables to the element. + */ + readonly columnSizeVars = computed(() => { + void this.columnSizing() + const headers = untracked(() => this.table.getFlatHeaders()) + const colSizes: { [key: string]: number } = {} + let i = headers.length + while (--i >= 0) { + const header = headers[i] + colSizes[`--header-${header.id}-size`] = header.getSize() + colSizes[`--col-${header.column.id}-size`] = header.column.getSize() + } + return colSizes + }) + + readonly table = injectTable(() => ({ + data: this.data(), + _features, + columns: defaultColumns, + columnResizeMode: 'onChange' as ColumnResizeMode, + defaultColumn: { + minSize: 60, + maxSize: 800, + }, + debugTable: true, + debugHeaders: true, + debugColumns: true, + })) + + readonly columnSizingDebugInfo = computed(() => + JSON.stringify( + { + columnSizing: this.table.getState().columnSizing, + }, + null, + 2, + ), + ) +} diff --git a/examples/angular/column-resizing-performant/src/app/app.config.ts b/examples/angular/column-resizing-performant/src/app/app.config.ts new file mode 100644 index 0000000000..f27099f33c --- /dev/null +++ b/examples/angular/column-resizing-performant/src/app/app.config.ts @@ -0,0 +1,5 @@ +import { ApplicationConfig } from '@angular/core' + +export const appConfig: ApplicationConfig = { + providers: [], +} diff --git a/examples/angular/column-resizing-performant/src/app/makeData.ts b/examples/angular/column-resizing-performant/src/app/makeData.ts new file mode 100644 index 0000000000..331dd1eb19 --- /dev/null +++ b/examples/angular/column-resizing-performant/src/app/makeData.ts @@ -0,0 +1,48 @@ +import { faker } from '@faker-js/faker' + +export type Person = { + firstName: string + lastName: string + age: number + visits: number + progress: number + status: 'relationship' | 'complicated' | 'single' + subRows?: Person[] +} + +const range = (len: number) => { + const arr: number[] = [] + for (let i = 0; i < len; i++) { + arr.push(i) + } + return arr +} + +const newPerson = (): Person => { + return { + firstName: faker.person.firstName(), + lastName: faker.person.lastName(), + age: faker.number.int(40), + visits: faker.number.int(1000), + progress: faker.number.int(100), + status: faker.helpers.shuffle([ + 'relationship', + 'complicated', + 'single', + ])[0]!, + } +} + +export function makeData(...lens: number[]) { + const makeDataLevel = (depth = 0): Person[] => { + const len = lens[depth]! + return range(len).map((d): Person => { + return { + ...newPerson(), + subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, + } + }) + } + + return makeDataLevel() +} diff --git a/examples/angular/column-resizing-performant/src/app/resizable-cell.ts b/examples/angular/column-resizing-performant/src/app/resizable-cell.ts new file mode 100644 index 0000000000..af40d01940 --- /dev/null +++ b/examples/angular/column-resizing-performant/src/app/resizable-cell.ts @@ -0,0 +1,35 @@ +import { computed, Directive, input } from '@angular/core' + +@Directive({ + selector: '[tableResizableHeader]', + host: { + '[style.width]': 'width()', + }, + standalone: true, +}) +export class TableResizableHeader { + readonly cellId = input.required({ + alias: 'tableResizableHeader', + }) + + readonly width = computed( + () => `calc(var(--header-${this.cellId()}-size) * 1px)`, + ) +} + +@Directive({ + selector: '[tableResizableCell]', + host: { + '[style.width]': 'width()', + }, + standalone: true, +}) +export class TableResizableCell { + readonly cellId = input.required({ + alias: 'tableResizableCell', + }) + + readonly width = computed( + () => `calc(var(--col-${this.cellId()}-size) * 1px)`, + ) +} diff --git a/examples/angular/column-resizing-performant/src/assets/.gitkeep b/examples/angular/column-resizing-performant/src/assets/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/angular/column-resizing-performant/src/favicon.ico b/examples/angular/column-resizing-performant/src/favicon.ico new file mode 100644 index 0000000000..57614f9c96 Binary files /dev/null and b/examples/angular/column-resizing-performant/src/favicon.ico differ diff --git a/examples/angular/column-resizing-performant/src/index.html b/examples/angular/column-resizing-performant/src/index.html new file mode 100644 index 0000000000..0132a98242 --- /dev/null +++ b/examples/angular/column-resizing-performant/src/index.html @@ -0,0 +1,14 @@ + + + + + Performant Column Resizing + + + + + + + + + diff --git a/examples/angular/column-resizing-performant/src/main.ts b/examples/angular/column-resizing-performant/src/main.ts new file mode 100644 index 0000000000..c3d8f9af99 --- /dev/null +++ b/examples/angular/column-resizing-performant/src/main.ts @@ -0,0 +1,5 @@ +import { bootstrapApplication } from '@angular/platform-browser' +import { appConfig } from './app/app.config' +import { AppComponent } from './app/app.component' + +bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) diff --git a/examples/angular/column-resizing-performant/src/styles.scss b/examples/angular/column-resizing-performant/src/styles.scss new file mode 100644 index 0000000000..b829b6ca09 --- /dev/null +++ b/examples/angular/column-resizing-performant/src/styles.scss @@ -0,0 +1,74 @@ +* { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + font-size: 14px; +} + +table, +.divTable { + display: block; + border: 1px solid lightgray; + width: fit-content; +} + +.tr { + display: flex; +} + +tr, +.tr { + width: fit-content; + height: 30px; +} + +th, +.th, +td, +.td { + box-shadow: inset 0 0 0 1px lightgray; + padding: 0.25rem; +} + +th, +.th { + padding: 2px 4px; + position: relative; + font-weight: bold; + text-align: center; + height: 30px; +} + +td, +.td { + height: 30px; +} + +.resizer { + position: absolute; + top: 0; + height: 100%; + right: 0; + width: 5px; + background: rgba(0, 0, 0, 0.5); + cursor: col-resize; + user-select: none; + touch-action: none; +} + +.resizer.isResizing { + background: blue; + opacity: 1; +} + +@media (hover: hover) { + .resizer { + opacity: 0; + } + + *:hover > .resizer { + opacity: 1; + } +} diff --git a/examples/angular/column-resizing-performant/tsconfig.app.json b/examples/angular/column-resizing-performant/tsconfig.app.json new file mode 100644 index 0000000000..84f1f992d2 --- /dev/null +++ b/examples/angular/column-resizing-performant/tsconfig.app.json @@ -0,0 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": ["src/main.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/examples/angular/column-resizing-performant/tsconfig.json b/examples/angular/column-resizing-performant/tsconfig.json new file mode 100644 index 0000000000..b58d3efc71 --- /dev/null +++ b/examples/angular/column-resizing-performant/tsconfig.json @@ -0,0 +1,31 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "src", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": ["ES2022", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/examples/angular/column-resizing-performant/tsconfig.spec.json b/examples/angular/column-resizing-performant/tsconfig.spec.json new file mode 100644 index 0000000000..47e3dd7551 --- /dev/null +++ b/examples/angular/column-resizing-performant/tsconfig.spec.json @@ -0,0 +1,9 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": ["jasmine"] + }, + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/examples/angular/column-visibility/package.json b/examples/angular/column-visibility/package.json index f7b1b01c6b..eefbed3548 100644 --- a/examples/angular/column-visibility/package.json +++ b/examples/angular/column-visibility/package.json @@ -11,20 +11,20 @@ }, "private": true, "dependencies": { - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", "@tanstack/angular-table": "^9.0.0-alpha.10", "rxjs": "~7.8.1", "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular/build": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", "tslib": "^2.8.1", "typescript": "5.6.3" } diff --git a/examples/angular/editable/.devcontainer/devcontainer.json b/examples/angular/editable/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..36f47d8762 --- /dev/null +++ b/examples/angular/editable/.devcontainer/devcontainer.json @@ -0,0 +1,4 @@ +{ + "name": "Node.js", + "image": "mcr.microsoft.com/devcontainers/javascript-node:18" +} diff --git a/examples/angular/editable/.editorconfig b/examples/angular/editable/.editorconfig new file mode 100644 index 0000000000..59d9a3a3e7 --- /dev/null +++ b/examples/angular/editable/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/examples/angular/editable/.gitignore b/examples/angular/editable/.gitignore new file mode 100644 index 0000000000..0711527ef9 --- /dev/null +++ b/examples/angular/editable/.gitignore @@ -0,0 +1,42 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/examples/angular/editable/README.md b/examples/angular/editable/README.md new file mode 100644 index 0000000000..5da97a87d1 --- /dev/null +++ b/examples/angular/editable/README.md @@ -0,0 +1,27 @@ +# Basic + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.1.2. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/examples/angular/editable/angular.json b/examples/angular/editable/angular.json new file mode 100644 index 0000000000..0a6c896860 --- /dev/null +++ b/examples/angular/editable/angular.json @@ -0,0 +1,83 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "editable": { + "cli": { + "cache": { + "enabled": false + } + }, + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/editable", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "editable:build:production" + }, + "development": { + "buildTarget": "editable:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "editable:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": ["zone.js", "zone.js/testing"], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": false + } +} diff --git a/examples/angular/editable/package.json b/examples/angular/editable/package.json new file mode 100644 index 0000000000..bf321fc53f --- /dev/null +++ b/examples/angular/editable/package.json @@ -0,0 +1,40 @@ +{ + "name": "tanstack-table-example-angular-editable", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^19.1.4", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", + "@angular/router": "^19.1.4", + "@faker-js/faker": "^8.4.1", + "@tanstack/angular-table": "^9.0.0-alpha.10", + "rxjs": "~7.8.1", + "zone.js": "~0.15.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", + "@types/jasmine": "~5.1.4", + "jasmine-core": "~5.1.2", + "karma": "~6.4.3", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.1", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "tslib": "^2.6.2", + "typescript": "5.7.3" + } +} diff --git a/examples/angular/editable/src/app/app.component.html b/examples/angular/editable/src/app/app.component.html new file mode 100644 index 0000000000..284ad5174a --- /dev/null +++ b/examples/angular/editable/src/app/app.component.html @@ -0,0 +1,106 @@ +
+
+ + @for (headerGroup of table.getHeaderGroups(); track headerGroup.id) { + + @for (header of headerGroup.headers; track header.id) { + @if (!header.isPlaceholder) { + + } + } + + } + + + @for (row of table.getRowModel().rows; track row.id) { + + @for (cell of row.getAllCells(); track cell.id) { + + } + + } + + + @for (footerGroup of table.getFooterGroups(); track footerGroup.id) { + + @for (footer of footerGroup.headers; track footer.id) { + + } + + } + +
+ +
+
+
+ +
+
+
+ + {{ footer }} + +
+ +
+
+ + + + + +
Page
+ + {{ table.getState().pagination.pageIndex + 1 }} of + {{ table.getPageCount() }} + +
+
+
+ + diff --git a/examples/angular/editable/src/app/app.component.ts b/examples/angular/editable/src/app/app.component.ts new file mode 100644 index 0000000000..58e234f225 --- /dev/null +++ b/examples/angular/editable/src/app/app.component.ts @@ -0,0 +1,134 @@ +import { + ChangeDetectionStrategy, + Component, + Injector, + afterNextRender, + inject, + signal, +} from '@angular/core' +import { + FlexRenderDirective, + createPaginatedRowModel, + flexRenderComponent, + injectTable, + rowPaginationFeature, + tableFeatures, +} from '@tanstack/angular-table' +import { EditableCell } from './editable-cell' +import { makeData } from './makeData' +import type { Person } from './makeData' +import type { ColumnDef, RowData, TableFeatures } from '@tanstack/angular-table' + +declare module '@tanstack/angular-table' { + interface TableMeta { + updateData: (rowIndex: number, columnId: string, value: unknown) => void + } +} + +const _features = tableFeatures({ + rowPaginationFeature, +}) + +const defaultColumn: Partial> = { + cell: ({ getValue, row, column, table }) => { + const initialValue = getValue() + + return flexRenderComponent(EditableCell, { + inputs: { + value: initialValue, + }, + outputs: { + blur: (value) => { + if (table.options.meta?.updateData) { + table.options.meta.updateData(row.index, column.id, value) + } + }, + }, + }) + }, +} + +const defaultColumns: Array> = [ + { + accessorKey: 'firstName', + footer: (info) => info.column.id, + }, + { + accessorFn: (row) => row.lastName, + id: 'lastName', + header: () => `Last Name`, + footer: (info) => info.column.id, + }, + { + accessorKey: 'age', + header: () => 'Age', + footer: (info) => info.column.id, + }, + { + accessorKey: 'visits', + header: () => `Visits`, + footer: (info) => info.column.id, + }, + { + accessorKey: 'status', + header: 'Status', + footer: (info) => info.column.id, + }, + { + accessorKey: 'progress', + header: 'Profile Progress', + footer: (info) => info.column.id, + }, +] + +@Component({ + selector: 'app-root', + imports: [FlexRenderDirective], + templateUrl: './app.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AppComponent { + readonly data = signal>(makeData(10_000)) + readonly injector = inject(Injector) + + readonly autoResetPageIndex = signal(true) + + readonly table = injectTable(() => ({ + data: this.data(), + columns: defaultColumns, + _features, + _rowModels: { + paginatedRowModel: createPaginatedRowModel() as any, + }, + defaultColumn: defaultColumn, + debugTable: true, + autoResetPageIndex: this.autoResetPageIndex(), + // Provide our updateData function to our table meta + meta: { + updateData: (rowIndex, columnId, value) => { + // Skip page index reset until after next rerender + this.autoResetPageIndex.set(false) + + this.data.update((old) => + old.map((row, index) => { + if (index === rowIndex) { + return { + ...old[rowIndex], + [columnId]: value, + } + } + return row + }), + ) + + afterNextRender(() => this.autoResetPageIndex.set(true), { + injector: this.injector, + }) + }, + }, + })) + + refresh() { + this.data.set(makeData(10_000)) + } +} diff --git a/examples/angular/editable/src/app/app.config.ts b/examples/angular/editable/src/app/app.config.ts new file mode 100644 index 0000000000..f27099f33c --- /dev/null +++ b/examples/angular/editable/src/app/app.config.ts @@ -0,0 +1,5 @@ +import { ApplicationConfig } from '@angular/core' + +export const appConfig: ApplicationConfig = { + providers: [], +} diff --git a/examples/angular/editable/src/app/editable-cell.ts b/examples/angular/editable/src/app/editable-cell.ts new file mode 100644 index 0000000000..705244e902 --- /dev/null +++ b/examples/angular/editable/src/app/editable-cell.ts @@ -0,0 +1,29 @@ +import { + Component, + effect, + input, + output, + signal, + untracked, +} from '@angular/core' +import { FormsModule } from '@angular/forms' + +@Component({ + selector: 'editable-cell', + template: ` `, + imports: [FormsModule], +}) +export class EditableCell { + readonly modelValue = signal(undefined) + + readonly value = input() + + readonly blur = output() + + constructor() { + effect(() => { + const value = this.value() + untracked(() => this.modelValue.set(value)) + }) + } +} diff --git a/examples/angular/editable/src/app/makeData.ts b/examples/angular/editable/src/app/makeData.ts new file mode 100644 index 0000000000..331dd1eb19 --- /dev/null +++ b/examples/angular/editable/src/app/makeData.ts @@ -0,0 +1,48 @@ +import { faker } from '@faker-js/faker' + +export type Person = { + firstName: string + lastName: string + age: number + visits: number + progress: number + status: 'relationship' | 'complicated' | 'single' + subRows?: Person[] +} + +const range = (len: number) => { + const arr: number[] = [] + for (let i = 0; i < len; i++) { + arr.push(i) + } + return arr +} + +const newPerson = (): Person => { + return { + firstName: faker.person.firstName(), + lastName: faker.person.lastName(), + age: faker.number.int(40), + visits: faker.number.int(1000), + progress: faker.number.int(100), + status: faker.helpers.shuffle([ + 'relationship', + 'complicated', + 'single', + ])[0]!, + } +} + +export function makeData(...lens: number[]) { + const makeDataLevel = (depth = 0): Person[] => { + const len = lens[depth]! + return range(len).map((d): Person => { + return { + ...newPerson(), + subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, + } + }) + } + + return makeDataLevel() +} diff --git a/examples/angular/editable/src/assets/.gitkeep b/examples/angular/editable/src/assets/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/angular/editable/src/favicon.ico b/examples/angular/editable/src/favicon.ico new file mode 100644 index 0000000000..57614f9c96 Binary files /dev/null and b/examples/angular/editable/src/favicon.ico differ diff --git a/examples/angular/editable/src/index.html b/examples/angular/editable/src/index.html new file mode 100644 index 0000000000..d24da42550 --- /dev/null +++ b/examples/angular/editable/src/index.html @@ -0,0 +1,14 @@ + + + + + Editable data + + + + + + + + + diff --git a/examples/angular/editable/src/main.ts b/examples/angular/editable/src/main.ts new file mode 100644 index 0000000000..c3d8f9af99 --- /dev/null +++ b/examples/angular/editable/src/main.ts @@ -0,0 +1,5 @@ +import { bootstrapApplication } from '@angular/platform-browser' +import { appConfig } from './app/app.config' +import { AppComponent } from './app/app.component' + +bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) diff --git a/examples/angular/editable/src/styles.scss b/examples/angular/editable/src/styles.scss new file mode 100644 index 0000000000..cda3113f7d --- /dev/null +++ b/examples/angular/editable/src/styles.scss @@ -0,0 +1,32 @@ +html { + font-family: sans-serif; + font-size: 14px; +} + +table { + border: 1px solid lightgray; +} + +tbody { + border-bottom: 1px solid lightgray; +} + +th { + border-bottom: 1px solid lightgray; + border-right: 1px solid lightgray; + padding: 2px 4px; +} + +tfoot { + color: gray; +} + +tfoot th { + font-weight: normal; +} + +.pagination-actions { + margin: 10px; + display: flex; + gap: 10px; +} diff --git a/examples/angular/editable/tsconfig.app.json b/examples/angular/editable/tsconfig.app.json new file mode 100644 index 0000000000..84f1f992d2 --- /dev/null +++ b/examples/angular/editable/tsconfig.app.json @@ -0,0 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": ["src/main.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/examples/angular/editable/tsconfig.json b/examples/angular/editable/tsconfig.json new file mode 100644 index 0000000000..b58d3efc71 --- /dev/null +++ b/examples/angular/editable/tsconfig.json @@ -0,0 +1,31 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "src", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": ["ES2022", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/examples/angular/editable/tsconfig.spec.json b/examples/angular/editable/tsconfig.spec.json new file mode 100644 index 0000000000..47e3dd7551 --- /dev/null +++ b/examples/angular/editable/tsconfig.spec.json @@ -0,0 +1,9 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": ["jasmine"] + }, + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/examples/angular/expanding/.devcontainer/devcontainer.json b/examples/angular/expanding/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..36f47d8762 --- /dev/null +++ b/examples/angular/expanding/.devcontainer/devcontainer.json @@ -0,0 +1,4 @@ +{ + "name": "Node.js", + "image": "mcr.microsoft.com/devcontainers/javascript-node:18" +} diff --git a/examples/angular/expanding/.editorconfig b/examples/angular/expanding/.editorconfig new file mode 100644 index 0000000000..59d9a3a3e7 --- /dev/null +++ b/examples/angular/expanding/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/examples/angular/expanding/.gitignore b/examples/angular/expanding/.gitignore new file mode 100644 index 0000000000..0711527ef9 --- /dev/null +++ b/examples/angular/expanding/.gitignore @@ -0,0 +1,42 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/examples/angular/expanding/README.md b/examples/angular/expanding/README.md new file mode 100644 index 0000000000..5da97a87d1 --- /dev/null +++ b/examples/angular/expanding/README.md @@ -0,0 +1,27 @@ +# Basic + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.1.2. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/examples/angular/expanding/angular.json b/examples/angular/expanding/angular.json new file mode 100644 index 0000000000..afb55da75f --- /dev/null +++ b/examples/angular/expanding/angular.json @@ -0,0 +1,83 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "expanding": { + "cli": { + "cache": { + "enabled": false + } + }, + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/expanding", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "expanding:build:production" + }, + "development": { + "buildTarget": "expanding:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "expanding:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": ["zone.js", "zone.js/testing"], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": false + } +} diff --git a/examples/angular/expanding/package.json b/examples/angular/expanding/package.json new file mode 100644 index 0000000000..2b95289f3d --- /dev/null +++ b/examples/angular/expanding/package.json @@ -0,0 +1,33 @@ +{ + "name": "tanstack-table-example-angular-expanding", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^19.1.4", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", + "@angular/router": "^19.1.4", + "@faker-js/faker": "^8.4.1", + "@tanstack/angular-table": "^9.0.0-alpha.10", + "rxjs": "~7.8.1", + "zone.js": "~0.15.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", + "tslib": "^2.6.2", + "typescript": "5.7.3" + } +} diff --git a/examples/angular/expanding/src/app/app.component.html b/examples/angular/expanding/src/app/app.component.html new file mode 100644 index 0000000000..b081ba35bd --- /dev/null +++ b/examples/angular/expanding/src/app/app.component.html @@ -0,0 +1,110 @@ +
+
+ +
+ + + @for (headerGroup of table.getHeaderGroups(); track headerGroup.id) { + + @for (header of headerGroup.headers; track header.id) { + + } + + } + + + @for (row of table.getRowModel().rows; track row.id) { + + @for (cell of row.getAllCells(); track cell.id) { + + } + + } + +
+ @if (!header.isPlaceholder) { + +
+
+ } +
+ +
+
+
+
+ +
+
+ + + + + +
Page
+ + {{ table.getState().pagination.pageIndex + 1 }} of + {{ table.getPageCount() }} + +
+ + | Go to page: + + + + +
+ + +
{{ rawExpandedState() }}
+ +
{{ rawRowSelectionState() }}
+
diff --git a/examples/angular/expanding/src/app/app.component.ts b/examples/angular/expanding/src/app/app.component.ts new file mode 100644 index 0000000000..7cc4b10c37 --- /dev/null +++ b/examples/angular/expanding/src/app/app.component.ts @@ -0,0 +1,121 @@ +import { + ChangeDetectionStrategy, + Component, + computed, + signal, +} from '@angular/core' +import { + FlexRenderDirective, + createExpandedRowModel, + createPaginatedRowModel, + createTableHelper, + flexRenderComponent, + rowExpandingFeature, + rowPaginationFeature, + rowSelectionFeature, + tableFeatures, +} from '@tanstack/angular-table' +import { ReactiveFormsModule } from '@angular/forms' +import { makeData } from './makeData' +import { ExpandableCell, ExpandableHeaderCell } from './expandable-cell' +import type { Person } from './makeData' +import type { ColumnDef, ExpandedState } from '@tanstack/angular-table' + +const _features = tableFeatures({ + rowExpandingFeature: rowExpandingFeature, + rowPaginationFeature: rowPaginationFeature, + rowSelectionFeature: rowSelectionFeature, +}) + +const defaultColumns: Array> = [ + { + accessorKey: 'firstName', + header: () => + flexRenderComponent(ExpandableHeaderCell, { + inputs: { + label: 'First name', + }, + }), + cell: () => flexRenderComponent(ExpandableCell), + }, + { + accessorFn: (row) => row.lastName, + id: 'lastName', + cell: (info) => info.getValue(), + header: () => 'Last Name', + footer: (props) => props.column.id, + }, + { + accessorKey: 'age', + header: () => 'Age', + footer: (props) => props.column.id, + }, + { + accessorKey: 'visits', + header: () => `Visits`, + footer: (props) => props.column.id, + }, + { + accessorKey: 'status', + header: 'Status', + footer: (props) => props.column.id, + }, + { + accessorKey: 'progress', + header: 'Profile Progress', + footer: (props) => props.column.id, + }, +] + +@Component({ + selector: 'app-root', + imports: [FlexRenderDirective, ReactiveFormsModule], + templateUrl: './app.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AppComponent { + readonly data = signal>(makeData(100, 5, 3)) + readonly expanded = signal({}) + + readonly tableHelper = createTableHelper({ + _features, + _rowModels: { + paginatedRowModel: createPaginatedRowModel(), + expandedRowModel: createExpandedRowModel(), + }, + }) + + readonly table = this.tableHelper.injectTable(() => ({ + data: this.data(), + columns: defaultColumns, + state: { + expanded: this.expanded(), + }, + onExpandedChange: (updater) => + typeof updater === 'function' + ? this.expanded.update(updater) + : this.expanded.set(updater), + getSubRows: (row) => row.subRows, + // filterFromLeafRows: true, + // maxLeafRowFilterDepth: 0, + debugTable: true, + })) + + readonly rawExpandedState = computed(() => + JSON.stringify(this.expanded(), undefined, 2), + ) + + readonly rawRowSelectionState = computed(() => + JSON.stringify(this.table.getState().rowSelection, undefined, 2), + ) + + onPageInputChange(event: Event): void { + const inputElement = event.target as HTMLInputElement + const page = inputElement.value ? Number(inputElement.value) - 1 : 0 + this.table.setPageIndex(page) + } + + onPageSizeChange(event: any): void { + this.table.setPageSize(Number(event.target.value)) + } +} diff --git a/examples/angular/expanding/src/app/app.config.ts b/examples/angular/expanding/src/app/app.config.ts new file mode 100644 index 0000000000..f27099f33c --- /dev/null +++ b/examples/angular/expanding/src/app/app.config.ts @@ -0,0 +1,5 @@ +import { ApplicationConfig } from '@angular/core' + +export const appConfig: ApplicationConfig = { + providers: [], +} diff --git a/examples/angular/expanding/src/app/expandable-cell.ts b/examples/angular/expanding/src/app/expandable-cell.ts new file mode 100644 index 0000000000..6c7dad3a8d --- /dev/null +++ b/examples/angular/expanding/src/app/expandable-cell.ts @@ -0,0 +1,100 @@ +import { ChangeDetectionStrategy, Component, input } from '@angular/core' +import { + type HeaderContext, + injectFlexRenderContext, + type Table, + CellContext, + rowExpandingFeature, + RowData, + rowSelectionFeature, +} from '@tanstack/angular-table' + +@Component({ + standalone: true, + template: ` + + {{ ' ' }} + + + + {{ label() }} + `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ExpandableHeaderCell { + readonly context = injectFlexRenderContext< + HeaderContext< + { + rowExpandingFeature: typeof rowExpandingFeature + rowSelectionFeature: typeof rowSelectionFeature + }, + T, + unknown + > + >() + + readonly label = input.required() + + get table() { + return this.context.table + } +} + +@Component({ + standalone: true, + template: ` +
+
+ + {{ ' ' }} + + @if (row.getCanExpand()) { + + } @else { + 🔵 + } + {{ ' ' }} + + {{ context.getValue() }} +
+
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, + styles: ` + :host { + > div { + padding-left: calc(2rem * var(--depth, 1)); + } + } + `, +}) +export class ExpandableCell { + readonly context = injectFlexRenderContext< + CellContext< + { + rowExpandingFeature: typeof rowExpandingFeature + rowSelectionFeature: typeof rowSelectionFeature + }, + T, + unknown + > + >() + + get row() { + return this.context.row + } +} diff --git a/examples/angular/expanding/src/app/makeData.ts b/examples/angular/expanding/src/app/makeData.ts new file mode 100644 index 0000000000..331dd1eb19 --- /dev/null +++ b/examples/angular/expanding/src/app/makeData.ts @@ -0,0 +1,48 @@ +import { faker } from '@faker-js/faker' + +export type Person = { + firstName: string + lastName: string + age: number + visits: number + progress: number + status: 'relationship' | 'complicated' | 'single' + subRows?: Person[] +} + +const range = (len: number) => { + const arr: number[] = [] + for (let i = 0; i < len; i++) { + arr.push(i) + } + return arr +} + +const newPerson = (): Person => { + return { + firstName: faker.person.firstName(), + lastName: faker.person.lastName(), + age: faker.number.int(40), + visits: faker.number.int(1000), + progress: faker.number.int(100), + status: faker.helpers.shuffle([ + 'relationship', + 'complicated', + 'single', + ])[0]!, + } +} + +export function makeData(...lens: number[]) { + const makeDataLevel = (depth = 0): Person[] => { + const len = lens[depth]! + return range(len).map((d): Person => { + return { + ...newPerson(), + subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, + } + }) + } + + return makeDataLevel() +} diff --git a/examples/angular/expanding/src/assets/.gitkeep b/examples/angular/expanding/src/assets/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/angular/expanding/src/favicon.ico b/examples/angular/expanding/src/favicon.ico new file mode 100644 index 0000000000..57614f9c96 Binary files /dev/null and b/examples/angular/expanding/src/favicon.ico differ diff --git a/examples/angular/expanding/src/index.html b/examples/angular/expanding/src/index.html new file mode 100644 index 0000000000..bd21f08bcc --- /dev/null +++ b/examples/angular/expanding/src/index.html @@ -0,0 +1,14 @@ + + + + + Expanding + + + + + + + + + diff --git a/examples/angular/expanding/src/main.ts b/examples/angular/expanding/src/main.ts new file mode 100644 index 0000000000..c3d8f9af99 --- /dev/null +++ b/examples/angular/expanding/src/main.ts @@ -0,0 +1,5 @@ +import { bootstrapApplication } from '@angular/platform-browser' +import { appConfig } from './app/app.config' +import { AppComponent } from './app/app.component' + +bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) diff --git a/examples/angular/expanding/src/styles.scss b/examples/angular/expanding/src/styles.scss new file mode 100644 index 0000000000..43c09e0f6b --- /dev/null +++ b/examples/angular/expanding/src/styles.scss @@ -0,0 +1,26 @@ +html { + font-family: sans-serif; + font-size: 14px; +} + +table { + border: 1px solid lightgray; +} + +tbody { + border-bottom: 1px solid lightgray; +} + +th { + border-bottom: 1px solid lightgray; + border-right: 1px solid lightgray; + padding: 2px 4px; +} + +tfoot { + color: gray; +} + +tfoot th { + font-weight: normal; +} diff --git a/examples/angular/expanding/tsconfig.app.json b/examples/angular/expanding/tsconfig.app.json new file mode 100644 index 0000000000..84f1f992d2 --- /dev/null +++ b/examples/angular/expanding/tsconfig.app.json @@ -0,0 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": ["src/main.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/examples/angular/expanding/tsconfig.json b/examples/angular/expanding/tsconfig.json new file mode 100644 index 0000000000..b58d3efc71 --- /dev/null +++ b/examples/angular/expanding/tsconfig.json @@ -0,0 +1,31 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "src", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": ["ES2022", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/examples/angular/expanding/tsconfig.spec.json b/examples/angular/expanding/tsconfig.spec.json new file mode 100644 index 0000000000..47e3dd7551 --- /dev/null +++ b/examples/angular/expanding/tsconfig.spec.json @@ -0,0 +1,9 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": ["jasmine"] + }, + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/examples/angular/filters/package.json b/examples/angular/filters/package.json index e001b94dc5..d6a18361be 100644 --- a/examples/angular/filters/package.json +++ b/examples/angular/filters/package.json @@ -11,12 +11,12 @@ }, "private": true, "dependencies": { - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", "@faker-js/faker": "^9.3.0", "@tanstack/angular-table": "^9.0.0-alpha.10", "rxjs": "~7.8.1", @@ -24,9 +24,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular/build": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", "typescript": "5.6.3" } } diff --git a/examples/angular/grouping/package.json b/examples/angular/grouping/package.json index 6c558b284e..3bc372eb2a 100644 --- a/examples/angular/grouping/package.json +++ b/examples/angular/grouping/package.json @@ -11,21 +11,21 @@ }, "private": true, "dependencies": { - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", "@faker-js/faker": "^9.3.0", "@tanstack/angular-table": "^9.0.0-alpha.10", "rxjs": "~7.8.1", "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular/build": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", "tslib": "^2.8.1", "typescript": "5.6.3" } diff --git a/examples/angular/row-dnd/.devcontainer/devcontainer.json b/examples/angular/row-dnd/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..36f47d8762 --- /dev/null +++ b/examples/angular/row-dnd/.devcontainer/devcontainer.json @@ -0,0 +1,4 @@ +{ + "name": "Node.js", + "image": "mcr.microsoft.com/devcontainers/javascript-node:18" +} diff --git a/examples/angular/row-dnd/.editorconfig b/examples/angular/row-dnd/.editorconfig new file mode 100644 index 0000000000..59d9a3a3e7 --- /dev/null +++ b/examples/angular/row-dnd/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/examples/angular/row-dnd/.gitignore b/examples/angular/row-dnd/.gitignore new file mode 100644 index 0000000000..0711527ef9 --- /dev/null +++ b/examples/angular/row-dnd/.gitignore @@ -0,0 +1,42 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/examples/angular/row-dnd/README.md b/examples/angular/row-dnd/README.md new file mode 100644 index 0000000000..8494f725e3 --- /dev/null +++ b/examples/angular/row-dnd/README.md @@ -0,0 +1,27 @@ +# Row Dnd + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.1.2. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/examples/angular/row-dnd/angular.json b/examples/angular/row-dnd/angular.json new file mode 100644 index 0000000000..0a6c896860 --- /dev/null +++ b/examples/angular/row-dnd/angular.json @@ -0,0 +1,83 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "editable": { + "cli": { + "cache": { + "enabled": false + } + }, + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/editable", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "editable:build:production" + }, + "development": { + "buildTarget": "editable:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "editable:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": ["zone.js", "zone.js/testing"], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": false + } +} diff --git a/examples/angular/row-dnd/package.json b/examples/angular/row-dnd/package.json new file mode 100644 index 0000000000..64649976d3 --- /dev/null +++ b/examples/angular/row-dnd/package.json @@ -0,0 +1,41 @@ +{ + "name": "tanstack-table-example-angular-row-dnd", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^19.1.4", + "@angular/cdk": "^17.3.10", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", + "@angular/router": "^19.1.4", + "@faker-js/faker": "^8.4.1", + "@tanstack/angular-table": "^9.0.0-alpha.10", + "rxjs": "~7.8.1", + "zone.js": "~0.15.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", + "@types/jasmine": "~5.1.4", + "jasmine-core": "~5.1.2", + "karma": "~6.4.3", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.1", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "tslib": "^2.6.2", + "typescript": "5.7.3" + } +} diff --git a/examples/angular/row-dnd/src/app/app.component.css b/examples/angular/row-dnd/src/app/app.component.css new file mode 100644 index 0000000000..9c94476209 --- /dev/null +++ b/examples/angular/row-dnd/src/app/app.component.css @@ -0,0 +1,23 @@ +.cdk-drag-preview { + box-sizing: border-box; + 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); +} + +.cdk-drag-placeholder { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} + +.cdk-drag-placeholder > td { + background: #ccc; +} + +.cdk-drag-animating { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} + +.cdk-drop-list-dragging tr[cdkdrag]:not(.cdk-drag-placeholder) { + transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); +} diff --git a/examples/angular/row-dnd/src/app/app.component.html b/examples/angular/row-dnd/src/app/app.component.html new file mode 100644 index 0000000000..b680eaf212 --- /dev/null +++ b/examples/angular/row-dnd/src/app/app.component.html @@ -0,0 +1,55 @@ +
+ + + @for (headerGroup of table.getHeaderGroups(); track headerGroup.id) { + + @for (header of headerGroup.headers; track header.id) { + @if (!header.isPlaceholder) { + + } + } + + } + + + @for (row of table.getRowModel().rows; track row.id) { + + @for (cell of row.getVisibleCells(); track cell.id) { + + } + + } + +
+ +
+
+
+ +
+
+
+ +
{{ sortedIds() | json }}
+
diff --git a/examples/angular/row-dnd/src/app/app.component.ts b/examples/angular/row-dnd/src/app/app.component.ts new file mode 100644 index 0000000000..e55c6d2184 --- /dev/null +++ b/examples/angular/row-dnd/src/app/app.component.ts @@ -0,0 +1,107 @@ +import { + ChangeDetectionStrategy, + Component, + computed, + signal, +} from '@angular/core' +import { + FlexRenderDirective, + columnSizingFeature, + columnVisibilityFeature, + createPaginatedRowModel, + createTableHelper, + flexRenderComponent, + rowPaginationFeature, +} from '@tanstack/angular-table' +import { CdkDrag, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop' +import { JsonPipe } from '@angular/common' +import { DragHandleCell } from './drag-handle-cell' +import { makeData } from './makeData' +import type { Person } from './makeData' +import type { CdkDragDrop } from '@angular/cdk/drag-drop' +import type { ColumnDef } from '@tanstack/angular-table' + +const defaultColumns: Array< + ColumnDef< + { + rowPaginationFeature: typeof rowPaginationFeature + columnSizingFeature: typeof columnSizingFeature + columnVisibilityFeature: typeof columnVisibilityFeature + }, + Person + > +> = [ + { + id: 'drag-handle', + header: 'Move', + cell: () => flexRenderComponent(DragHandleCell), + size: 60, + }, + { + accessorKey: 'firstName', + cell: (info) => info.getValue(), + }, + { + accessorFn: (row) => row.lastName, + id: 'lastName', + cell: (info) => info.getValue(), + header: () => `Last Name`, + }, + { + accessorKey: 'age', + header: () => 'Age', + }, + { + accessorKey: 'visits', + header: () => `Visits`, + }, + { + accessorKey: 'status', + header: 'Status', + }, + { + accessorKey: 'progress', + header: 'Profile Progress', + }, +] + +@Component({ + selector: 'app-root', + imports: [FlexRenderDirective, CdkDropList, CdkDrag, JsonPipe], + templateUrl: './app.component.html', + styleUrl: './app.component.css', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AppComponent { + readonly data = signal>(makeData(20)) + + readonly tableHelper = createTableHelper({ + _features: { + rowPaginationFeature, + columnSizingFeature, + columnVisibilityFeature, + }, + _rowModels: { + paginatedRowModel: createPaginatedRowModel(), + }, + }) + + readonly table = this.tableHelper.injectTable(() => { + return { + data: this.data(), + columns: defaultColumns, + getRowId: (row) => row.userId, + debugTable: true, + debugHeaders: true, + debugColumns: true, + } + }) + + readonly sortedIds = computed(() => this.data().map((data) => data.userId)) + + drop(event: CdkDragDrop>) { + const data = [...this.data()] + moveItemInArray(data, event.previousIndex, event.currentIndex) + this.data.set(data) + } +} diff --git a/examples/angular/row-dnd/src/app/app.config.ts b/examples/angular/row-dnd/src/app/app.config.ts new file mode 100644 index 0000000000..f27099f33c --- /dev/null +++ b/examples/angular/row-dnd/src/app/app.config.ts @@ -0,0 +1,5 @@ +import { ApplicationConfig } from '@angular/core' + +export const appConfig: ApplicationConfig = { + providers: [], +} diff --git a/examples/angular/row-dnd/src/app/drag-handle-cell.ts b/examples/angular/row-dnd/src/app/drag-handle-cell.ts new file mode 100644 index 0000000000..caadf4167a --- /dev/null +++ b/examples/angular/row-dnd/src/app/drag-handle-cell.ts @@ -0,0 +1,19 @@ +import { + ChangeDetectionStrategy, + Component, + effect, + input, + output, + signal, + untracked, +} from '@angular/core' +import { FormsModule } from '@angular/forms' +import { CdkDragHandle } from '@angular/cdk/drag-drop' + +@Component({ + selector: 'editable-cell', + template: ` `, + imports: [CdkDragHandle], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class DragHandleCell {} diff --git a/examples/angular/row-dnd/src/app/makeData.ts b/examples/angular/row-dnd/src/app/makeData.ts new file mode 100644 index 0000000000..26b666d2ae --- /dev/null +++ b/examples/angular/row-dnd/src/app/makeData.ts @@ -0,0 +1,50 @@ +import { faker } from '@faker-js/faker' + +export type Person = { + userId: string + firstName: string + lastName: string + age: number + visits: number + progress: number + status: 'relationship' | 'complicated' | 'single' + subRows?: Person[] +} + +const range = (len: number) => { + const arr: number[] = [] + for (let i = 0; i < len; i++) { + arr.push(i) + } + return arr +} + +const newPerson = (): Person => { + return { + userId: faker.string.uuid(), + firstName: faker.person.firstName(), + lastName: faker.person.lastName(), + age: faker.number.int(40), + visits: faker.number.int(1000), + progress: faker.number.int(100), + status: faker.helpers.shuffle([ + 'relationship', + 'complicated', + 'single', + ])[0]!, + } +} + +export function makeData(...lens: number[]) { + const makeDataLevel = (depth = 0): Person[] => { + const len = lens[depth]! + return range(len).map((_d): Person => { + return { + ...newPerson(), + subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, + } + }) + } + + return makeDataLevel() +} diff --git a/examples/angular/row-dnd/src/assets/.gitkeep b/examples/angular/row-dnd/src/assets/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/angular/row-dnd/src/favicon.ico b/examples/angular/row-dnd/src/favicon.ico new file mode 100644 index 0000000000..57614f9c96 Binary files /dev/null and b/examples/angular/row-dnd/src/favicon.ico differ diff --git a/examples/angular/row-dnd/src/index.html b/examples/angular/row-dnd/src/index.html new file mode 100644 index 0000000000..adc28921f9 --- /dev/null +++ b/examples/angular/row-dnd/src/index.html @@ -0,0 +1,14 @@ + + + + + Row Drag and drop + + + + + + + + + diff --git a/examples/angular/row-dnd/src/main.ts b/examples/angular/row-dnd/src/main.ts new file mode 100644 index 0000000000..c3d8f9af99 --- /dev/null +++ b/examples/angular/row-dnd/src/main.ts @@ -0,0 +1,5 @@ +import { bootstrapApplication } from '@angular/platform-browser' +import { appConfig } from './app/app.config' +import { AppComponent } from './app/app.component' + +bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) diff --git a/examples/angular/row-dnd/src/styles.scss b/examples/angular/row-dnd/src/styles.scss new file mode 100644 index 0000000000..bcafc9601e --- /dev/null +++ b/examples/angular/row-dnd/src/styles.scss @@ -0,0 +1,41 @@ +html { + font-family: sans-serif; + font-size: 14px; +} + +table { + border: 1px solid lightgray; +} + +tbody { + border-bottom: 1px solid lightgray; +} + +th { + border-bottom: 1px solid lightgray; + border-right: 1px solid lightgray; + padding: 2px 4px; +} + +td { + border-right: 1px solid lightgray; + padding: 4px 4px; + background-color: white; +} + +td button { + padding: 1px 1rem; + cursor: grab; +} + +td:last-child { + border-right: 0; +} + +tfoot { + color: gray; +} + +tfoot th { + font-weight: normal; +} diff --git a/examples/angular/row-dnd/tsconfig.app.json b/examples/angular/row-dnd/tsconfig.app.json new file mode 100644 index 0000000000..84f1f992d2 --- /dev/null +++ b/examples/angular/row-dnd/tsconfig.app.json @@ -0,0 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": ["src/main.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/examples/angular/row-dnd/tsconfig.json b/examples/angular/row-dnd/tsconfig.json new file mode 100644 index 0000000000..b58d3efc71 --- /dev/null +++ b/examples/angular/row-dnd/tsconfig.json @@ -0,0 +1,31 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "src", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": ["ES2022", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/examples/angular/row-dnd/tsconfig.spec.json b/examples/angular/row-dnd/tsconfig.spec.json new file mode 100644 index 0000000000..47e3dd7551 --- /dev/null +++ b/examples/angular/row-dnd/tsconfig.spec.json @@ -0,0 +1,9 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": ["jasmine"] + }, + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/examples/angular/row-selection-signal/package.json b/examples/angular/row-selection-signal/package.json index 8a4704e936..a3eb23d1af 100644 --- a/examples/angular/row-selection-signal/package.json +++ b/examples/angular/row-selection-signal/package.json @@ -11,13 +11,13 @@ }, "private": true, "dependencies": { - "@angular/animations": "^19.0.5", - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", + "@angular/animations": "^19.1.4", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", "@faker-js/faker": "^9.3.0", "@tanstack/angular-table": "^9.0.0-alpha.10", "rxjs": "~7.8.1", @@ -25,9 +25,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular/build": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", "typescript": "5.6.3" } } diff --git a/examples/angular/row-selection/package.json b/examples/angular/row-selection/package.json index 616536b74f..f1715a19bd 100644 --- a/examples/angular/row-selection/package.json +++ b/examples/angular/row-selection/package.json @@ -11,12 +11,12 @@ }, "private": true, "dependencies": { - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", "@faker-js/faker": "^9.3.0", "@tanstack/angular-table": "^9.0.0-alpha.10", "rxjs": "~7.8.1", @@ -24,9 +24,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular/build": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", "typescript": "5.6.3" } } diff --git a/examples/angular/row-selection/src/app/app.component.ts b/examples/angular/row-selection/src/app/app.component.ts index 129adea553..ae2905cbe4 100644 --- a/examples/angular/row-selection/src/app/app.component.ts +++ b/examples/angular/row-selection/src/app/app.component.ts @@ -1,3 +1,4 @@ +import type { TemplateRef } from '@angular/core' import { ChangeDetectionStrategy, Component, @@ -5,27 +6,26 @@ import { signal, viewChild, } from '@angular/core' +import type { ColumnDef, RowSelectionState } from '@tanstack/angular-table' import { - FlexRenderComponent, - FlexRenderDirective, columnFilteringFeature, createFilteredRowModel, createPaginatedRowModel, createTableHelper, filterFns, + flexRenderComponent, + FlexRenderDirective, rowPaginationFeature, rowSelectionFeature, } from '@tanstack/angular-table' import { FormsModule } from '@angular/forms' import { FilterComponent } from './filter' +import type { Person } from './makeData' import { makeData } from './makeData' import { TableHeadSelectionComponent, TableRowSelectionComponent, } from './selection-column.component' -import type { Person } from './makeData' -import type { ColumnDef, RowSelectionState } from '@tanstack/angular-table' -import type { TemplateRef } from '@angular/core' const tableHelper = createTableHelper({ _features: { @@ -59,10 +59,10 @@ export class AppComponent { { id: 'select', header: () => { - return new FlexRenderComponent(TableHeadSelectionComponent) + return flexRenderComponent(TableHeadSelectionComponent) }, cell: () => { - return new FlexRenderComponent(TableRowSelectionComponent) + return flexRenderComponent(TableRowSelectionComponent) }, }, { @@ -142,6 +142,7 @@ export class AppComponent { readonly rowSelectionLength = computed( () => Object.keys(this.rowSelection()).length, ) + onPageInputChange(event: Event): void { const inputElement = event.target as HTMLInputElement const page = inputElement.value ? Number(inputElement.value) - 1 : 0 diff --git a/examples/angular/signal-input/package.json b/examples/angular/signal-input/package.json index d4fc796f4c..2408b044be 100644 --- a/examples/angular/signal-input/package.json +++ b/examples/angular/signal-input/package.json @@ -11,20 +11,20 @@ }, "private": true, "dependencies": { - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", "@faker-js/faker": "^9.3.0", "@tanstack/angular-table": "^9.0.0-alpha.10", "rxjs": "~7.8.1", "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular/build": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", "tslib": "^2.8.1", "typescript": "5.6.3" } diff --git a/examples/angular/sub-components/.devcontainer/devcontainer.json b/examples/angular/sub-components/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..36f47d8762 --- /dev/null +++ b/examples/angular/sub-components/.devcontainer/devcontainer.json @@ -0,0 +1,4 @@ +{ + "name": "Node.js", + "image": "mcr.microsoft.com/devcontainers/javascript-node:18" +} diff --git a/examples/angular/sub-components/.editorconfig b/examples/angular/sub-components/.editorconfig new file mode 100644 index 0000000000..59d9a3a3e7 --- /dev/null +++ b/examples/angular/sub-components/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/examples/angular/sub-components/.gitignore b/examples/angular/sub-components/.gitignore new file mode 100644 index 0000000000..0711527ef9 --- /dev/null +++ b/examples/angular/sub-components/.gitignore @@ -0,0 +1,42 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/examples/angular/sub-components/README.md b/examples/angular/sub-components/README.md new file mode 100644 index 0000000000..5da97a87d1 --- /dev/null +++ b/examples/angular/sub-components/README.md @@ -0,0 +1,27 @@ +# Basic + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.1.2. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/examples/angular/sub-components/angular.json b/examples/angular/sub-components/angular.json new file mode 100644 index 0000000000..6327dd784f --- /dev/null +++ b/examples/angular/sub-components/angular.json @@ -0,0 +1,83 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "sub-components": { + "cli": { + "cache": { + "enabled": false + } + }, + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/sub-components", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "sub-components:build:production" + }, + "development": { + "buildTarget": "sub-components:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "sub-components:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": ["zone.js", "zone.js/testing"], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": false + } +} diff --git a/examples/angular/sub-components/package.json b/examples/angular/sub-components/package.json new file mode 100644 index 0000000000..4b8e949006 --- /dev/null +++ b/examples/angular/sub-components/package.json @@ -0,0 +1,33 @@ +{ + "name": "tanstack-table-example-angular-sub-components", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^19.1.4", + "@angular/common": "^19.1.4", + "@angular/compiler": "^19.1.4", + "@angular/core": "^19.1.4", + "@angular/forms": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", + "@angular/router": "^19.1.4", + "@faker-js/faker": "^9.3.0", + "@tanstack/angular-table": "^9.0.0-alpha.10", + "rxjs": "~7.8.1", + "zone.js": "~0.15.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^19.1.5", + "@angular/cli": "^19.1.5", + "@angular/compiler-cli": "^19.1.4", + "tslib": "^2.6.2", + "typescript": "5.7.3" + } +} diff --git a/examples/angular/sub-components/src/app/app.component.html b/examples/angular/sub-components/src/app/app.component.html new file mode 100644 index 0000000000..b2c63ba226 --- /dev/null +++ b/examples/angular/sub-components/src/app/app.component.html @@ -0,0 +1,69 @@ +
+
+ + + @for (headerGroup of table.getHeaderGroups(); track headerGroup.id) { + + @for (header of headerGroup.headers; track header.id) { + + } + + } + + + @for (row of table.getRowModel().rows; track row.id) { + + + @for (cell of row.getVisibleCells(); track cell.id) { + + } + + + @if (row.getIsExpanded()) { + + + + + } + } + +
+ @if (!header.isPlaceholder) { + +
+
+ } +
+ +
+
+
+ +
+
+
+ + +
+    
+      {{ row.original | json }}
+    
+  
+
diff --git a/examples/angular/sub-components/src/app/app.component.ts b/examples/angular/sub-components/src/app/app.component.ts new file mode 100644 index 0000000000..9c8a8244bc --- /dev/null +++ b/examples/angular/sub-components/src/app/app.component.ts @@ -0,0 +1,132 @@ +import { ChangeDetectionStrategy, Component, signal } from '@angular/core' +import { + FlexRenderDirective, + columnVisibilityFeature, + createExpandedRowModel, + createTableHelper, + flexRenderComponent, + rowExpandingFeature, +} from '@tanstack/angular-table' +import { ReactiveFormsModule } from '@angular/forms' +import { JsonPipe, NgTemplateOutlet } from '@angular/common' +import { makeData } from './makeData' +import { ExpandableCell, ExpanderCell } from './expandable-cell' +import type { Person } from './makeData' +import type { ColumnDef, ExpandedState } from '@tanstack/angular-table' + +const columns: Array< + ColumnDef< + { + rowExpandingFeature: typeof rowExpandingFeature + columnVisibilityFeature: typeof columnVisibilityFeature + }, + Person + > +> = [ + { + header: 'Name', + footer: (props) => props.column.id, + columns: [ + { + id: 'expander', + header: () => null, + cell: ({ row }) => { + if (!row.getCanExpand()) { + return '🔵' + } + return flexRenderComponent(ExpanderCell, { + inputs: { + expanded: row.getIsExpanded(), + }, + outputs: { + click: row.getToggleExpandedHandler(), + }, + }) + }, + }, + { + accessorKey: 'firstName', + header: 'First Name', + cell: () => flexRenderComponent(ExpandableCell), + footer: (props) => props.column.id, + }, + { + accessorFn: (row) => row.lastName, + id: 'lastName', + cell: (info) => info.getValue(), + header: () => 'Last Name', + footer: (props) => props.column.id, + }, + ], + }, + { + header: 'Info', + footer: (props) => props.column.id, + columns: [ + { + accessorKey: 'age', + header: () => 'Age', + footer: (props) => props.column.id, + }, + { + header: 'More Info', + columns: [ + { + accessorKey: 'visits', + header: () => 'Visits', + footer: (props) => props.column.id, + }, + { + accessorKey: 'status', + header: 'Status', + footer: (props) => props.column.id, + }, + { + accessorKey: 'progress', + header: 'Profile Progress', + footer: (props) => props.column.id, + }, + ], + }, + ], + }, +] + +@Component({ + selector: 'app-root', + imports: [ + FlexRenderDirective, + ReactiveFormsModule, + JsonPipe, + NgTemplateOutlet, + ], + templateUrl: './app.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AppComponent { + readonly data = signal>(makeData(10)) + readonly expanded = signal({}) + + tableHelper = createTableHelper({ + _features: { + rowExpandingFeature: rowExpandingFeature, + columnVisibilityFeature: columnVisibilityFeature, + }, + _rowModels: { + expandedRowModel: createExpandedRowModel(), + }, + }) + + readonly table = this.tableHelper.injectTable(() => ({ + data: this.data(), + columns, + state: { + expanded: this.expanded(), + }, + onExpandedChange: (updater) => + typeof updater === 'function' + ? this.expanded.update(updater) + : this.expanded.set(updater), + getRowCanExpand: () => true, + })) +} diff --git a/examples/angular/sub-components/src/app/app.config.ts b/examples/angular/sub-components/src/app/app.config.ts new file mode 100644 index 0000000000..f27099f33c --- /dev/null +++ b/examples/angular/sub-components/src/app/app.config.ts @@ -0,0 +1,5 @@ +import { ApplicationConfig } from '@angular/core' + +export const appConfig: ApplicationConfig = { + providers: [], +} diff --git a/examples/angular/sub-components/src/app/expandable-cell.ts b/examples/angular/sub-components/src/app/expandable-cell.ts new file mode 100644 index 0000000000..0959e3ae9f --- /dev/null +++ b/examples/angular/sub-components/src/app/expandable-cell.ts @@ -0,0 +1,52 @@ +import { + ChangeDetectionStrategy, + Component, + input, + output, +} from '@angular/core' +import { + type HeaderContext, + injectFlexRenderContext, + type Table, + CellContext, + RowData, +} from '@tanstack/angular-table' + +@Component({ + standalone: true, + template: ` + + `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ExpanderCell { + readonly expanded = input.required() + + readonly click = output() +} + +@Component({ + standalone: true, + template: ` +
+ {{ context.getValue() }} +
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, + styles: ` + :host { + > div { + padding-left: calc(2rem * var(--depth, 1)); + } + } + `, +}) +export class ExpandableCell { + readonly context = injectFlexRenderContext>() + + get row() { + return this.context.row + } +} diff --git a/examples/angular/sub-components/src/app/makeData.ts b/examples/angular/sub-components/src/app/makeData.ts new file mode 100644 index 0000000000..331dd1eb19 --- /dev/null +++ b/examples/angular/sub-components/src/app/makeData.ts @@ -0,0 +1,48 @@ +import { faker } from '@faker-js/faker' + +export type Person = { + firstName: string + lastName: string + age: number + visits: number + progress: number + status: 'relationship' | 'complicated' | 'single' + subRows?: Person[] +} + +const range = (len: number) => { + const arr: number[] = [] + for (let i = 0; i < len; i++) { + arr.push(i) + } + return arr +} + +const newPerson = (): Person => { + return { + firstName: faker.person.firstName(), + lastName: faker.person.lastName(), + age: faker.number.int(40), + visits: faker.number.int(1000), + progress: faker.number.int(100), + status: faker.helpers.shuffle([ + 'relationship', + 'complicated', + 'single', + ])[0]!, + } +} + +export function makeData(...lens: number[]) { + const makeDataLevel = (depth = 0): Person[] => { + const len = lens[depth]! + return range(len).map((d): Person => { + return { + ...newPerson(), + subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, + } + }) + } + + return makeDataLevel() +} diff --git a/examples/angular/sub-components/src/assets/.gitkeep b/examples/angular/sub-components/src/assets/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/angular/sub-components/src/favicon.ico b/examples/angular/sub-components/src/favicon.ico new file mode 100644 index 0000000000..57614f9c96 Binary files /dev/null and b/examples/angular/sub-components/src/favicon.ico differ diff --git a/examples/angular/sub-components/src/index.html b/examples/angular/sub-components/src/index.html new file mode 100644 index 0000000000..bd21f08bcc --- /dev/null +++ b/examples/angular/sub-components/src/index.html @@ -0,0 +1,14 @@ + + + + + Expanding + + + + + + + + + diff --git a/examples/angular/sub-components/src/main.ts b/examples/angular/sub-components/src/main.ts new file mode 100644 index 0000000000..c3d8f9af99 --- /dev/null +++ b/examples/angular/sub-components/src/main.ts @@ -0,0 +1,5 @@ +import { bootstrapApplication } from '@angular/platform-browser' +import { appConfig } from './app/app.config' +import { AppComponent } from './app/app.component' + +bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) diff --git a/examples/angular/sub-components/src/styles.scss b/examples/angular/sub-components/src/styles.scss new file mode 100644 index 0000000000..43c09e0f6b --- /dev/null +++ b/examples/angular/sub-components/src/styles.scss @@ -0,0 +1,26 @@ +html { + font-family: sans-serif; + font-size: 14px; +} + +table { + border: 1px solid lightgray; +} + +tbody { + border-bottom: 1px solid lightgray; +} + +th { + border-bottom: 1px solid lightgray; + border-right: 1px solid lightgray; + padding: 2px 4px; +} + +tfoot { + color: gray; +} + +tfoot th { + font-weight: normal; +} diff --git a/examples/angular/sub-components/tsconfig.app.json b/examples/angular/sub-components/tsconfig.app.json new file mode 100644 index 0000000000..84f1f992d2 --- /dev/null +++ b/examples/angular/sub-components/tsconfig.app.json @@ -0,0 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": ["src/main.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/examples/angular/sub-components/tsconfig.json b/examples/angular/sub-components/tsconfig.json new file mode 100644 index 0000000000..b58d3efc71 --- /dev/null +++ b/examples/angular/sub-components/tsconfig.json @@ -0,0 +1,31 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "src", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": ["ES2022", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/examples/angular/sub-components/tsconfig.spec.json b/examples/angular/sub-components/tsconfig.spec.json new file mode 100644 index 0000000000..47e3dd7551 --- /dev/null +++ b/examples/angular/sub-components/tsconfig.spec.json @@ -0,0 +1,9 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": ["jasmine"] + }, + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/examples/lit/sorting-dynamic-data/.gitignore b/examples/lit/sorting-dynamic-data/.gitignore new file mode 100644 index 0000000000..d451ff16c1 --- /dev/null +++ b/examples/lit/sorting-dynamic-data/.gitignore @@ -0,0 +1,5 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local diff --git a/examples/lit/sorting-dynamic-data/README.md b/examples/lit/sorting-dynamic-data/README.md new file mode 100644 index 0000000000..b168d3c4b1 --- /dev/null +++ b/examples/lit/sorting-dynamic-data/README.md @@ -0,0 +1,6 @@ +# Example + +To run this example: + +- `npm install` or `yarn` +- `npm run start` or `yarn start` diff --git a/examples/lit/sorting-dynamic-data/index.html b/examples/lit/sorting-dynamic-data/index.html new file mode 100644 index 0000000000..9807874fae --- /dev/null +++ b/examples/lit/sorting-dynamic-data/index.html @@ -0,0 +1,14 @@ + + + + + + Vite App + + + +
+ + + + diff --git a/examples/lit/sorting-dynamic-data/package.json b/examples/lit/sorting-dynamic-data/package.json new file mode 100644 index 0000000000..c2d4e5b0ba --- /dev/null +++ b/examples/lit/sorting-dynamic-data/package.json @@ -0,0 +1,21 @@ +{ + "name": "tanstack-lit-table-example-sorting-dynamic-data", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "serve": "vite preview", + "start": "vite" + }, + "dependencies": { + "@faker-js/faker": "^8.4.1", + "@tanstack/lit-table": "^8.21.1", + "lit": "^3.1.4" + }, + "devDependencies": { + "@rollup/plugin-replace": "^5.0.7", + "typescript": "5.4.5", + "vite": "^5.3.2" + } +} diff --git a/examples/lit/sorting-dynamic-data/src/main.ts b/examples/lit/sorting-dynamic-data/src/main.ts new file mode 100644 index 0000000000..57faa29319 --- /dev/null +++ b/examples/lit/sorting-dynamic-data/src/main.ts @@ -0,0 +1,235 @@ +import { customElement } from 'lit/decorators.js' +import { html, LitElement, PropertyValueMap } from 'lit' +import { repeat } from 'lit/directives/repeat.js' +import { state } from 'lit/decorators/state.js' +import { + ColumnDef, + flexRender, + getCoreRowModel, + getSortedRowModel, + SortingFn, + type SortingState, + TableController, +} from '@tanstack/lit-table' + +import { makeData, Person } from './makeData' + +const sortStatusFn: SortingFn = (rowA, rowB, _columnId) => { + const statusA = rowA.original.status + const statusB = rowB.original.status + const statusOrder = ['single', 'complicated', 'relationship'] + return statusOrder.indexOf(statusA) - statusOrder.indexOf(statusB) +} + +const columns: ColumnDef[] = [ + { + accessorKey: 'firstName', + cell: (info) => info.getValue(), + //this column will sort in ascending order by default since it is a string column + }, + { + accessorFn: (row) => row.lastName, + id: 'lastName', + cell: (info) => info.getValue(), + header: () => html`Last Name`, + sortUndefined: 'last', //force undefined values to the end + sortDescFirst: false, //first sort order will be ascending (nullable values can mess up auto detection of sort order) + }, + { + accessorKey: 'age', + header: () => 'Age', + //this column will sort in descending order by default since it is a number column + }, + { + accessorKey: 'visits', + header: () => html`Visits`, + sortUndefined: 'last', //force undefined values to the end + }, + { + accessorKey: 'status', + header: 'Status', + sortingFn: sortStatusFn, //use our custom sorting function for this enum column + }, + { + accessorKey: 'progress', + header: 'Profile Progress', + // enableSorting: false, //disable sorting for this column + }, + { + accessorKey: 'rank', + header: 'Rank', + invertSorting: true, //invert the sorting order (golf score-like where smaller is better) + }, + { + accessorKey: 'createdAt', + header: 'Created At', + // sortingFn: 'datetime' //make sure table knows this is a datetime column (usually can detect if no null values) + }, +] + +const data: Person[] = makeData(1000) + +@customElement('lit-table-example') +class LitTableExample extends LitElement { + @state() + private _sorting: SortingState = [] + + @state() + private _multiplier: number = 1 + + @state() + private _data: Person[] = new Array() + + private tableController = new TableController(this) + + constructor() { + super() + this._data = [...data] + } + + protected willUpdate( + _changedProperties: PropertyValueMap | Map, + ): void { + super.willUpdate(_changedProperties) + if (_changedProperties.has('_multiplier')) { + const newData: Person[] = data.map((d) => { + const p: Person = { + ...d, + visits: d.visits ? d.visits * this._multiplier : undefined, + } + return p + }) + this._data.length = 0 + this._data = newData + } + } + protected render() { + const table = this.tableController.table({ + columns, + data: this._data, + state: { + sorting: this._sorting, + }, + onSortingChange: (updaterOrValue) => { + if (typeof updaterOrValue === 'function') { + this._sorting = updaterOrValue(this._sorting) + } else { + this._sorting = updaterOrValue + } + }, + getSortedRowModel: getSortedRowModel(), + getCoreRowModel: getCoreRowModel(), + }) + + return html` + + + + ${repeat( + table.getHeaderGroups(), + (headerGroup) => headerGroup.id, + (headerGroup) => html` + + ${headerGroup.headers.map( + (header) => html` + + `, + )} + + `, + )} + + + ${table + .getRowModel() + .rows.slice(0, 10) + .map( + (row) => html` + + ${row + .getVisibleCells() + .map( + (cell) => html` + + `, + )} + + `, + )} + +
+ ${header.isPlaceholder + ? null + : html`
+ ${flexRender( + header.column.columnDef.header, + header.getContext(), + )} + ${{ asc: ' 🔼', desc: ' 🔽' }[ + header.column.getIsSorted() as string + ] ?? null} +
`} +
+ ${flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
+
${JSON.stringify(this._sorting, null, 2)}
+ + ` + } +} diff --git a/examples/lit/sorting-dynamic-data/src/makeData.ts b/examples/lit/sorting-dynamic-data/src/makeData.ts new file mode 100644 index 0000000000..d6c0639b22 --- /dev/null +++ b/examples/lit/sorting-dynamic-data/src/makeData.ts @@ -0,0 +1,52 @@ +import { faker } from '@faker-js/faker' + +export type Person = { + firstName: string + lastName: string | undefined + age: number + visits: number | undefined + progress: number + status: 'relationship' | 'complicated' | 'single' + rank: number + createdAt: Date + subRows?: Person[] +} + +const range = (len: number) => { + const arr: number[] = [] + for (let i = 0; i < len; i++) { + arr.push(i) + } + return arr +} + +const newPerson = (): Person => { + return { + firstName: faker.person.firstName(), + lastName: Math.random() < 0.1 ? undefined : faker.person.lastName(), + age: faker.number.int(40), + visits: Math.random() < 0.1 ? undefined : faker.number.int(1000), + progress: faker.number.int(100), + createdAt: faker.date.anytime(), + status: faker.helpers.shuffle([ + 'relationship', + 'complicated', + 'single', + ])[0]!, + rank: faker.number.int(100), + } +} + +export function makeData(...lens: number[]) { + const makeDataLevel = (depth = 0): Person[] => { + const len = lens[depth]! + return range(len).map((_d): Person => { + return { + ...newPerson(), + subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, + } + }) + } + + return makeDataLevel() +} diff --git a/examples/lit/sorting-dynamic-data/tsconfig.json b/examples/lit/sorting-dynamic-data/tsconfig.json new file mode 100644 index 0000000000..56517d3a72 --- /dev/null +++ b/examples/lit/sorting-dynamic-data/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "useDefineForClassFields": false, + + /* Linting */ + "strict": true, + "noUnusedLocals": false, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/examples/lit/sorting-dynamic-data/vite.config.js b/examples/lit/sorting-dynamic-data/vite.config.js new file mode 100644 index 0000000000..fa3b238ac6 --- /dev/null +++ b/examples/lit/sorting-dynamic-data/vite.config.js @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite' +import rollupReplace from '@rollup/plugin-replace' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + rollupReplace({ + preventAssignment: true, + values: { + __DEV__: JSON.stringify(true), + 'process.env.NODE_ENV': JSON.stringify('development'), + }, + }), + ], +}) diff --git a/examples/react/virtualized-columns-experimental/.gitignore b/examples/react/virtualized-columns-experimental/.gitignore new file mode 100644 index 0000000000..d451ff16c1 --- /dev/null +++ b/examples/react/virtualized-columns-experimental/.gitignore @@ -0,0 +1,5 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local diff --git a/examples/react/virtualized-columns-experimental/README.md b/examples/react/virtualized-columns-experimental/README.md new file mode 100644 index 0000000000..b168d3c4b1 --- /dev/null +++ b/examples/react/virtualized-columns-experimental/README.md @@ -0,0 +1,6 @@ +# Example + +To run this example: + +- `npm install` or `yarn` +- `npm run start` or `yarn start` diff --git a/examples/react/virtualized-columns-experimental/index.html b/examples/react/virtualized-columns-experimental/index.html new file mode 100644 index 0000000000..fa04f89341 --- /dev/null +++ b/examples/react/virtualized-columns-experimental/index.html @@ -0,0 +1,14 @@ + + + + + + Vite App + + + +
+ + + + diff --git a/examples/react/virtualized-columns-experimental/package.json b/examples/react/virtualized-columns-experimental/package.json new file mode 100644 index 0000000000..c9d262a0ca --- /dev/null +++ b/examples/react/virtualized-columns-experimental/package.json @@ -0,0 +1,26 @@ +{ + "name": "tanstack-table-example-virtualized-columns-experimental", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "serve": "vite preview", + "start": "vite" + }, + "dependencies": { + "@faker-js/faker": "^8.4.1", + "@tanstack/react-table": "^8.20.6", + "@tanstack/react-virtual": "^3.12.0", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@rollup/plugin-replace": "^5.0.7", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "typescript": "5.4.5", + "vite": "^5.3.2" + } +} diff --git a/examples/react/virtualized-columns-experimental/src/index.css b/examples/react/virtualized-columns-experimental/src/index.css new file mode 100644 index 0000000000..98d667b225 --- /dev/null +++ b/examples/react/virtualized-columns-experimental/src/index.css @@ -0,0 +1,53 @@ +:root { + --virtual-padding-left: 0px; + --virtual-padding-right: 0px; +} + +html { + font-family: sans-serif; + font-size: 14px; +} + +table { + border-collapse: collapse; + border-spacing: 0; + font-family: arial, sans-serif; + table-layout: fixed; +} + +thead { + background: lightgray; +} + +tr { + border-bottom: 1px solid lightgray; +} + +th { + border-bottom: 1px solid lightgray; + border-right: 1px solid lightgray; + padding: 2px 4px; + text-align: left; +} + +td { + padding: 6px; +} + +.container { + border: 1px solid lightgray; + margin: 1rem auto; +} + +.app { + margin: 1rem auto; + text-align: center; +} + +.left-column-spacer { + width: var(--virtual-padding-left); +} + +.right-column-spacer { + width: var(--virtual-padding-right); +} diff --git a/examples/react/virtualized-columns-experimental/src/main.tsx b/examples/react/virtualized-columns-experimental/src/main.tsx new file mode 100644 index 0000000000..568b8159d7 --- /dev/null +++ b/examples/react/virtualized-columns-experimental/src/main.tsx @@ -0,0 +1,389 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import './index.css' +import { + Cell, + ColumnDef, + Header, + HeaderGroup, + Row, + Table, + flexRender, + getCoreRowModel, + getSortedRowModel, + useReactTable, +} from '@tanstack/react-table' +import { useVirtualizer, Virtualizer } from '@tanstack/react-virtual' +import { makeColumns, makeData, Person } from './makeData' + +// All important CSS styles are included as inline styles for this example. This is not recommended for your code. +function App() { + const columns = React.useMemo[]>( + () => makeColumns(1_000), + [], + ) + + const [data, setData] = React.useState(() => makeData(1_000, columns)) + + const refreshData = React.useCallback(() => { + setData(makeData(1_000, columns)) + }, [columns]) + + // refresh data every 5 seconds + React.useEffect(() => { + const interval = setInterval(() => { + refreshData() + }, 5000) + return () => clearInterval(interval) + }, [refreshData]) + + // The table does not live in the same scope as the virtualizers + const table = useReactTable({ + data, + columns, + getCoreRowModel: getCoreRowModel(), + getSortedRowModel: getSortedRowModel(), + debugTable: true, + }) + + return ( +
+ {process.env.NODE_ENV === 'development' ? ( +

+ Notice: You are currently running React in + development mode. Virtualized rendering performance will be slightly + degraded until this application is built for production. +

+ ) : null} +
({columns.length.toLocaleString()} columns)
+
({data.length.toLocaleString()} rows)
+ + +
+ ) +} + +interface TableContainerProps { + table: Table +} + +function TableContainer({ table }: TableContainerProps) { + const visibleColumns = table.getVisibleLeafColumns() + + //The virtualizers need to know the scrollable container element + const tableContainerRef = React.useRef(null) + + //we are using a slightly different virtualization strategy for columns (compared to virtual rows) in order to support dynamic row heights + const columnVirtualizer = useVirtualizer< + HTMLDivElement, + HTMLTableCellElement + >({ + count: visibleColumns.length, + estimateSize: (index) => visibleColumns[index].getSize(), //estimate width of each column for accurate scrollbar dragging + getScrollElement: () => tableContainerRef.current, + horizontal: true, + overscan: 3, //how many columns to render on each side off screen each way (adjust this for performance) + onChange: (instance) => { + // requestAnimationFrame(() => { + const virtualColumns = instance.getVirtualItems() + // different virtualization strategy for columns - instead of absolute and translateY, we add empty columns to the left and right + const virtualPaddingLeft = virtualColumns[0]?.start ?? 0 + const virtualPaddingRight = + instance.getTotalSize() - + (virtualColumns[virtualColumns.length - 1]?.end ?? 0) + + tableContainerRef.current?.style.setProperty( + '--virtual-padding-left', + `${virtualPaddingLeft}px`, + ) + tableContainerRef.current?.style.setProperty( + '--virtual-padding-right', + `${virtualPaddingRight}px`, + ) + // }) + }, + }) + + return ( +
+ {/* Even though we're still using sematic table tags, we must use CSS grid and flexbox for dynamic row heights */} + + + +
+
+ ) +} + +interface TableHeadProps { + columnVirtualizer: Virtualizer + table: Table +} + +function TableHead({ table, columnVirtualizer }: TableHeadProps) { + return ( + + {table.getHeaderGroups().map((headerGroup) => ( + + ))} + + ) +} + +interface TableHeadRowProps { + columnVirtualizer: Virtualizer + headerGroup: HeaderGroup +} + +function TableHeadRow({ columnVirtualizer, headerGroup }: TableHeadRowProps) { + const virtualColumnIndexes = columnVirtualizer.getVirtualIndexes() + + return ( + + {/* fake empty column to the left for virtualization scroll padding */} + + {virtualColumnIndexes.map((virtualColumnIndex) => { + const header = headerGroup.headers[virtualColumnIndex] + return ( + + ) + })} + {/* fake empty column to the right for virtualization scroll padding */} + + + ) +} + +interface TableHeadCellProps { + columnVirtualizer: Virtualizer + header: Header +} + +function TableHeadCell({ + columnVirtualizer: _columnVirtualizer, + header, +}: TableHeadCellProps) { + return ( + +
+ {flexRender(header.column.columnDef.header, header.getContext())} + {{ + asc: ' 🔼', + desc: ' 🔽', + }[header.column.getIsSorted() as string] ?? null} +
+ + ) +} + +const TableHeadCellMemo = React.memo( + TableHeadCell, + (_prev, next) => next.columnVirtualizer.isScrolling, +) as typeof TableHeadCell + +interface TableBodyProps { + columnVirtualizer: Virtualizer + table: Table + tableContainerRef: React.RefObject +} + +function TableBody({ + columnVirtualizer, + table, + tableContainerRef, +}: TableBodyProps) { + const tableBodyRef = React.useRef(null) + const rowRefsMap = React.useRef>(new Map()) + + const { rows } = table.getRowModel() + + //dynamic row height virtualization - alternatively you could use a simpler fixed row height strategy without the need for `measureElement` + const rowVirtualizer = useVirtualizer({ + count: rows.length, + estimateSize: () => 33, //estimate row height for accurate scrollbar dragging + getScrollElement: () => tableContainerRef.current, + //measure dynamic row height, except in firefox because it measures table border height incorrectly + measureElement: + typeof window !== 'undefined' && + navigator.userAgent.indexOf('Firefox') === -1 + ? (element) => element?.getBoundingClientRect().height + : undefined, + overscan: 5, + onChange: (instance) => { + // requestAnimationFrame(() => { + tableBodyRef.current!.style.height = `${instance.getTotalSize()}px` + instance.getVirtualItems().forEach((virtualRow) => { + const rowRef = rowRefsMap.current.get(virtualRow.index) + if (!rowRef) return + rowRef.style.transform = `translateY(${virtualRow.start}px)` + }) + // }) + }, + }) + + React.useLayoutEffect(() => { + rowVirtualizer.measure() + }, [table.getState()]) + + const virtualRowIndexes = rowVirtualizer.getVirtualIndexes() + + return ( + + {virtualRowIndexes.map((virtualRowIndex) => { + const row = rows[virtualRowIndex] as Row + + return ( + + ) + })} + + ) +} + +interface TableBodyRowProps { + columnVirtualizer: Virtualizer + row: Row + rowVirtualizer: Virtualizer + virtualRowIndex: number + rowRefsMap: React.MutableRefObject> +} + +function TableBodyRow({ + columnVirtualizer, + row, + rowVirtualizer, + virtualRowIndex, + rowRefsMap, +}: TableBodyRowProps) { + const visibleCells = row.getVisibleCells() + const virtualColumnIndexes = columnVirtualizer.getVirtualIndexes() + + return ( + { + if (node) { + rowVirtualizer.measureElement(node) + rowRefsMap.current.set(virtualRowIndex, node) + } + }} //measure dynamic row height + key={row.id} + style={{ + display: 'flex', + position: 'absolute', + width: '100%', + }} + > + {/* fake empty column to the left for virtualization scroll padding */} + + {virtualColumnIndexes.map((virtualColumnIndex) => { + const cell = visibleCells[virtualColumnIndex] + return ( + + ) + })} + {/* fake empty column to the right for virtualization scroll padding */} + + + ) +} + +// TODO: Can rows be memoized in any way without breaking column virtualization? +// const TableBodyRowMemo = React.memo( +// TableBodyRow, +// (_prev, next) => next.rowVirtualizer.isScrolling +// ) + +interface TableBodyCellProps { + cell: Cell + columnVirtualizer: Virtualizer +} + +function TableBodyCell({ + cell, + columnVirtualizer: _columnVirtualizer, +}: TableBodyCellProps) { + return ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ) +} + +const TableBodyCellMemo = React.memo( + TableBodyCell, + (_prev, next) => next.columnVirtualizer.isScrolling, +) as typeof TableBodyCell + +const rootElement = document.getElementById('root') + +if (!rootElement) throw new Error('Failed to find the root element') + +ReactDOM.createRoot(rootElement).render( + + + , +) diff --git a/examples/react/virtualized-columns-experimental/src/makeData.ts b/examples/react/virtualized-columns-experimental/src/makeData.ts new file mode 100644 index 0000000000..2d45800b12 --- /dev/null +++ b/examples/react/virtualized-columns-experimental/src/makeData.ts @@ -0,0 +1,19 @@ +import { faker } from '@faker-js/faker' + +export const makeColumns = (num) => + [...Array(num)].map((_, i) => { + return { + accessorKey: i.toString(), + header: 'Column ' + i.toString(), + size: Math.floor(Math.random() * 150) + 100, + } + }) + +export const makeData = (num, columns) => + [...Array(num)].map(() => ({ + ...Object.fromEntries( + columns.map((col) => [col.accessorKey, faker.person.firstName()]), + ), + })) + +export type Person = ReturnType[0] diff --git a/examples/react/virtualized-columns-experimental/tsconfig.json b/examples/react/virtualized-columns-experimental/tsconfig.json new file mode 100644 index 0000000000..6d545f543f --- /dev/null +++ b/examples/react/virtualized-columns-experimental/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/examples/react/virtualized-columns-experimental/vite.config.js b/examples/react/virtualized-columns-experimental/vite.config.js new file mode 100644 index 0000000000..2e1361723a --- /dev/null +++ b/examples/react/virtualized-columns-experimental/vite.config.js @@ -0,0 +1,17 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import rollupReplace from '@rollup/plugin-replace' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + rollupReplace({ + preventAssignment: true, + values: { + __DEV__: JSON.stringify(true), + 'process.env.NODE_ENV': JSON.stringify('development'), + }, + }), + react(), + ], +}) diff --git a/examples/react/virtualized-columns/index.html b/examples/react/virtualized-columns/index.html index 3fc40c9367..fa04f89341 100644 --- a/examples/react/virtualized-columns/index.html +++ b/examples/react/virtualized-columns/index.html @@ -8,6 +8,7 @@
+ diff --git a/examples/react/virtualized-columns/src/main.tsx b/examples/react/virtualized-columns/src/main.tsx index 52f3e47679..ceefa33fbf 100644 --- a/examples/react/virtualized-columns/src/main.tsx +++ b/examples/react/virtualized-columns/src/main.tsx @@ -11,34 +11,72 @@ import { } from '@tanstack/react-table' import { useVirtualizer } from '@tanstack/react-virtual' import { makeColumns, makeData } from './makeData' +import type { + Cell, + ColumnDef, + Header, + HeaderGroup, + Row, + Table, +} from '@tanstack/react-table' +import type { VirtualItem, Virtualizer } from '@tanstack/react-virtual' import type { Person } from './makeData' -import type { ColumnDef } from '@tanstack/react-table' + +const features = { columnSizingFeature, rowSortingFeature } function App() { - const columns = React.useMemo>>( + const columns = React.useMemo>>( () => makeColumns(1_000), [], ) - const [data, _setData] = React.useState(() => makeData(1_000, columns)) + const [data, setData] = React.useState(() => makeData(1_000, columns)) + + const refreshData = React.useCallback(() => { + setData(makeData(1_000, columns)) + }, [columns]) const table = useTable({ - _features: { columnSizingFeature, rowSortingFeature }, + _features: features, _rowModels: { sortedRowModel: createSortedRowModel(sortFns) }, columns, data, debugTable: true, }) - const { rows } = table.getRowModel() + // All important CSS styles are included as inline styles for this example. This is not recommended for your code. + return ( +
+ {process.env.NODE_ENV === 'development' ? ( +

+ Notice: You are currently running React in + development mode. Virtualized rendering performance will be slightly + degraded until this application is built for production. +

+ ) : null} +
({columns.length.toLocaleString()} columns)
+
({data.length.toLocaleString()} rows)
+ + +
+ ) +} +interface TableContainerProps { + table: Table +} + +function TableContainer({ table }: TableContainerProps) { const visibleColumns = table.getVisibleLeafColumns() // The virtualizers need to know the scrollable container element const tableContainerRef = React.useRef(null) // we are using a slightly different virtualization strategy for columns (compared to virtual rows) in order to support dynamic row heights - const columnVirtualizer = useVirtualizer({ + const columnVirtualizer = useVirtualizer< + HTMLDivElement, + HTMLTableCellElement + >({ count: visibleColumns.length, estimateSize: (index) => visibleColumns[index].getSize(), // estimate width of each column for accurate scrollbar dragging getScrollElement: () => tableContainerRef.current, @@ -46,8 +84,166 @@ function App() { overscan: 3, // how many columns to render on each side off screen each way (adjust this for performance) }) + const virtualColumns = columnVirtualizer.getVirtualItems() + + // different virtualization strategy for columns - instead of absolute and translateY, we add empty columns to the left and right + let virtualPaddingLeft: number | undefined + let virtualPaddingRight: number | undefined + + if (columnVirtualizer && virtualColumns.length) { + virtualPaddingLeft = virtualColumns[0]?.start ?? 0 + virtualPaddingRight = + columnVirtualizer.getTotalSize() - + (virtualColumns[virtualColumns.length - 1]?.end ?? 0) + } + + return ( +
+ {/* Even though we're still using sematic table tags, we must use CSS grid and flexbox for dynamic row heights */} + + + +
+
+ ) +} + +interface TableHeadProps { + columnVirtualizer: Virtualizer + table: Table + virtualPaddingLeft: number | undefined + virtualPaddingRight: number | undefined +} + +function TableHead({ + columnVirtualizer, + table, + virtualPaddingLeft, + virtualPaddingRight, +}: TableHeadProps) { + return ( + + {table.getHeaderGroups().map((headerGroup) => ( + + ))} + + ) +} + +interface TableHeadRowProps { + columnVirtualizer: Virtualizer + headerGroup: HeaderGroup + virtualPaddingLeft: number | undefined + virtualPaddingRight: number | undefined +} + +function TableHeadRow({ + columnVirtualizer, + headerGroup, + virtualPaddingLeft, + virtualPaddingRight, +}: TableHeadRowProps) { + const virtualColumns = columnVirtualizer.getVirtualItems() + return ( + + {virtualPaddingLeft ? ( + // fake empty column to the left for virtualization scroll padding + + ) : null} + {virtualColumns.map((virtualColumn) => { + const header = headerGroup.headers[virtualColumn.index] + return + })} + {virtualPaddingRight ? ( + // fake empty column to the right for virtualization scroll padding + + ) : null} + + ) +} + +interface TableHeadCellProps { + header: Header +} + +function TableHeadCell({ header }: TableHeadCellProps) { + return ( + +
+ {flexRender(header.column.columnDef.header, header.getContext())} + {{ + asc: ' 🔼', + desc: ' 🔽', + }[header.column.getIsSorted() as string] ?? null} +
+ + ) +} + +interface TableBodyProps { + columnVirtualizer: Virtualizer + table: Table + tableContainerRef: React.RefObject + virtualPaddingLeft: number | undefined + virtualPaddingRight: number | undefined +} + +function TableBody({ + columnVirtualizer, + table, + tableContainerRef, + virtualPaddingLeft, + virtualPaddingRight, +}: TableBodyProps) { + const { rows } = table.getRowModel() + // dynamic row height virtualization - alternatively you could use a simpler fixed row height strategy without the need for `measureElement` - const rowVirtualizer = useVirtualizer({ + const rowVirtualizer = useVirtualizer({ count: rows.length, estimateSize: () => 33, // estimate row height for accurate scrollbar dragging getScrollElement: () => tableContainerRef.current, @@ -60,157 +256,97 @@ function App() { overscan: 5, }) - const virtualColumns = columnVirtualizer.getVirtualItems() const virtualRows = rowVirtualizer.getVirtualItems() - // different virtualization strategy for columns - instead of absolute and translateY, we add empty columns to the left and right - let virtualPaddingLeft: number | undefined - let virtualPaddingRight: number | undefined + return ( + + {virtualRows.map((virtualRow) => { + const row = rows[virtualRow.index] - if (virtualColumns.length) { - virtualPaddingLeft = virtualColumns[0]?.start ?? 0 - virtualPaddingRight = - columnVirtualizer.getTotalSize() - - (virtualColumns[virtualColumns.length - 1]?.end ?? 0) - } + return ( + + ) + })} + + ) +} - // All important CSS styles are included as inline styles for this example. This is not recommended for your code. +interface TableBodyRowProps { + columnVirtualizer: Virtualizer + row: Row + rowVirtualizer: Virtualizer + virtualPaddingLeft: number | undefined + virtualPaddingRight: number | undefined + virtualRow: VirtualItem +} + +function TableBodyRow({ + columnVirtualizer, + row, + rowVirtualizer, + virtualPaddingLeft, + virtualPaddingRight, + virtualRow, +}: TableBodyRowProps) { + const visibleCells = row.getVisibleCells() + const virtualColumns = columnVirtualizer.getVirtualItems() return ( -
- {process.env.NODE_ENV === 'development' ? ( -

- Notice: You are currently running React in - development mode. Virtualized rendering performance will be slightly - degraded until this application is built for production. -

+ rowVirtualizer.measureElement(node)} // measure dynamic row height + key={row.id} + style={{ + display: 'flex', + position: 'absolute', + transform: `translateY(${virtualRow.start}px)`, // this should always be a `style` as it changes on scroll + width: '100%', + }} + > + {virtualPaddingLeft ? ( + // fake empty column to the left for virtualization scroll padding + ) : null} -
({columns.length.toLocaleString()} columns)
-
({data.length.toLocaleString()} rows)
+ {virtualColumns.map((vc) => { + const cell = visibleCells[vc.index] + return + })} + {virtualPaddingRight ? ( + // fake empty column to the right for virtualization scroll padding + + ) : null} + + ) +} -
- {/* Even though we're still using sematic table tags, we must use CSS grid and flexbox for dynamic row heights */} - - - {table.getHeaderGroups().map((headerGroup) => ( - - {virtualPaddingLeft ? ( - // fake empty column to the left for virtualization scroll padding - - ) - })} - {virtualPaddingRight ? ( - // fake empty column to the right for virtualization scroll padding - - ))} - - - {virtualRows.map((virtualRow) => { - const row = rows[virtualRow.index] - const visibleCells = row.getVisibleCells() - - return ( - rowVirtualizer.measureElement(node)} // measure dynamic row height - key={row.id} - style={{ - display: 'flex', - position: 'absolute', - transform: `translateY(${virtualRow.start}px)`, // this should always be a `style` as it changes on scroll - width: '100%', - }} - > - {virtualPaddingLeft ? ( - // fake empty column to the left for virtualization scroll padding - - ) - })} - {virtualPaddingRight ? ( - // fake empty column to the right for virtualization scroll padding - - ) - })} - -
- ) : null} - {virtualColumns.map((vc) => { - const header = headerGroup.headers[vc.index] - return ( - -
- {flexRender( - header.column.columnDef.header, - header.getContext(), - )} - {{ - asc: ' 🔼', - desc: ' 🔽', - }[header.column.getIsSorted() as string] ?? null} -
-
- ) : null} -
- ) : null} - {virtualColumns.map((vc) => { - const cell = visibleCells[vc.index] - return ( - - {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} - - ) : null} -
-
-
+interface TableBodyCellProps { + cell: Cell +} + +function TableBodyCell({ cell }: TableBodyCellProps) { + return ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + ) } diff --git a/examples/react/virtualized-rows-experimental/.gitignore b/examples/react/virtualized-rows-experimental/.gitignore new file mode 100644 index 0000000000..d451ff16c1 --- /dev/null +++ b/examples/react/virtualized-rows-experimental/.gitignore @@ -0,0 +1,5 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local diff --git a/examples/react/virtualized-rows-experimental/README.md b/examples/react/virtualized-rows-experimental/README.md new file mode 100644 index 0000000000..b168d3c4b1 --- /dev/null +++ b/examples/react/virtualized-rows-experimental/README.md @@ -0,0 +1,6 @@ +# Example + +To run this example: + +- `npm install` or `yarn` +- `npm run start` or `yarn start` diff --git a/examples/react/virtualized-rows-experimental/index.html b/examples/react/virtualized-rows-experimental/index.html new file mode 100644 index 0000000000..fa04f89341 --- /dev/null +++ b/examples/react/virtualized-rows-experimental/index.html @@ -0,0 +1,14 @@ + + + + + + Vite App + + + +
+ + + + diff --git a/examples/react/virtualized-rows-experimental/package.json b/examples/react/virtualized-rows-experimental/package.json new file mode 100644 index 0000000000..2a5e22a28e --- /dev/null +++ b/examples/react/virtualized-rows-experimental/package.json @@ -0,0 +1,26 @@ +{ + "name": "tanstack-table-example-virtualized-rows-experimental", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "serve": "vite preview", + "start": "vite" + }, + "dependencies": { + "@faker-js/faker": "^8.4.1", + "@tanstack/react-table": "^8.20.6", + "@tanstack/react-virtual": "^3.12.0", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@rollup/plugin-replace": "^5.0.7", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "typescript": "5.4.5", + "vite": "^5.3.2" + } +} diff --git a/examples/react/virtualized-rows-experimental/src/index.css b/examples/react/virtualized-rows-experimental/src/index.css new file mode 100644 index 0000000000..6402cb4b8b --- /dev/null +++ b/examples/react/virtualized-rows-experimental/src/index.css @@ -0,0 +1,40 @@ +html { + font-family: sans-serif; + font-size: 14px; +} + +table { + border-collapse: collapse; + border-spacing: 0; + font-family: arial, sans-serif; + table-layout: fixed; +} + +thead { + background: lightgray; +} + +tr { + border-bottom: 1px solid lightgray; +} + +th { + border-bottom: 1px solid lightgray; + border-right: 1px solid lightgray; + padding: 2px 4px; + text-align: left; +} + +td { + padding: 6px; +} + +.container { + border: 1px solid lightgray; + margin: 1rem auto; +} + +.app { + margin: 1rem auto; + text-align: center; +} diff --git a/examples/react/virtualized-rows-experimental/src/main.tsx b/examples/react/virtualized-rows-experimental/src/main.tsx new file mode 100644 index 0000000000..81d8734f46 --- /dev/null +++ b/examples/react/virtualized-rows-experimental/src/main.tsx @@ -0,0 +1,309 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' + +import './index.css' + +import { + flexRender, + getCoreRowModel, + getSortedRowModel, + useReactTable, +} from '@tanstack/react-table' +import { useVirtualizer } from '@tanstack/react-virtual' +import { makeData } from './makeData' +import type { ColumnDef, Row, Table } from '@tanstack/react-table' +import type { Virtualizer } from '@tanstack/react-virtual' +import type { Person } from './makeData' + +// This is a dynamic row height example, which is more complicated, but allows for a more realistic table. +// See https://tanstack.com/virtual/v3/docs/examples/react/table for a simpler fixed row height example. +function App() { + const columns = React.useMemo>>( + () => [ + { + accessorKey: 'id', + header: 'ID', + size: 60, + }, + { + accessorKey: 'firstName', + cell: (info) => info.getValue(), + }, + { + accessorFn: (row) => row.lastName, + id: 'lastName', + cell: (info) => info.getValue(), + header: () => Last Name, + }, + { + accessorKey: 'age', + header: () => 'Age', + size: 50, + }, + { + accessorKey: 'visits', + header: () => Visits, + size: 50, + }, + { + accessorKey: 'status', + header: 'Status', + }, + { + accessorKey: 'progress', + header: 'Profile Progress', + size: 80, + }, + { + accessorKey: 'createdAt', + header: 'Created At', + cell: (info) => info.getValue().toLocaleString(), + size: 250, + }, + ], + [], + ) + + const [data, _setData] = React.useState(() => makeData(50_000)) + + const refreshData = React.useCallback(() => { + _setData(makeData(50_000)) + }, []) + + // refresh data every 5 seconds + React.useEffect(() => { + const interval = setInterval(() => { + refreshData() + }, 5000) + return () => clearInterval(interval) + }, [refreshData]) + + const table = useReactTable({ + data, + columns, + getCoreRowModel: getCoreRowModel(), + getSortedRowModel: getSortedRowModel(), + debugTable: true, + }) + + // The virtualizer needs to know the scrollable container element + const tableContainerRef = React.useRef(null) + + // All important CSS styles are included as inline styles for this example. This is not recommended for your code. + return ( +
+ {process.env.NODE_ENV === 'development' ? ( +

+ Notice: You are currently running React in + development mode. Virtualized rendering performance will be slightly + degraded until this application is built for production. +

+ ) : null} + ({data.length} rows) + +
+ {/* Even though we're still using sematic table tags, we must use CSS grid and flexbox for dynamic row heights */} + + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + ) + })} + + ))} + + +
+
+ {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {{ + asc: ' 🔼', + desc: ' 🔽', + }[header.column.getIsSorted() as string] ?? null} +
+
+
+
+ ) +} + +interface TableBodyWrapperProps { + table: Table + tableContainerRef: React.RefObject +} + +function TableBodyWrapper({ table, tableContainerRef }: TableBodyWrapperProps) { + const rowRefsMap = React.useRef>(new Map()) + + const { rows } = table.getRowModel() + + const rowVirtualizer = useVirtualizer({ + count: rows.length, + estimateSize: () => 33, // estimate row height for accurate scrollbar dragging + getScrollElement: () => tableContainerRef.current, + // measure dynamic row height, except in firefox because it measures table border height incorrectly + measureElement: + typeof window !== 'undefined' && + navigator.userAgent.indexOf('Firefox') === -1 + ? (element) => element?.getBoundingClientRect().height + : undefined, + overscan: 5, + onChange: (instance) => { + // requestAnimationFrame(() => { + instance.getVirtualItems().forEach((virtualRow) => { + const rowRef = rowRefsMap.current.get(virtualRow.index) + if (!rowRef) return + rowRef.style.transform = `translateY(${virtualRow.start}px)` + }) + // }) + }, + }) + + React.useLayoutEffect(() => { + rowVirtualizer.measure() + }, [table.getState()]) + + return ( + + ) +} + +interface TableBodyProps { + table: Table + rowVirtualizer: Virtualizer + rowRefsMap: React.MutableRefObject> +} + +function TableBody({ rowVirtualizer, table, rowRefsMap }: TableBodyProps) { + const { rows } = table.getRowModel() + const virtualRowIndexes = rowVirtualizer.getVirtualIndexes() + + return ( + + {virtualRowIndexes.map((virtualRowIndex) => { + const row = rows[virtualRowIndex] + return ( + + ) + })} + + ) +} + +interface TableBodyRowProps { + row: Row + rowRefsMap: React.MutableRefObject> + rowVirtualizer: Virtualizer + virtualRowIndex: number +} + +function TableBodyRow({ + row, + rowRefsMap, + rowVirtualizer, + virtualRowIndex, +}: TableBodyRowProps) { + return ( + { + if (node && virtualRowIndex) { + rowVirtualizer.measureElement(node) // measure dynamic row height + rowRefsMap.current.set(virtualRowIndex, node) // store ref for virtualizer to apply scrolling transforms + } + }} + key={row.id} + style={{ + display: 'flex', + position: 'absolute', + width: '100%', + }} + > + {row.getVisibleCells().map((cell) => { + return ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ) + })} + + ) +} + +// test out when rows don't re-render at all (future TanStack Virtual release can make this unnecessary) +const TableBodyRowMemo = React.memo( + TableBodyRow, + (_prev, next) => next.rowVirtualizer.isScrolling, +) as typeof TableBodyRow + +const rootElement = document.getElementById('root') + +if (!rootElement) throw new Error('Failed to find the root element') + +ReactDOM.createRoot(rootElement).render( + + + , +) diff --git a/examples/react/virtualized-rows-experimental/src/makeData.ts b/examples/react/virtualized-rows-experimental/src/makeData.ts new file mode 100644 index 0000000000..e5695467f5 --- /dev/null +++ b/examples/react/virtualized-rows-experimental/src/makeData.ts @@ -0,0 +1,50 @@ +import { faker } from '@faker-js/faker' + +export type Person = { + id: number + firstName: string + lastName: string + age: number + visits: number + progress: number + status: 'relationship' | 'complicated' | 'single' + createdAt: Date +} + +const range = (len: number) => { + const arr: number[] = [] + for (let i = 0; i < len; i++) { + arr.push(i) + } + return arr +} + +const newPerson = (index: number): Person => { + return { + id: index + 1, + firstName: faker.person.firstName(), + lastName: faker.person.lastName(), + age: faker.number.int(40), + visits: faker.number.int(1000), + progress: faker.number.int(100), + createdAt: faker.date.anytime(), + status: faker.helpers.shuffle([ + 'relationship', + 'complicated', + 'single', + ])[0]!, + } +} + +export function makeData(...lens: number[]) { + const makeDataLevel = (depth = 0): Person[] => { + const len = lens[depth]! + return range(len).map((d): Person => { + return { + ...newPerson(d), + } + }) + } + + return makeDataLevel() +} diff --git a/examples/react/virtualized-rows-experimental/tsconfig.json b/examples/react/virtualized-rows-experimental/tsconfig.json new file mode 100644 index 0000000000..6d545f543f --- /dev/null +++ b/examples/react/virtualized-rows-experimental/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/examples/react/virtualized-rows-experimental/vite.config.js b/examples/react/virtualized-rows-experimental/vite.config.js new file mode 100644 index 0000000000..2e1361723a --- /dev/null +++ b/examples/react/virtualized-rows-experimental/vite.config.js @@ -0,0 +1,17 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import rollupReplace from '@rollup/plugin-replace' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + rollupReplace({ + preventAssignment: true, + values: { + __DEV__: JSON.stringify(true), + 'process.env.NODE_ENV': JSON.stringify('development'), + }, + }), + react(), + ], +}) diff --git a/examples/react/virtualized-rows/index.html b/examples/react/virtualized-rows/index.html index 3fc40c9367..fa04f89341 100644 --- a/examples/react/virtualized-rows/index.html +++ b/examples/react/virtualized-rows/index.html @@ -8,6 +8,7 @@
+ diff --git a/examples/react/virtualized-rows/src/main.tsx b/examples/react/virtualized-rows/src/main.tsx index cc48a99877..36b89f08a9 100644 --- a/examples/react/virtualized-rows/src/main.tsx +++ b/examples/react/virtualized-rows/src/main.tsx @@ -1,8 +1,11 @@ import React from 'react' import ReactDOM from 'react-dom/client' + import './index.css' + import { columnSizingFeature, + columnVisibilityFeature, createSortedRowModel, flexRender, rowSortingFeature, @@ -11,13 +14,20 @@ import { } from '@tanstack/react-table' import { useVirtualizer } from '@tanstack/react-virtual' import { makeData } from './makeData' +import type { ColumnDef, Row, Table } from '@tanstack/react-table' +import type { VirtualItem, Virtualizer } from '@tanstack/react-virtual' import type { Person } from './makeData' -import type { ColumnDef } from '@tanstack/react-table' + +const features = { + columnVisibilityFeature, + columnSizingFeature, + rowSortingFeature, +} // This is a dynamic row height example, which is more complicated, but allows for a more realistic table. // See https://tanstack.com/virtual/v3/docs/examples/react/table for a simpler fixed row height example. function App() { - const columns = React.useMemo>>( + const columns = React.useMemo>>( () => [ { accessorKey: 'id', @@ -63,34 +73,23 @@ function App() { [], ) - const [data, _setData] = React.useState(() => makeData(50_000)) + // The virtualizer will need a reference to the scrollable container element + const tableContainerRef = React.useRef(null) + + const [data, setData] = React.useState(() => makeData(50_000)) + + const refreshData = React.useCallback(() => { + setData(makeData(50_000)) + }, []) const table = useTable({ - _features: { columnSizingFeature, rowSortingFeature }, + _features: features, _rowModels: { sortedRowModel: createSortedRowModel(sortFns) }, columns, data, debugTable: true, }) - const { rows } = table.getRowModel() - - // The virtualizer needs to know the scrollable container element - const tableContainerRef = React.useRef(null) - - const rowVirtualizer = useVirtualizer({ - count: rows.length, - estimateSize: () => 33, // estimate row height for accurate scrollbar dragging - getScrollElement: () => tableContainerRef.current, - // measure dynamic row height, except in firefox because it measures table border height incorrectly - measureElement: - typeof window !== 'undefined' && - navigator.userAgent.indexOf('Firefox') === -1 - ? (element) => element.getBoundingClientRect().height - : undefined, - overscan: 5, - }) - // All important CSS styles are included as inline styles for this example. This is not recommended for your code. return (
@@ -102,6 +101,7 @@ function App() {

) : null} ({data.length} rows) +
{flexRender( header.column.columnDef.header, @@ -158,53 +158,94 @@ function App() { ))} - - {rowVirtualizer.getVirtualItems().map((virtualRow) => { - const row = rows[virtualRow.index] - return ( - rowVirtualizer.measureElement(node)} // measure dynamic row height - key={row.id} - style={{ - display: 'flex', - position: 'absolute', - transform: `translateY(${virtualRow.start}px)`, // this should always be a `style` as it changes on scroll - width: '100%', - }} - > - {row.getVisibleCells().map((cell) => { - return ( - - {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} - - ) - })} - - ) - })} - +
) } +interface TableBodyProps { + table: Table + tableContainerRef: React.RefObject +} + +function TableBody({ table, tableContainerRef }: TableBodyProps) { + const { rows } = table.getRowModel() + + // Important: Keep the row virtualizer in the lowest component possible to avoid unnecessary re-renders. + const rowVirtualizer = useVirtualizer({ + count: rows.length, + estimateSize: () => 33, // estimate row height for accurate scrollbar dragging + getScrollElement: () => tableContainerRef.current, + // measure dynamic row height, except in firefox because it measures table border height incorrectly + measureElement: + typeof window !== 'undefined' && + navigator.userAgent.indexOf('Firefox') === -1 + ? (element) => element.getBoundingClientRect().height + : undefined, + overscan: 5, + }) + + return ( + + {rowVirtualizer.getVirtualItems().map((virtualRow) => { + const row = rows[virtualRow.index] + return ( + + ) + })} + + ) +} + +interface TableBodyRowProps { + row: Row + virtualRow: VirtualItem + rowVirtualizer: Virtualizer +} + +function TableBodyRow({ row, virtualRow, rowVirtualizer }: TableBodyRowProps) { + return ( + rowVirtualizer.measureElement(node)} // measure dynamic row height + key={row.id} + style={{ + display: 'flex', + position: 'absolute', + transform: `translateY(${virtualRow.start}px)`, // this should always be a `style` as it changes on scroll + width: '100%', + }} + > + {row.getVisibleCells().map((cell) => { + return ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ) + })} + + ) +} + const rootElement = document.getElementById('root') if (!rootElement) throw new Error('Failed to find the root element') diff --git a/packages/angular-table/package.json b/packages/angular-table/package.json index fe169b2e64..6180808e15 100644 --- a/packages/angular-table/package.json +++ b/packages/angular-table/package.json @@ -21,13 +21,11 @@ "datagrid" ], "type": "module", - "module": "dist/esm2022/index.mjs", + "module": "dist/fesm2022/tanstack-angular-table.mjs", "types": "dist/index.d.ts", "exports": { ".": { "types": "./dist/index.d.ts", - "esm": "./dist/esm2022/index.mjs", - "esm2022": "./dist/esm2022/index.mjs", "default": "./dist/fesm2022/tanstack-angular-table.mjs" }, "./package.json": { @@ -49,18 +47,20 @@ "test:eslint": "eslint ./src", "test:lib": "vitest", "test:lib:dev": "vitest --watch", - "test:types": "tsc" + "test:types": "tsc && vitest --typecheck" }, "dependencies": { "@tanstack/table-core": "workspace:*", "tslib": "^2.8.1" }, "devDependencies": { - "@analogjs/vite-plugin-angular": "^1.10.1", - "@angular/core": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", - "ng-packagr": "^19.0.1" + "@analogjs/vite-plugin-angular": "^1.11.0", + "@analogjs/vitest-angular": "^1.11.0", + "@angular/core": "^19.1.4", + "@angular/platform-browser": "^19.1.4", + "@angular/platform-browser-dynamic": "^19.1.4", + "ng-packagr": "^19.1.2", + "typescript": "~5.6.3" }, "peerDependencies": { "@angular/core": ">=19" diff --git a/packages/angular-table/src/flex-render.ts b/packages/angular-table/src/flex-render.ts index 02208aaa98..3799538104 100644 --- a/packages/angular-table/src/flex-render.ts +++ b/packages/angular-table/src/flex-render.ts @@ -1,20 +1,40 @@ import { ChangeDetectorRef, - ComponentRef, Directive, - EmbeddedViewRef, + DoCheck, + effect, + type EffectRef, Inject, - InjectionToken, + inject, Injector, Input, + OnChanges, + runInInjectionContext, + SimpleChanges, TemplateRef, Type, ViewContainerRef, - inject, - isSignal, } from '@angular/core' -import type { DoCheck, OnChanges, SimpleChanges } from '@angular/core' -import type { Table } from '@tanstack/table-core' +import { FlexRenderComponentProps } from './flex-render/context' +import { FlexRenderFlags } from './flex-render/flags' +import { + flexRenderComponent, + FlexRenderComponent, +} from './flex-render/flex-render-component' +import { FlexRenderComponentFactory } from './flex-render/flex-render-component-ref' +import { + FlexRenderComponentView, + FlexRenderTemplateView, + type FlexRenderTypedContent, + FlexRenderView, + mapToFlexRenderTypedContent, +} from './flex-render/view' +import { memo } from '@tanstack/table-core' + +export { + injectFlexRenderContext, + type FlexRenderComponentProps, +} from './flex-render/context' export type FlexRenderContent> = | string @@ -23,15 +43,20 @@ export type FlexRenderContent> = | FlexRenderComponent | TemplateRef<{ $implicit: TProps }> | null + | Record | undefined @Directive({ selector: '[flexRender]', standalone: true, + providers: [FlexRenderComponentFactory], }) export class FlexRenderDirective> implements OnChanges, DoCheck { + readonly #flexRenderComponentFactory = inject(FlexRenderComponentFactory) + readonly #changeDetectorRef = inject(ChangeDetectorRef) + @Input({ required: true, alias: 'flexRender' }) content: | number @@ -46,9 +71,22 @@ export class FlexRenderDirective> @Input({ required: false, alias: 'flexRenderInjector' }) injector: Injector = inject(Injector) - ref?: ComponentRef | EmbeddedViewRef | null = null + renderFlags = FlexRenderFlags.ViewFirstRender + renderView: FlexRenderView | null = null + + readonly #latestContent = () => { + const { content, props } = this + return typeof content !== 'function' + ? content + : runInInjectionContext(this.injector, () => content(props)) + } - experimentalReactivity = false + #getContentValue = memo({ + memoDeps: () => [this.#latestContent(), this.props, this.content], + fn: (latestContent) => { + return mapToFlexRenderTypedContent(latestContent) + }, + }) constructor( @Inject(ViewContainerRef) @@ -57,139 +95,193 @@ export class FlexRenderDirective> private readonly templateRef: TemplateRef, ) {} - ngDoCheck(): void { - if (!this.experimentalReactivity && this.ref instanceof ComponentRef) { - this.ref.injector.get(ChangeDetectorRef).markForCheck() + ngOnChanges(changes: SimpleChanges) { + if (changes['props']) { + this.renderFlags |= FlexRenderFlags.PropsReferenceChanged + } + if (changes['content']) { + this.renderFlags |= + FlexRenderFlags.ContentChanged | FlexRenderFlags.ViewFirstRender + this.update() } } - ngOnChanges(changes: SimpleChanges) { - if (!changes['content']) { + ngDoCheck(): void { + if (this.renderFlags & FlexRenderFlags.ViewFirstRender) { + // On the initial render, the view is created during the `ngOnChanges` hook. + // Since `ngDoCheck` is called immediately afterward, there's no need to check for changes in this phase. + this.renderFlags &= ~FlexRenderFlags.ViewFirstRender return } - if ('table' in this.props) { - this.experimentalReactivity = - (this.props.table as Partial>)['options'] - ?.enableExperimentalReactivity ?? false + this.renderFlags |= FlexRenderFlags.DirtyCheck + + const latestContent = this.#getContentValue() + if (latestContent.kind === 'null' || !this.renderView) { + this.renderFlags |= FlexRenderFlags.ContentChanged + } else { + this.renderView.content = latestContent + const { kind: previousKind } = this.renderView.previousContent + if (latestContent.kind !== previousKind) { + this.renderFlags |= FlexRenderFlags.ContentChanged + } } + this.update() + } - this.render() + update() { + if ( + this.renderFlags & + (FlexRenderFlags.ContentChanged | FlexRenderFlags.ViewFirstRender) + ) { + this.render() + return + } + if (this.renderFlags & FlexRenderFlags.PropsReferenceChanged) { + if (this.renderView) this.renderView.updateProps(this.props) + this.renderFlags &= ~FlexRenderFlags.PropsReferenceChanged + } + if ( + this.renderFlags & + (FlexRenderFlags.DirtyCheck | FlexRenderFlags.DirtySignal) + ) { + if (this.renderView) this.renderView.dirtyCheck() + this.renderFlags &= ~( + FlexRenderFlags.DirtyCheck | FlexRenderFlags.DirtySignal + ) + } } + #currentEffectRef: EffectRef | null = null + render() { - this.viewContainerRef.clear() - const { content, props } = this - if (content === null || content === undefined) { - this.ref = null + if (this.#shouldRecreateEntireView() && this.#currentEffectRef) { + this.#currentEffectRef.destroy() + this.#currentEffectRef = null + this.renderFlags &= ~FlexRenderFlags.RenderEffectChecked } - if (typeof content === 'function') { - this.ref = this.renderContent(content(props)) + + this.viewContainerRef.clear() + this.renderFlags = + FlexRenderFlags.Pristine | + (this.renderFlags & FlexRenderFlags.ViewFirstRender) | + (this.renderFlags & FlexRenderFlags.RenderEffectChecked) + + const resolvedContent = this.#getContentValue() + if (resolvedContent.kind === 'null') { + this.renderView = null } else { - this.ref = this.renderContent(content) + this.renderView = this.#renderViewByContent(resolvedContent) } - } - private renderContent(content: FlexRenderContent) { - if (typeof content === 'string' || typeof content === 'number') { - return this.renderStringContent() - } - if (content instanceof TemplateRef) { - return this.viewContainerRef.createEmbeddedView( - content, - this.getTemplateRefContext(), + // If the content is a function `content(props)`, we initialize an effect + // in order to react to changes if the given definition use signals. + if (!this.#currentEffectRef && typeof this.content === 'function') { + this.#currentEffectRef = effect( + () => { + this.#latestContent() + if (!(this.renderFlags & FlexRenderFlags.RenderEffectChecked)) { + this.renderFlags |= FlexRenderFlags.RenderEffectChecked + return + } + this.renderFlags |= FlexRenderFlags.DirtySignal + // This will mark the view as changed, + // so we'll try to check for updates into ngDoCheck + this.#changeDetectorRef.markForCheck() + }, + { injector: this.viewContainerRef.injector }, ) - } else if (content instanceof FlexRenderComponent) { - return this.renderComponent(content) - } else if (content instanceof Type) { - return this.renderCustomComponent(content) + } + } + + #shouldRecreateEntireView() { + return ( + this.renderFlags & + FlexRenderFlags.ContentChanged & + FlexRenderFlags.ViewFirstRender + ) + } + + #renderViewByContent( + content: FlexRenderTypedContent, + ): FlexRenderView | null { + if (content.kind === 'primitive') { + return this.#renderStringContent(content) + } else if (content.kind === 'templateRef') { + return this.#renderTemplateRefContent(content) + } else if (content.kind === 'flexRenderComponent') { + return this.#renderComponent(content) + } else if (content.kind === 'component') { + return this.#renderCustomComponent(content) } else { return null } } - private renderStringContent(): EmbeddedViewRef { + #renderStringContent( + template: Extract, + ): FlexRenderTemplateView { const context = () => { return typeof this.content === 'string' || typeof this.content === 'number' ? this.content : this.content?.(this.props) } - return this.viewContainerRef.createEmbeddedView(this.templateRef, { + const ref = this.viewContainerRef.createEmbeddedView(this.templateRef, { get $implicit() { return context() }, }) + return new FlexRenderTemplateView(template, ref) + } + + #renderTemplateRefContent( + template: Extract, + ): FlexRenderTemplateView { + const latestContext = () => this.props + const view = this.viewContainerRef.createEmbeddedView(template.content, { + get $implicit() { + return latestContext() + }, + }) + return new FlexRenderTemplateView(template, view) } - private renderComponent( - flexRenderComponent: FlexRenderComponent, - ): ComponentRef { - const { component, inputs, injector } = flexRenderComponent + #renderComponent( + flexRenderComponent: Extract< + FlexRenderTypedContent, + { kind: 'flexRenderComponent' } + >, + ): FlexRenderComponentView { + const { inputs, outputs, injector } = flexRenderComponent.content const getContext = () => this.props - const proxy = new Proxy(this.props, { get: (_, key) => getContext()[key as keyof typeof _], }) - const componentInjector = Injector.create({ parent: injector ?? this.injector, providers: [{ provide: FlexRenderComponentProps, useValue: proxy }], }) - - const componentRef = this.viewContainerRef.createComponent(component, { - injector: componentInjector, - }) - for (const prop in inputs) { - if (componentRef.instance?.hasOwnProperty(prop)) { - componentRef.setInput(prop, inputs[prop]) - } - } - return componentRef + const view = this.#flexRenderComponentFactory.createComponent( + flexRenderComponent.content, + componentInjector, + ) + return new FlexRenderComponentView(flexRenderComponent, view) } - private renderCustomComponent( - component: Type, - ): ComponentRef { - const componentRef = this.viewContainerRef.createComponent(component, { - injector: this.injector, - }) - for (const prop in this.props) { - // Only signal based input can be added here - if ( - componentRef.instance?.hasOwnProperty(prop) && - // @ts-ignore - unknown error - isSignal(componentRef.instance[prop]) - ) { - componentRef.setInput(prop, this.props[prop]) - } - } - return componentRef - } - - private getTemplateRefContext() { - const getContext = () => this.props - return { - get $implicit() { - return getContext() - }, - } + #renderCustomComponent( + component: Extract, + ): FlexRenderComponentView { + const view = this.#flexRenderComponentFactory.createComponent( + flexRenderComponent(component.content, { + inputs: this.props, + injector: this.injector, + }), + this.injector, + ) + return new FlexRenderComponentView(component, view) } } -export class FlexRenderComponent> { - constructor( - readonly component: Type, - readonly inputs: T = {} as T, - readonly injector?: Injector, - ) {} -} - -const FlexRenderComponentProps = new InjectionToken>( - '[@tanstack/angular-table] Flex render component context props', -) - -export function injectFlexRenderContext>(): T { - return inject(FlexRenderComponentProps) -} +export const FlexRender = FlexRenderDirective diff --git a/packages/angular-table/src/flex-render/context.ts b/packages/angular-table/src/flex-render/context.ts new file mode 100644 index 0000000000..b9eacac73c --- /dev/null +++ b/packages/angular-table/src/flex-render/context.ts @@ -0,0 +1,9 @@ +import { inject, InjectionToken } from '@angular/core' + +export const FlexRenderComponentProps = new InjectionToken< + NonNullable +>('[@tanstack/angular-table] Flex render component context props') + +export function injectFlexRenderContext>(): T { + return inject(FlexRenderComponentProps) +} diff --git a/packages/angular-table/src/flex-render/flags.ts b/packages/angular-table/src/flex-render/flags.ts new file mode 100644 index 0000000000..7458f71143 --- /dev/null +++ b/packages/angular-table/src/flex-render/flags.ts @@ -0,0 +1,40 @@ +/** + * Flags used to manage and optimize the rendering lifecycle of content of the cell, + * while using FlexRenderDirective. + */ +export enum FlexRenderFlags { + /** + * Indicates that the view is being created for the first time or will be cleared during the next update phase. + * This is the initial state and will transition after the first ngDoCheck. + */ + ViewFirstRender = 1 << 0, + /** + * Represents a state where the view is not dirty, meaning no changes require rendering updates. + */ + Pristine = 1 << 1, + /** + * Indicates the `content` property has been modified or the view requires a complete re-render. + * When this flag is enabled, the view will be cleared and recreated from scratch. + */ + ContentChanged = 1 << 2, + /** + * Indicates that the `props` property reference has changed. + * When this flag is enabled, the view context is updated based on the type of the content. + * + * For Component view, inputs will be updated and view will be marked as dirty. + * For TemplateRef and primitive values, view will be marked as dirty + */ + PropsReferenceChanged = 1 << 3, + /** + * Indicates that the current rendered view needs to be checked for changes. + */ + DirtyCheck = 1 << 4, + /** + * Indicates that a signal within the `content(props)` result has changed + */ + DirtySignal = 1 << 5, + /** + * Indicates that the first render effect has been checked at least one time. + */ + RenderEffectChecked = 1 << 6, +} diff --git a/packages/angular-table/src/flex-render/flex-render-component-ref.ts b/packages/angular-table/src/flex-render/flex-render-component-ref.ts new file mode 100644 index 0000000000..a7d3583a86 --- /dev/null +++ b/packages/angular-table/src/flex-render/flex-render-component-ref.ts @@ -0,0 +1,236 @@ +import { + ChangeDetectorRef, + ComponentRef, + inject, + Injectable, + Injector, + KeyValueDiffer, + KeyValueDiffers, + OutputEmitterRef, + OutputRefSubscription, + ViewContainerRef, +} from '@angular/core' +import { FlexRenderComponent } from './flex-render-component' + +@Injectable() +export class FlexRenderComponentFactory { + #viewContainerRef = inject(ViewContainerRef) + + createComponent( + flexRenderComponent: FlexRenderComponent, + componentInjector: Injector, + ): FlexRenderComponentRef { + const componentRef = this.#viewContainerRef.createComponent( + flexRenderComponent.component, + { + injector: componentInjector, + }, + ) + const view = new FlexRenderComponentRef( + componentRef, + flexRenderComponent, + componentInjector, + ) + + const { inputs, outputs } = flexRenderComponent + + if (inputs) view.setInputs(inputs) + if (outputs) view.setOutputs(outputs) + + return view + } +} + +export class FlexRenderComponentRef { + readonly #keyValueDiffersFactory: KeyValueDiffers + #componentData: FlexRenderComponent + #inputValueDiffer: KeyValueDiffer + + readonly #outputRegistry: FlexRenderComponentOutputManager + + constructor( + readonly componentRef: ComponentRef, + componentData: FlexRenderComponent, + readonly componentInjector: Injector, + ) { + this.#componentData = componentData + this.#keyValueDiffersFactory = componentInjector.get(KeyValueDiffers) + + this.#outputRegistry = new FlexRenderComponentOutputManager( + this.#keyValueDiffersFactory, + this.outputs, + ) + + this.#inputValueDiffer = this.#keyValueDiffersFactory + .find(this.inputs) + .create() + this.#inputValueDiffer.diff(this.inputs) + + this.componentRef.onDestroy(() => this.#outputRegistry.unsubscribeAll()) + } + + get component() { + return this.#componentData.component + } + + get inputs() { + return this.#componentData.inputs ?? {} + } + + get outputs() { + return this.#componentData.outputs ?? {} + } + + /** + * Get component input and output diff by the given item + */ + diff(item: FlexRenderComponent) { + return { + inputDiff: this.#inputValueDiffer.diff(item.inputs ?? {}), + outputDiff: this.#outputRegistry.diff(item.outputs ?? {}), + } + } + /** + * + * @param compare Whether the current ref component instance is the same as the given one + */ + eqType(compare: FlexRenderComponent): boolean { + return compare.component === this.component + } + + /** + * Tries to update current component refs input by the new given content component. + */ + update(content: FlexRenderComponent) { + const eq = this.eqType(content) + if (!eq) return + const { inputDiff, outputDiff } = this.diff(content) + if (inputDiff) { + inputDiff.forEachAddedItem((item) => + this.setInput(item.key, item.currentValue), + ) + inputDiff.forEachChangedItem((item) => + this.setInput(item.key, item.currentValue), + ) + inputDiff.forEachRemovedItem((item) => this.setInput(item.key, undefined)) + } + if (outputDiff) { + outputDiff.forEachAddedItem((item) => { + this.setOutput(item.key, item.currentValue) + }) + outputDiff.forEachChangedItem((item) => { + if (item.currentValue) { + this.#outputRegistry.setListener(item.key, item.currentValue) + } else { + this.#outputRegistry.unsubscribe(item.key) + } + }) + outputDiff.forEachRemovedItem((item) => { + this.#outputRegistry.unsubscribe(item.key) + }) + } + + this.#componentData = content + } + + markAsDirty(): void { + this.componentRef.injector.get(ChangeDetectorRef).markForCheck() + } + + setInputs(inputs: Record) { + for (const prop in inputs) { + this.setInput(prop, inputs[prop]) + } + } + + setInput(key: string, value: unknown) { + if (this.#componentData.allowedInputNames.includes(key)) { + this.componentRef.setInput(key, value) + } + } + + setOutputs( + outputs: Record< + string, + OutputEmitterRef['emit'] | null | undefined + >, + ) { + this.#outputRegistry.unsubscribeAll() + for (const prop in outputs) { + this.setOutput(prop, outputs[prop]) + } + } + + setOutput( + outputName: string, + emit: OutputEmitterRef['emit'] | undefined | null, + ): void { + if (!this.#componentData.allowedOutputNames.includes(outputName)) return + if (!emit) { + this.#outputRegistry.unsubscribe(outputName) + return + } + + const hasListener = this.#outputRegistry.hasListener(outputName) + this.#outputRegistry.setListener(outputName, emit) + + if (hasListener) { + return + } + + const instance = this.componentRef.instance + const output = instance[outputName as keyof typeof instance] + if (output && output instanceof OutputEmitterRef) { + output.subscribe((value) => { + this.#outputRegistry.getListener(outputName)?.(value) + }) + } + } +} + +class FlexRenderComponentOutputManager { + readonly #outputSubscribers: Record = {} + readonly #outputListeners: Record void> = {} + + readonly #valueDiffer: KeyValueDiffer< + string, + undefined | null | OutputEmitterRef['emit'] + > + + constructor(keyValueDiffers: KeyValueDiffers, initialOutputs: any) { + this.#valueDiffer = keyValueDiffers.find(initialOutputs).create() + if (initialOutputs) { + this.#valueDiffer.diff(initialOutputs) + } + } + + hasListener(outputName: string) { + return outputName in this.#outputListeners + } + + setListener(outputName: string, callback: (...args: any[]) => void) { + this.#outputListeners[outputName] = callback + } + + getListener(outputName: string) { + return this.#outputListeners[outputName] + } + + unsubscribeAll(): void { + for (const prop in this.#outputSubscribers) { + this.unsubscribe(prop) + } + } + + unsubscribe(outputName: string) { + if (outputName in this.#outputSubscribers) { + this.#outputSubscribers[outputName]?.unsubscribe() + delete this.#outputSubscribers[outputName] + delete this.#outputListeners[outputName] + } + } + + diff(outputs: Record['emit'] | undefined>) { + return this.#valueDiffer.diff(outputs ?? {}) + } +} diff --git a/packages/angular-table/src/flex-render/flex-render-component.ts b/packages/angular-table/src/flex-render/flex-render-component.ts new file mode 100644 index 0000000000..16335731f0 --- /dev/null +++ b/packages/angular-table/src/flex-render/flex-render-component.ts @@ -0,0 +1,119 @@ +import { + ComponentMirror, + Injector, + InputSignal, + OutputEmitterRef, + reflectComponentType, + Type, +} from '@angular/core' + +type Inputs = { + [K in keyof T as T[K] extends InputSignal + ? K + : never]?: T[K] extends InputSignal ? R : never +} + +type Outputs = { + [K in keyof T as T[K] extends OutputEmitterRef + ? K + : never]?: T[K] extends OutputEmitterRef + ? OutputEmitterRef['emit'] + : never +} + +type OptionalKeys = K extends keyof T + ? T[K] extends Required[K] + ? undefined extends T[K] + ? K + : never + : K + : never + +interface FlexRenderRequiredOptions< + TInputs extends Record, + TOutputs extends Record, +> { + /** + * Component instance inputs. They will be set via [componentRef.setInput API](https://angular.dev/api/core/ComponentRef#setInput) + */ + inputs: TInputs + /** + * Component instance outputs. + */ + outputs?: TOutputs + /** + * Optional {@link Injector} that will be used when rendering the component + */ + injector?: Injector +} + +interface FlexRenderOptions< + TInputs extends Record, + TOutputs extends Record, +> { + /** + * Component instance inputs. They will be set via [componentRef.setInput API](https://angular.dev/api/core/ComponentRef#setInput) + */ + inputs?: TInputs + /** + * Component instance outputs. + */ + outputs?: TOutputs + /** + * Optional {@link Injector} that will be used when rendering the component + */ + injector?: Injector +} + +/** + * Helper function to create a [@link FlexRenderComponent] instance, with better type-safety. + * + * - options object must be passed when the given component instance contains at least one required signal input. + * - options/inputs is typed with the given component inputs + * - options/outputs is typed with the given component outputs + */ +export function flexRenderComponent< + TComponent = any, + TInputs extends Inputs = Inputs, + TOutputs extends Outputs = Outputs, +>( + component: Type, + ...options: OptionalKeys extends never + ? [FlexRenderOptions?] + : [FlexRenderRequiredOptions] +) { + const { inputs, injector, outputs } = options?.[0] ?? {} + return new FlexRenderComponent(component, inputs, injector, outputs) +} + +/** + * Wrapper class for a component that will be used as content for {@link FlexRenderDirective} + * + * Prefer {@link flexRenderComponent} helper for better type-safety + */ +export class FlexRenderComponent { + readonly mirror: ComponentMirror + readonly allowedInputNames: string[] = [] + readonly allowedOutputNames: string[] = [] + + constructor( + readonly component: Type, + readonly inputs?: Inputs, + readonly injector?: Injector, + readonly outputs?: Outputs, + ) { + const mirror = reflectComponentType(component) + if (!mirror) { + throw new Error( + `[@tanstack-table/angular] The provided symbol is not a component`, + ) + } + this.mirror = mirror + for (const input of this.mirror.inputs) { + this.allowedInputNames.push(input.propName) + } + for (const output of this.mirror.outputs) { + this.allowedOutputNames.push(output.propName) + } + } +} diff --git a/packages/angular-table/src/flex-render/view.ts b/packages/angular-table/src/flex-render/view.ts new file mode 100644 index 0000000000..c54e57b1bb --- /dev/null +++ b/packages/angular-table/src/flex-render/view.ts @@ -0,0 +1,153 @@ +import { FlexRenderComponentRef } from './flex-render-component-ref' +import { EmbeddedViewRef, TemplateRef, Type } from '@angular/core' +import type { FlexRenderContent } from '../flex-render' +import { FlexRenderComponent } from './flex-render-component' + +export type FlexRenderTypedContent = + | { kind: 'null' } + | { + kind: 'primitive' + content: string | number | Record + } + | { kind: 'flexRenderComponent'; content: FlexRenderComponent } + | { kind: 'templateRef'; content: TemplateRef } + | { kind: 'component'; content: Type } + +export function mapToFlexRenderTypedContent( + content: FlexRenderContent, +): FlexRenderTypedContent { + if (content === null || content === undefined) { + return { kind: 'null' } + } + if (typeof content === 'string' || typeof content === 'number') { + return { kind: 'primitive', content } + } + if (content instanceof FlexRenderComponent) { + return { kind: 'flexRenderComponent', content } + } else if (content instanceof TemplateRef) { + return { kind: 'templateRef', content } + } else if (content instanceof Type) { + return { kind: 'component', content } + } else { + return { kind: 'primitive', content } + } +} + +export abstract class FlexRenderView< + TView extends FlexRenderComponentRef | EmbeddedViewRef | null, +> { + readonly view: TView + #previousContent: FlexRenderTypedContent | undefined + #content: FlexRenderTypedContent + + protected constructor( + initialContent: Exclude, + view: TView, + ) { + this.#content = initialContent + this.view = view + } + + get previousContent(): FlexRenderTypedContent { + return this.#previousContent ?? { kind: 'null' } + } + + get content() { + return this.#content + } + + set content(content: FlexRenderTypedContent) { + this.#previousContent = this.#content + this.#content = content + } + + abstract updateProps(props: Record): void + + abstract dirtyCheck(): void + + abstract onDestroy(callback: Function): void +} + +export class FlexRenderTemplateView extends FlexRenderView< + EmbeddedViewRef +> { + constructor( + initialContent: Extract< + FlexRenderTypedContent, + { kind: 'primitive' | 'templateRef' } + >, + view: EmbeddedViewRef, + ) { + super(initialContent, view) + } + + override updateProps(props: Record) { + this.view.markForCheck() + } + + override dirtyCheck() { + // Basically a no-op. When the view is created via EmbeddedViewRef, we don't need to do any manual update + // since this type of content has a proxy as a context, then every time the root component is checked for changes, + // the property getter will be re-evaluated. + // + // If in a future we need to manually mark the view as dirty, just uncomment next line + // this.view.markForCheck() + } + + override onDestroy(callback: Function) { + this.view.onDestroy(callback) + } +} + +export class FlexRenderComponentView extends FlexRenderView< + FlexRenderComponentRef +> { + constructor( + initialContent: Extract< + FlexRenderTypedContent, + { kind: 'component' | 'flexRenderComponent' } + >, + view: FlexRenderComponentRef, + ) { + super(initialContent, view) + } + + override updateProps(props: Record) { + switch (this.content.kind) { + case 'component': { + this.view.setInputs(props) + break + } + case 'flexRenderComponent': { + // No-op. When FlexRenderFlags.PropsReferenceChanged is set, + // FlexRenderComponent will be updated into `dirtyCheck`. + break + } + } + } + + override dirtyCheck() { + switch (this.content.kind) { + case 'component': { + // Component context is currently valuated with the cell context. Since it's reference + // shouldn't change, we force mark the component as dirty in order to re-evaluate function invocation in view. + // NOTE: this should behave like having a component with ChangeDetectionStrategy.Default + this.view.markAsDirty() + break + } + case 'flexRenderComponent': { + // Given context instance will always have a different reference than the previous one, + // so instead of recreating the entire view, we will only update the current view + if (this.view.eqType(this.content.content)) { + this.view.update(this.content.content) + } + this.view.markAsDirty() + break + } + } + } + + override onDestroy(callback: Function) { + this.view.componentRef.onDestroy(callback) + } +} diff --git a/packages/angular-table/src/index.ts b/packages/angular-table/src/index.ts index 117b7c7892..0e814d7f1a 100644 --- a/packages/angular-table/src/index.ts +++ b/packages/angular-table/src/index.ts @@ -6,3 +6,4 @@ export * from './flex-render' export * from './injectTable' export * from './lazy-signal-initializer' export * from './proxy' +export * from './flex-render/flex-render-component' diff --git a/packages/angular-table/src/injectTable.ts b/packages/angular-table/src/injectTable.ts index ff61fd9da8..9aa78dabd1 100644 --- a/packages/angular-table/src/injectTable.ts +++ b/packages/angular-table/src/injectTable.ts @@ -28,7 +28,7 @@ export function injectTable< return { ...coreFeatures, ...options()._features, - ...angularReactivityFeature, + angularReactivityFeature, } } diff --git a/packages/angular-table/src/proxy.ts b/packages/angular-table/src/proxy.ts index 1e2ef1bb69..1fff8e1c80 100644 --- a/packages/angular-table/src/proxy.ts +++ b/packages/angular-table/src/proxy.ts @@ -132,8 +132,11 @@ function getDefaultProxyHandler< if ( typeof property === 'string' && property.startsWith('get') && - !property.endsWith('Handler') && - !property.endsWith('Model') + !property.endsWith('Handler') + // e.g. getCoreRowModel, getSelectedRowModel etc. + // We need that after a signal change even `rowModel` may mark the view as dirty. + // This allows to always get the latest `getContext` value while using flexRender + // && !property.endsWith('Model') ) { const maybeFn = table[property as keyof typeof target] as | Function diff --git a/packages/angular-table/tests/flex-render-component.test-d.ts b/packages/angular-table/tests/flex-render-component.test-d.ts new file mode 100644 index 0000000000..dca2c7b989 --- /dev/null +++ b/packages/angular-table/tests/flex-render-component.test-d.ts @@ -0,0 +1,27 @@ +import { input } from '@angular/core' +import { test } from 'vitest' +import { flexRenderComponent } from '../src' + +test('Infer component inputs', () => { + class Test { + readonly input1 = input() + } + + // @ts-expect-error Must pass right type as a value + flexRenderComponent(Test, { inputs: { input1: 1 } }) + + // Input is optional so we can skip passing the property + flexRenderComponent(Test, { inputs: {} }) +}) + +test('Options are mandatory when given component has required inputs', () => { + class Test { + readonly input1 = input() + readonly requiredInput1 = input.required() + } + + // @ts-expect-error Required input + flexRenderComponent(Test) + + flexRenderComponent(Test, { inputs: { requiredInput1: 'My value' } }) +}) diff --git a/packages/angular-table/tests/flex-render-table.test.ts b/packages/angular-table/tests/flex-render-table.test.ts new file mode 100644 index 0000000000..360f0cd350 --- /dev/null +++ b/packages/angular-table/tests/flex-render-table.test.ts @@ -0,0 +1,469 @@ +import { + ChangeDetectionStrategy, + Component, + ViewChild, + input, + output, + signal, +} from '@angular/core' +import { + ColumnDef, + createCoreRowModel, + stockFeatures, +} from '@tanstack/table-core' +import { TestBed } from '@angular/core/testing' +import { describe, expect, test, vi } from 'vitest' +import { By } from '@angular/platform-browser' +import { + FlexRender, + flexRenderComponent, + injectFlexRenderContext, + injectTable, +} from '../src' +import type { FlexRenderContent } from '../src' +import type { + CellContext, + ExpandedState, + TableOptions, + TableState, +} from '@tanstack/table-core' +import type { TemplateRef } from '@angular/core' + +const defaultData: Array = [ + { id: '1', title: 'My title' }, +] as Array + +const defaultColumns: Array> = [ + { + id: 'title', + accessorKey: 'title', + header: 'Title', + cell: (props) => props.renderValue(), + }, +] + +describe('FlexRenderDirective', () => { + test.each([null, undefined])('Render %s as empty', (value) => { + const { fixture, dom } = createTestTable(defaultData, [ + { id: 'first_cell', header: 'header', cell: () => value }, + ]) + const row = dom.getBodyRow(0)! + const firstCell = row.querySelector('td') + + expect(firstCell!.matches(':empty')).toBe(true) + }) + + test.each([ + ['String column via function', () => 'My string'], + ['String column', () => 'My string'], + ['Number column via function', () => 0], + ['Number column', 0], + ])('Render primitive (%s)', (columnName, columnValue) => { + const { fixture, dom } = createTestTable(defaultData, [ + { id: 'first_cell', header: columnName, cell: columnValue as any }, + ]) + const row = dom.getBodyRow(0)! + const firstCell = row.querySelector('td') + + expectPrimitiveValueIs( + firstCell, + String(typeof columnValue === 'function' ? columnValue() : columnValue), + ) + }) + + test('Render TemplateRef', () => { + @Component({ + template: ` + + Cell id: {{ context.cell.id }} + `, + standalone: true, + }) + class FakeTemplateRefComponent { + @ViewChild('template', { static: true }) + templateRef!: TemplateRef + } + + const templateRef = TestBed.createComponent(FakeTemplateRefComponent) + .componentInstance.templateRef + + const { dom } = createTestTable(defaultData, [ + { id: 'first_cell', header: 'Header', cell: () => templateRef }, + ]) + + const row = dom.getBodyRow(0)! + const firstCell = row.querySelector('td') + expect(firstCell!.textContent).toEqual('Cell id: 0_first_cell') + }) + + test('Render component with FlexRenderComponent', async () => { + const status = signal('Initial status') + + const { dom } = createTestTable(defaultData, [ + { + id: 'first_cell', + header: 'Status', + cell: () => { + return flexRenderComponent(TestBadgeComponent, { + inputs: { + status: status(), + }, + }) + }, + }, + ]) + + const row = dom.getBodyRow(0)! + const firstCell = row.querySelector('td') + expect(firstCell!.textContent).toEqual('Initial status') + + status.set('Updated status') + dom.clickTriggerCdButton() + + expect(firstCell!.textContent).toEqual('Updated status') + }) + + test('Render content reactively based on signal value', async () => { + const statusComponent = signal>('Initial status') + + const { dom, fixture } = createTestTable(defaultData, [ + { + id: 'first_cell', + header: 'Status', + cell: () => { + return statusComponent() + }, + }, + ]) + + const row = dom.getBodyRow(0)! + const firstCell = row.querySelector('td') + + expect(firstCell!.textContent).toEqual('Initial status') + + statusComponent.set(null) + fixture.detectChanges() + expect(firstCell!.matches(':empty')).toBe(true) + + statusComponent.set( + flexRenderComponent(TestBadgeComponent, { + inputs: { status: 'Updated status' }, + }), + ) + fixture.detectChanges() + const el = firstCell!.firstElementChild as HTMLElement + expect(el.tagName).toEqual('APP-TEST-BADGE') + expect(el.textContent).toEqual('Updated status') + }) + + test('Cell content always get the latest context value', async () => { + const contextCaptor = vi.fn() + + const tableState = signal>>({ + rowSelection: {}, + expanded: {}, + pagination: { + pageIndex: 0, + pageSize: 10, + }, + }) + + @Component({ + template: ``, + }) + class EmptyCell {} + + const { dom, fixture } = createTestTable( + defaultData, + [ + { + id: 'cell', + header: 'Header', + cell: (context) => { + contextCaptor(context) + return flexRenderComponent(EmptyCell) + }, + }, + ], + () => ({ + state: tableState(), + onStateChange: (updater) => { + return typeof updater === 'function' + ? tableState.update(updater as any) + : tableState.set(updater) + }, + }), + ) + + const latestCall = () => + contextCaptor.mock.lastCall![0] as CellContext< + typeof stockFeatures, + TestData, + any + > + // TODO: As a perf improvement, check in a future if we can avoid evaluating the cell twice during the first render. + // This is caused due to the registration of the initial effect and the first #getContentValue() to detect the + // type of content to render. + expect(contextCaptor).toHaveBeenCalledTimes(2) + + expect(latestCall().row.getIsExpanded()).toEqual(false) + expect(latestCall().row.getIsSelected()).toEqual(false) + + fixture.componentInstance.table.getRow('0').toggleSelected(true) + dom.clickTriggerCdButton2() + expect(contextCaptor).toHaveBeenCalledTimes(3) + expect(latestCall().row.getIsSelected()).toEqual(true) + + fixture.componentInstance.table.getRow('0').toggleSelected(false) + fixture.componentInstance.table.getRow('0').toggleExpanded(true) + dom.clickTriggerCdButton2() + expect(contextCaptor).toHaveBeenCalledTimes(4) + expect(latestCall().row.getIsSelected()).toEqual(false) + expect(latestCall().row.getIsExpanded()).toEqual(true) + }) + + test('Support cell with component output', async () => { + const columns = [ + { + id: 'expand', + header: 'Expand', + cell: ({ row }) => { + return flexRenderComponent(ExpandCell, { + inputs: { expanded: row.getIsExpanded() }, + outputs: { toggleExpand: () => row.toggleExpanded() }, + }) + }, + }, + ] satisfies Array> + + @Component({ + selector: 'expand-cell', + template: ` + + `, + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + }) + class ExpandCell { + readonly expanded = input(false) + readonly toggleExpand = output() + } + + @Component({ + template: ` + + + @for (row of table.getRowModel().rows; track row.id) { + + @for (cell of row.getVisibleCells(); track cell.id) { + + } + + } + +
+ + + +
+ `, + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + selector: 'app-table-test', + imports: [FlexRender], + }) + class TestComponent { + readonly expandState = signal({}) + + readonly table = injectTable(() => { + return { + columns: columns, + data: defaultData, + _features: stockFeatures, + _rowModels: { + coreRowModel: createCoreRowModel(), + }, + state: { expanded: this.expandState() }, + onExpandedChange: (updaterOrValue) => { + typeof updaterOrValue === 'function' + ? this.expandState.update(updaterOrValue) + : this.expandState.set(updaterOrValue) + }, + } + }) + } + + const fixture = TestBed.createComponent(TestComponent) + fixture.detectChanges() + + const expandCell = fixture.debugElement.query(By.directive(ExpandCell)) + expect(fixture.componentInstance.expandState()).toEqual({}) + expect(expandCell.componentInstance.expanded()).toEqual(false) + + const buttonEl = expandCell.query(By.css('button')) + expect(buttonEl.nativeElement.innerHTML).toEqual(' Not expanded ') + buttonEl.triggerEventHandler('click') + + expect(fixture.componentInstance.expandState()).toEqual({ + '0': true, + }) + fixture.detectChanges() + expect(buttonEl.nativeElement.innerHTML).toEqual(' Expanded ') + }) +}) + +function expectPrimitiveValueIs( + cell: HTMLTableCellElement | null, + value: unknown, +) { + expect(cell).not.toBeNull() + expect(cell!.matches(':empty')).toBe(false) + const span = cell!.querySelector('span')! + expect(span).toBeDefined() + expect(span.innerHTML).toEqual(value) +} + +type TestData = { id: string; title: string } + +export function createTestTable( + data: Array, + columns: Array>, + optionsFn?: () => Partial>, +) { + @Component({ + template: ` + + + @for (headerGroup of table.getHeaderGroups(); track headerGroup.id) { + + @for (header of headerGroup.headers; track header.id) { + @if (!header.isPlaceholder) { + + } + } + + } + + + @for (row of table.getRowModel().rows; track row.id) { + + @for (cell of row.getVisibleCells(); track cell.id) { + + } + + } + +
+ + + +
+ + + +
+ + + + + + {{ count() }} + `, + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + selector: 'app-table-test', + imports: [FlexRender], + }) + class TestComponent { + readonly columns = + input>>(columns) + readonly data = input>(data) + + readonly count = signal(0) + + readonly table = injectTable(() => { + return { + ...(optionsFn?.() ?? {}), + _features: stockFeatures, + _rowModels: {}, + columns: this.columns(), + data: this.data(), + } + }) + } + + const fixture = TestBed.createComponent(TestComponent) + + fixture.detectChanges() + + return { + fixture, + dom: { + clickTriggerCdButton() { + const btn = fixture.debugElement.query(By.css('button')) + btn.triggerEventHandler('click', null) + fixture.detectChanges() + }, + clickTriggerCdButton2() { + const btn = fixture.debugElement.queryAll(By.css('button'))[1]! + btn.triggerEventHandler('click', null) + fixture.detectChanges() + }, + getTable() { + return fixture.nativeElement.querySelector('table') as HTMLTableElement + }, + getHeader() { + return this.getTable().querySelector('thead') as HTMLTableSectionElement + }, + getHeaderRow() { + return this.getHeader().querySelector('tr') as HTMLTableRowElement + }, + getBody() { + return this.getTable().querySelector('tbody') as HTMLTableSectionElement + }, + getBodyRow(index: number) { + return this.getBody().rows.item(index) + }, + }, + } +} + +@Component({ + selector: 'app-test-badge', + template: `{{ status() }} `, + standalone: true, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +class TestBadgeComponent { + readonly context = + injectFlexRenderContext>() + + readonly status = input.required() +} diff --git a/packages/angular-table/tests/flex-render.test.ts b/packages/angular-table/tests/flex-render.test.ts index 0f1fe04a8b..b226780802 100644 --- a/packages/angular-table/tests/flex-render.test.ts +++ b/packages/angular-table/tests/flex-render.test.ts @@ -1,15 +1,13 @@ -import { Component, ViewChild, input } from '@angular/core' -import { TestBed } from '@angular/core/testing' +import { Component, input, type TemplateRef, ViewChild } from '@angular/core' +import { type ComponentFixture, TestBed } from '@angular/core/testing' import { createColumnHelper } from '@tanstack/table-core' import { describe, expect, test } from 'vitest' import { - FlexRenderComponent, FlexRenderDirective, injectFlexRenderContext, } from '../src/flex-render' import { setFixtureSignalInput, setFixtureSignalInputs } from './test-utils' -import type { ComponentFixture } from '@angular/core/testing' -import type { TemplateRef } from '@angular/core' +import { flexRenderComponent } from '../src/flex-render/flex-render-component' interface Data { id: string @@ -109,12 +107,16 @@ describe('FlexRenderDirective', () => { } const fixture = TestBed.createComponent(TestRenderComponent) - setFixtureSignalInputs(fixture, { - content: () => new FlexRenderComponent(FakeComponent), - context: { - property: 'Context value', + setFixtureSignalInputs( + fixture, + { + content: () => flexRenderComponent(FakeComponent), + context: { + property: 'Context value', + }, }, - }) + { detectChanges: true }, + ) expect(fixture.nativeElement.textContent).toEqual('Context value') @@ -126,13 +128,15 @@ describe('FlexRenderDirective', () => { // Skip for now, test framework (using ComponentRef.setInput) cannot recognize signal inputs // as component inputs - test.skip('should render custom components', () => { + test('should render custom components', () => { @Component({ template: `{{ row().property }}`, standalone: true, }) class FakeComponent { row = input.required<{ property: string }>() + + constructor() {} } const fixture = TestBed.createComponent(TestRenderComponent) diff --git a/packages/angular-table/tests/injectTable.test.ts b/packages/angular-table/tests/injectTable.test.ts index 61db8e8ed8..b80fc70c98 100644 --- a/packages/angular-table/tests/injectTable.test.ts +++ b/packages/angular-table/tests/injectTable.test.ts @@ -1,13 +1,26 @@ -import { describe, expect, test } from 'vitest' -import { Component, input, isSignal, signal, untracked } from '@angular/core' +import { describe, expect, test, vi } from 'vitest' +import { + Component, + effect, + input, + isSignal, + signal, + untracked, +} from '@angular/core' import { TestBed } from '@angular/core/testing' -import { ColumnDef, stockFeatures } from '@tanstack/table-core' +import { + ColumnDef, + createCoreRowModel, + createPaginatedRowModel, + stockFeatures, +} from '@tanstack/table-core' import { injectTable } from '../src/injectTable' import { experimentalReactivity_testShouldBeComputedProperty, - setSignalInputs, + setFixtureSignalInputs, testShouldBeComputedProperty, } from './test-utils' +import { type PaginationState, RowModel } from '../src' describe('injectTable', () => { test('should render with required signal inputs', () => { @@ -27,7 +40,7 @@ describe('injectTable', () => { } const fixture = TestBed.createComponent(FakeComponent) - setSignalInputs(fixture.componentInstance, { + setFixtureSignalInputs(fixture, { data: [], }) @@ -37,7 +50,7 @@ describe('injectTable', () => { describe('Proxy table', () => { type Data = { id: string; title: string } const data = signal>([{ id: '1', title: 'Title' }]) - const columns: Array> = [ + const columns: Array> = [ { id: 'id', header: 'Id', cell: (context) => context.getValue() }, { id: 'title', header: 'Title', cell: (context) => context.getValue() }, ] @@ -73,13 +86,65 @@ describe('injectTable', () => { const tableProperty = table[name as keyof typeof table] expect(isSignal(tableProperty)).toEqual(expected) }) + + test('Row model is reactive', () => { + const coreRowModelFn = + vi.fn<(model: RowModel) => void>() + const rowModelFn = + vi.fn<(model: RowModel) => void>() + const pagination = signal({ + pageSize: 5, + pageIndex: 0, + }) + const data = Array.from({ length: 10 }, (_, i) => ({ + id: String(i), + title: `Title ${i}`, + })) + + TestBed.runInInjectionContext(() => { + const table = injectTable(() => ({ + data, + columns: columns, + _features: stockFeatures, + _rowModels: { + coreRowModel: createCoreRowModel(), + paginatedRowModel: createPaginatedRowModel(), + }, + getRowId: (row) => row.id, + state: { + pagination: pagination(), + }, + onPaginationChange: (updater) => { + typeof updater === 'function' + ? pagination.update(updater) + : pagination.set(updater) + }, + })) + + effect(() => coreRowModelFn(table.getCoreRowModel())) + effect(() => rowModelFn(table.getRowModel())) + + TestBed.flushEffects() + + pagination.set({ pageIndex: 0, pageSize: 3 }) + + TestBed.flushEffects() + }) + + expect(coreRowModelFn).toHaveBeenCalledOnce() + expect(coreRowModelFn.mock.calls[0]![0].rows.length).toEqual(10) + + expect(rowModelFn).toHaveBeenCalledTimes(2) + expect(rowModelFn.mock.calls[0]![0].rows.length).toEqual(5) + expect(rowModelFn.mock.calls[1]![0].rows.length).toEqual(3) + }) }) }) describe('injectTable - Experimental reactivity', () => { type Data = { id: string; title: string } const data = signal>([{ id: '1', title: 'Title' }]) - const columns: Array> = [ + const columns: Array> = [ { id: 'id', header: 'Id', cell: (context) => context.getValue() }, { id: 'title', header: 'Title', cell: (context) => context.getValue() }, ] diff --git a/packages/angular-table/tests/lazy-init.test.ts b/packages/angular-table/tests/lazy-init.test.ts index 671a873137..0806e12cc8 100644 --- a/packages/angular-table/tests/lazy-init.test.ts +++ b/packages/angular-table/tests/lazy-init.test.ts @@ -70,7 +70,7 @@ describe('lazyInit', () => { value.data() - await flushQueue() + TestBed.flushEffects() expect(outerSignal).toBeDefined() diff --git a/packages/angular-table/tests/test-setup.ts b/packages/angular-table/tests/test-setup.ts index 2793334574..ad4d4f57be 100644 --- a/packages/angular-table/tests/test-setup.ts +++ b/packages/angular-table/tests/test-setup.ts @@ -1,12 +1,21 @@ -import '@analogjs/vite-plugin-angular/setup-vitest' +import '@analogjs/vitest-angular/setup-snapshots' import '@testing-library/jest-dom/vitest' import { BrowserDynamicTestingModule, platformBrowserDynamicTesting, } from '@angular/platform-browser-dynamic/testing' import { getTestBed } from '@angular/core/testing' +import { + NgModule, + provideExperimentalZonelessChangeDetection, +} from '@angular/core' + +@NgModule({ + providers: [provideExperimentalZonelessChangeDetection()], +}) +class TestModule {} getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, + [BrowserDynamicTestingModule, TestModule], platformBrowserDynamicTesting(), ) diff --git a/packages/angular-table/tests/test-utils.ts b/packages/angular-table/tests/test-utils.ts index fdaeb58e56..5dd8c53191 100644 --- a/packages/angular-table/tests/test-utils.ts +++ b/packages/angular-table/tests/test-utils.ts @@ -8,27 +8,14 @@ type ToSignalInputUpdatableMap = { : never]: T[K] extends InputSignal ? Value : never } -/** - * Set required signal input value to component fixture - * @see https://github.com/angular/angular/issues/54013 - */ -export function setSignalInputs>( - component: T, - inputs: ToSignalInputUpdatableMap, -) { - for (const inputKey in inputs) { - if (componentHasSignalInputProperty(component, inputKey)) { - signalSetFn(component[inputKey][SIGNAL], inputs[inputKey]) - } - } -} - export function setFixtureSignalInputs>( componentFixture: ComponentFixture, inputs: ToSignalInputUpdatableMap, options: { detectChanges: boolean } = { detectChanges: true }, ) { - setSignalInputs(componentFixture.componentInstance, inputs) + for (const inputKey in inputs) { + componentFixture.componentRef.setInput(inputKey, inputs[inputKey]) + } if (options.detectChanges) { componentFixture.detectChanges() } @@ -43,7 +30,7 @@ export function setFixtureSignalInput< inputName: InputName, value: InputMaps[InputName], ) { - setSignalInputs(componentFixture.componentInstance, { + setFixtureSignalInputs(componentFixture, { [inputName]: value, } as ToSignalInputUpdatableMap) } @@ -86,7 +73,7 @@ export const testShouldBeComputedProperty = ( testObj: any, propertyName: string, ) => { - if (propertyName.endsWith('Handler') || propertyName.endsWith('Model')) { + if (propertyName.endsWith('Handler')) { return false } diff --git a/packages/angular-table/tsconfig.test.json b/packages/angular-table/tsconfig.test.json new file mode 100644 index 0000000000..caf761f734 --- /dev/null +++ b/packages/angular-table/tsconfig.test.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2015", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": ["ES2022", "dom"], + "types": ["vitest/globals"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + }, + "include": ["src", "tests"] +} diff --git a/packages/angular-table/vite.config.ts b/packages/angular-table/vite.config.ts index 1ba318b695..f1dc9d9158 100644 --- a/packages/angular-table/vite.config.ts +++ b/packages/angular-table/vite.config.ts @@ -1,17 +1,23 @@ +import * as path from 'node:path' import { defineConfig } from 'vitest/config' +import angular from '@analogjs/vite-plugin-angular' import packageJson from './package.json' +const tsconfigPath = path.join(import.meta.dirname, 'tsconfig.test.json') +const testDirPath = path.join(import.meta.dirname, 'tests') +const angularPlugin = angular({ tsconfig: tsconfigPath, jit: true }) + export default defineConfig({ + plugins: [angularPlugin], test: { name: packageJson.name, - dir: './tests', watch: false, + dir: testDirPath, + pool: 'threads', environment: 'jsdom', - setupFiles: ['./tests/test-setup.ts'], + setupFiles: [path.join(testDirPath, 'test-setup.ts')], globals: true, - typecheck: { - enabled: true, - tsconfig: './tsconfig.json', - }, + reporters: 'default', + disableConsoleIntercept: true, }, }) diff --git a/packages/lit-table/src/TableController.ts b/packages/lit-table/src/TableController.ts index 96477665fd..27be45fc6d 100644 --- a/packages/lit-table/src/TableController.ts +++ b/packages/lit-table/src/TableController.ts @@ -1,9 +1,3 @@ -import { - constructTable, - coreFeatures, - getInitialTableState, - isFunction, -} from '@tanstack/table-core' import type { RowData, Table, @@ -12,6 +6,12 @@ import type { TableState, Updater, } from '@tanstack/table-core' +import { + constructTable, + coreFeatures, + getInitialTableState, + isFunction, +} from '@tanstack/table-core' import type { ReactiveController, ReactiveControllerHost } from 'lit' export class TableController< @@ -50,6 +50,8 @@ export class TableController< this._table.setOptions((prev) => ({ ...prev, state: { ...this._state, ...tableOptions.state }, + data: tableOptions.data, + columns: tableOptions.columns, onStateChange: (updater: Updater>) => { this._state = isFunction(updater) ? updater(this._state!) : updater this.host.requestUpdate() diff --git a/packages/lit-table/src/flexRender.ts b/packages/lit-table/src/flexRender.ts index a6c462e1c1..eb21d6fff4 100644 --- a/packages/lit-table/src/flexRender.ts +++ b/packages/lit-table/src/flexRender.ts @@ -1,7 +1,7 @@ import type { TemplateResult } from 'lit' export function flexRender( - Comp: ((_props: TProps) => string) | string | TemplateResult | undefined, + Comp: ((props: TProps) => string) | string | TemplateResult | undefined, props: TProps, ): TemplateResult | string | null { if (!Comp) return null diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2f9698a280..640bb2eb2d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 11.1.6(size-limit@11.1.6) '@tanstack/config': specifier: 0.14.2 - version: 0.14.2(@types/node@22.10.2)(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2))(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 0.14.2(@types/node@22.10.2)(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2))(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 @@ -61,34 +61,34 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vitest: specifier: ^2.1.8 - version: 2.1.8(@types/node@22.10.2)(jsdom@25.0.1)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 2.1.8(@types/node@22.10.2)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/angular/basic: dependencies: '@angular/common': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/forms': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@angular/router': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) '@tanstack/angular-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/angular-table @@ -100,14 +100,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3) + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) '@angular/cli': - specifier: ^19.0.6 - version: 19.0.6(@types/node@22.10.10)(chokidar@4.0.3) + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^19.0.5 - version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) '@types/jasmine': specifier: ~5.1.5 version: 5.1.5 @@ -124,23 +124,23 @@ importers: examples/angular/column-ordering: dependencies: '@angular/common': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/forms': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@tanstack/angular-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/angular-table @@ -152,14 +152,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3) + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) '@angular/cli': - specifier: ^19.0.6 - version: 19.0.6(@types/node@22.10.10)(chokidar@4.0.3) + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^19.0.5 - version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -170,26 +170,26 @@ importers: examples/angular/column-pinning: dependencies: '@angular/animations': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/common': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/forms': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -204,14 +204,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3) + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) '@angular/cli': - specifier: ^19.0.6 - version: 19.0.6(@types/node@22.10.10)(chokidar@4.0.3) + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^19.0.5 - version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -222,23 +222,23 @@ importers: examples/angular/column-pinning-sticky: dependencies: '@angular/common': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/forms': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -253,14 +253,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3) + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) '@angular/cli': - specifier: ^19.0.6 - version: 19.0.6(@types/node@22.10.10)(chokidar@4.0.3) + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^19.0.5 - version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -268,26 +268,102 @@ importers: specifier: 5.6.3 version: 5.6.3 + examples/angular/column-resizing-performant: + dependencies: + '@angular/animations': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/common': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/compiler': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/core': + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/forms': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@angular/platform-browser': + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/platform-browser-dynamic': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) + '@angular/router': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@faker-js/faker': + specifier: ^8.4.1 + version: 8.4.1 + '@tanstack/angular-table': + specifier: ^9.0.0-alpha.10 + version: link:../../../packages/angular-table + rxjs: + specifier: ~7.8.1 + version: 7.8.1 + zone.js: + specifier: ~0.15.0 + version: 0.15.0 + devDependencies: + '@angular-devkit/build-angular': + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(tsx@4.19.2)(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(yaml@2.6.1) + '@angular/cli': + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) + '@angular/compiler-cli': + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + '@types/jasmine': + specifier: ~5.1.4 + version: 5.1.5 + jasmine-core: + specifier: ~5.1.2 + version: 5.1.2 + karma: + specifier: ~6.4.3 + version: 6.4.4 + karma-chrome-launcher: + specifier: ~3.2.0 + version: 3.2.0 + karma-coverage: + specifier: ~2.2.1 + version: 2.2.1 + karma-jasmine: + specifier: ~5.1.0 + version: 5.1.0(karma@6.4.4) + karma-jasmine-html-reporter: + specifier: ~2.1.0 + version: 2.1.0(jasmine-core@5.1.2)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) + tslib: + specifier: ^2.6.2 + version: 2.8.1 + typescript: + specifier: 5.7.3 + version: 5.7.3 + examples/angular/column-visibility: dependencies: '@angular/common': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/forms': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@tanstack/angular-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/angular-table @@ -299,14 +375,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3) + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) '@angular/cli': - specifier: ^19.0.6 - version: 19.0.6(@types/node@22.10.10)(chokidar@4.0.3) + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^19.0.5 - version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -314,26 +390,157 @@ importers: specifier: 5.6.3 version: 5.6.3 + examples/angular/editable: + dependencies: + '@angular/animations': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/common': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/compiler': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/core': + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/forms': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@angular/platform-browser': + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/platform-browser-dynamic': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) + '@angular/router': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@faker-js/faker': + specifier: ^8.4.1 + version: 8.4.1 + '@tanstack/angular-table': + specifier: ^9.0.0-alpha.10 + version: link:../../../packages/angular-table + rxjs: + specifier: ~7.8.1 + version: 7.8.1 + zone.js: + specifier: ~0.15.0 + version: 0.15.0 + devDependencies: + '@angular-devkit/build-angular': + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(tsx@4.19.2)(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(yaml@2.6.1) + '@angular/cli': + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) + '@angular/compiler-cli': + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + '@types/jasmine': + specifier: ~5.1.4 + version: 5.1.5 + jasmine-core: + specifier: ~5.1.2 + version: 5.1.2 + karma: + specifier: ~6.4.3 + version: 6.4.4 + karma-chrome-launcher: + specifier: ~3.2.0 + version: 3.2.0 + karma-coverage: + specifier: ~2.2.1 + version: 2.2.1 + karma-jasmine: + specifier: ~5.1.0 + version: 5.1.0(karma@6.4.4) + karma-jasmine-html-reporter: + specifier: ~2.1.0 + version: 2.1.0(jasmine-core@5.1.2)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) + tslib: + specifier: ^2.6.2 + version: 2.8.1 + typescript: + specifier: 5.7.3 + version: 5.7.3 + + examples/angular/expanding: + dependencies: + '@angular/animations': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/common': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/compiler': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/core': + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/forms': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@angular/platform-browser': + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/platform-browser-dynamic': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) + '@angular/router': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@faker-js/faker': + specifier: ^8.4.1 + version: 8.4.1 + '@tanstack/angular-table': + specifier: ^9.0.0-alpha.10 + version: link:../../../packages/angular-table + rxjs: + specifier: ~7.8.1 + version: 7.8.1 + zone.js: + specifier: ~0.15.0 + version: 0.15.0 + devDependencies: + '@angular-devkit/build-angular': + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(tsx@4.19.2)(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(yaml@2.6.1) + '@angular/cli': + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) + '@angular/compiler-cli': + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + tslib: + specifier: ^2.6.2 + version: 2.8.1 + typescript: + specifier: 5.7.3 + version: 5.7.3 + examples/angular/filters: dependencies: '@angular/common': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/forms': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -351,14 +558,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3) + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) '@angular/cli': - specifier: ^19.0.6 - version: 19.0.6(@types/node@22.10.10)(chokidar@4.0.3) + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^19.0.5 - version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) typescript: specifier: 5.6.3 version: 5.6.3 @@ -366,23 +573,23 @@ importers: examples/angular/grouping: dependencies: '@angular/common': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/forms': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -397,14 +604,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3) + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) '@angular/cli': - specifier: ^19.0.6 - version: 19.0.6(@types/node@22.10.10)(chokidar@4.0.3) + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^19.0.5 - version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -412,26 +619,105 @@ importers: specifier: 5.6.3 version: 5.6.3 + examples/angular/row-dnd: + dependencies: + '@angular/animations': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/cdk': + specifier: ^17.3.10 + version: 17.3.10(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/common': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/compiler': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/core': + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/forms': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@angular/platform-browser': + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/platform-browser-dynamic': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) + '@angular/router': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@faker-js/faker': + specifier: ^8.4.1 + version: 8.4.1 + '@tanstack/angular-table': + specifier: ^9.0.0-alpha.10 + version: link:../../../packages/angular-table + rxjs: + specifier: ~7.8.1 + version: 7.8.1 + zone.js: + specifier: ~0.15.0 + version: 0.15.0 + devDependencies: + '@angular-devkit/build-angular': + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(tsx@4.19.2)(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(yaml@2.6.1) + '@angular/cli': + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) + '@angular/compiler-cli': + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + '@types/jasmine': + specifier: ~5.1.4 + version: 5.1.5 + jasmine-core: + specifier: ~5.1.2 + version: 5.1.2 + karma: + specifier: ~6.4.3 + version: 6.4.4 + karma-chrome-launcher: + specifier: ~3.2.0 + version: 3.2.0 + karma-coverage: + specifier: ~2.2.1 + version: 2.2.1 + karma-jasmine: + specifier: ~5.1.0 + version: 5.1.0(karma@6.4.4) + karma-jasmine-html-reporter: + specifier: ~2.1.0 + version: 2.1.0(jasmine-core@5.1.2)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) + tslib: + specifier: ^2.6.2 + version: 2.8.1 + typescript: + specifier: 5.7.3 + version: 5.7.3 + examples/angular/row-selection: dependencies: '@angular/common': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/forms': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -449,14 +735,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3) + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) '@angular/cli': - specifier: ^19.0.6 - version: 19.0.6(@types/node@22.10.10)(chokidar@4.0.3) + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^19.0.5 - version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) typescript: specifier: 5.6.3 version: 5.6.3 @@ -464,26 +750,26 @@ importers: examples/angular/row-selection-signal: dependencies: '@angular/animations': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/common': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/forms': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -501,14 +787,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3) + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) '@angular/cli': - specifier: ^19.0.6 - version: 19.0.6(@types/node@22.10.10)(chokidar@4.0.3) + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^19.0.5 - version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) typescript: specifier: 5.6.3 version: 5.6.3 @@ -516,20 +802,20 @@ importers: examples/angular/signal-input: dependencies: '@angular/common': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.5 - version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -544,14 +830,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3) + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1) '@angular/cli': - specifier: ^19.0.6 - version: 19.0.6(@types/node@22.10.10)(chokidar@4.0.3) + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^19.0.5 - version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -559,6 +845,61 @@ importers: specifier: 5.6.3 version: 5.6.3 + examples/angular/sub-components: + dependencies: + '@angular/animations': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/common': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/compiler': + specifier: ^19.1.4 + version: 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/core': + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/forms': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@angular/platform-browser': + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/platform-browser-dynamic': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) + '@angular/router': + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1) + '@faker-js/faker': + specifier: ^9.3.0 + version: 9.3.0 + '@tanstack/angular-table': + specifier: ^9.0.0-alpha.10 + version: link:../../../packages/angular-table + rxjs: + specifier: ~7.8.1 + version: 7.8.1 + zone.js: + specifier: ~0.15.0 + version: 0.15.0 + devDependencies: + '@angular-devkit/build-angular': + specifier: ^19.1.5 + version: 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(tsx@4.19.2)(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(yaml@2.6.1) + '@angular/cli': + specifier: ^19.1.5 + version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) + '@angular/compiler-cli': + specifier: ^19.1.4 + version: 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + tslib: + specifier: ^2.6.2 + version: 2.8.1 + typescript: + specifier: 5.7.3 + version: 5.7.3 + examples/lit/basic: dependencies: '@tanstack/lit-table': @@ -588,7 +929,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/lit/column-sizing: dependencies: @@ -610,7 +951,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/lit/filters: dependencies: @@ -632,7 +973,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/lit/row-selection: dependencies: @@ -654,7 +995,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/lit/sorting: dependencies: @@ -676,7 +1017,29 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + + examples/lit/sorting-dynamic-data: + dependencies: + '@faker-js/faker': + specifier: ^8.4.1 + version: 8.4.1 + '@tanstack/lit-table': + specifier: ^8.21.1 + version: 8.21.1(lit@3.2.1) + lit: + specifier: ^3.1.4 + version: 3.2.1 + devDependencies: + '@rollup/plugin-replace': + specifier: ^5.0.7 + version: 5.0.7(rollup@4.32.0) + typescript: + specifier: 5.4.5 + version: 5.4.5 + vite: + specifier: ^5.3.2 + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/lit/virtualized-rows: dependencies: @@ -701,7 +1064,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/preact/basic: dependencies: @@ -714,13 +1077,13 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.9.3 - version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/preact/sorting: dependencies: @@ -736,13 +1099,13 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.9.3 - version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/qwik/basic: dependencies: @@ -752,7 +1115,7 @@ importers: devDependencies: '@builder.io/qwik': specifier: ^1.11.0 - version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) serve: specifier: ^14.2.4 version: 14.2.4 @@ -761,7 +1124,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/qwik/filters: dependencies: @@ -774,7 +1137,7 @@ importers: devDependencies: '@builder.io/qwik': specifier: ^1.11.0 - version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -786,7 +1149,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/qwik/row-selection: dependencies: @@ -796,7 +1159,7 @@ importers: devDependencies: '@builder.io/qwik': specifier: ^1.11.0 - version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -808,7 +1171,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/qwik/sorting: dependencies: @@ -818,7 +1181,7 @@ importers: devDependencies: '@builder.io/qwik': specifier: ^1.11.0 - version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -830,7 +1193,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/basic: dependencies: @@ -855,13 +1218,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/basic-table-helper: dependencies: @@ -886,13 +1249,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-dnd: dependencies: @@ -932,13 +1295,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-groups: dependencies: @@ -963,13 +1326,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-ordering: dependencies: @@ -997,13 +1360,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-pinning: dependencies: @@ -1031,13 +1394,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-pinning-split: dependencies: @@ -1065,13 +1428,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-pinning-sticky: dependencies: @@ -1099,13 +1462,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-resizing: dependencies: @@ -1130,13 +1493,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-resizing-performant: dependencies: @@ -1164,13 +1527,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-sizing: dependencies: @@ -1195,13 +1558,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-visibility: dependencies: @@ -1226,13 +1589,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/custom-features: dependencies: @@ -1260,13 +1623,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/editable-data: dependencies: @@ -1294,13 +1657,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/expanding: dependencies: @@ -1328,13 +1691,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/filters: dependencies: @@ -1365,13 +1728,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/filters-faceted: dependencies: @@ -1402,13 +1765,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/filters-fuzzy: dependencies: @@ -1439,13 +1802,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/full-width-resizable-table: dependencies: @@ -1473,13 +1836,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/full-width-table: dependencies: @@ -1507,13 +1870,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/fully-controlled: dependencies: @@ -1541,13 +1904,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/grouping: dependencies: @@ -1575,13 +1938,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/pagination: dependencies: @@ -1609,13 +1972,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/pagination-controlled: dependencies: @@ -1646,13 +2009,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/query-router-search-params: dependencies: @@ -1680,7 +2043,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@tanstack/router-vite-plugin': specifier: ^1.86.0 - version: 1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2)) '@types/react': specifier: ^19.0.1 version: 19.0.2 @@ -1689,13 +2052,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/row-dnd: dependencies: @@ -1735,13 +2098,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/row-pinning: dependencies: @@ -1769,13 +2132,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/row-selection: dependencies: @@ -1803,13 +2166,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/sorting: dependencies: @@ -1837,13 +2200,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/sub-components: dependencies: @@ -1871,13 +2234,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/virtualized-columns: dependencies: @@ -1908,13 +2271,50 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + + examples/react/virtualized-columns-experimental: + dependencies: + '@faker-js/faker': + specifier: ^8.4.1 + version: 8.4.1 + '@tanstack/react-table': + specifier: ^8.20.6 + version: 8.20.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-virtual': + specifier: ^3.12.0 + version: 3.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + devDependencies: + '@rollup/plugin-replace': + specifier: ^5.0.7 + version: 5.0.7(rollup@4.32.0) + '@types/react': + specifier: ^18.3.3 + version: 18.3.18 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.5(@types/react@18.3.18) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + typescript: + specifier: 5.4.5 + version: 5.4.5 + vite: + specifier: ^5.3.2 + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/virtualized-infinite-scrolling: dependencies: @@ -1948,13 +2348,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/react/virtualized-rows: dependencies: @@ -1985,13 +2385,50 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + + examples/react/virtualized-rows-experimental: + dependencies: + '@faker-js/faker': + specifier: ^8.4.1 + version: 8.4.1 + '@tanstack/react-table': + specifier: ^8.20.6 + version: 8.20.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-virtual': + specifier: ^3.12.0 + version: 3.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + devDependencies: + '@rollup/plugin-replace': + specifier: ^5.0.7 + version: 5.0.7(rollup@4.32.0) + '@types/react': + specifier: ^18.3.3 + version: 18.3.18 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.5(@types/react@18.3.18) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + typescript: + specifier: 5.4.5 + version: 5.4.5 + vite: + specifier: ^5.3.2 + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/solid/basic: dependencies: @@ -2007,10 +2444,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/basic-table-helper: dependencies: @@ -2026,10 +2463,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/column-groups: dependencies: @@ -2045,10 +2482,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/column-ordering: dependencies: @@ -2067,10 +2504,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/column-visibility: dependencies: @@ -2086,10 +2523,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/filters: dependencies: @@ -2111,10 +2548,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/filters-faceted: dependencies: @@ -2136,10 +2573,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/sorting: dependencies: @@ -2158,10 +2595,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) examples/svelte/basic: devDependencies: @@ -2170,7 +2607,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2188,7 +2625,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/basic-snippets: devDependencies: @@ -2197,7 +2634,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 5.0.3(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2209,13 +2646,13 @@ importers: version: 5.19.3 svelte-check: specifier: ^4.1.4 - version: 4.1.4(picomatch@4.0.2)(svelte@5.19.3)(typescript@5.7.3) + version: 4.1.4(picomatch@4.0.2)(svelte@5.19.3)(typescript@5.6.3) typescript: specifier: 5.6.3 - version: 5.7.3 + version: 5.6.3 vite: specifier: ^5.4.11 - version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/basic-table-helper: devDependencies: @@ -2224,7 +2661,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2242,7 +2679,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/column-groups: devDependencies: @@ -2251,7 +2688,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2269,7 +2706,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/column-ordering: devDependencies: @@ -2281,7 +2718,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2299,7 +2736,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/column-pinning: devDependencies: @@ -2311,7 +2748,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2329,7 +2766,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/column-visibility: devDependencies: @@ -2338,7 +2775,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2356,7 +2793,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/filtering: devDependencies: @@ -2368,7 +2805,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/match-sorter-utils': specifier: ^9.0.0-alpha.4 version: link:../../../packages/match-sorter-utils @@ -2389,7 +2826,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/sorting: devDependencies: @@ -2401,7 +2838,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2419,7 +2856,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/vanilla/basic: dependencies: @@ -2441,7 +2878,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/vanilla/pagination: dependencies: @@ -2466,7 +2903,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/vanilla/sorting: dependencies: @@ -2491,7 +2928,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) examples/vue/basic: dependencies: @@ -2507,13 +2944,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -2535,13 +2972,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -2563,13 +3000,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -2591,13 +3028,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -2619,13 +3056,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -2647,13 +3084,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -2675,16 +3112,16 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^4.1.1 - version: 4.1.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 4.1.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -2706,13 +3143,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -2734,13 +3171,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -2765,13 +3202,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -2786,20 +3223,26 @@ importers: version: 2.8.1 devDependencies: '@analogjs/vite-plugin-angular': - specifier: ^1.10.1 - version: 1.10.3(@angular-devkit/build-angular@17.3.8(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@types/express@4.17.21)(@types/node@22.10.10)(ng-packagr@19.0.1(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(typescript@5.7.3))(@angular/build@19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(less@4.2.0)(postcss@8.4.35)(terser@5.29.1)(typescript@5.7.3)) + specifier: ^1.11.0 + version: 1.13.0(rgq6hujoid62bmeuzktk4sungq) + '@analogjs/vitest-angular': + specifier: ^1.11.0 + version: 1.13.0(@analogjs/vite-plugin-angular@1.13.0(rgq6hujoid62bmeuzktk4sungq))(vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@angular/core': - specifier: ^19.0.5 - version: 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^19.1.4 + version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^19.0.5 - version: 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + specifier: ^19.1.4 + version: 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^19.0.5 - version: 19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))) + specifier: ^19.1.4 + version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) ng-packagr: - specifier: ^19.0.1 - version: 19.0.1(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3) + specifier: ^19.1.2 + version: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3) + typescript: + specifier: ~5.6.3 + version: 5.6.3 packages/lit-table: dependencies: @@ -2825,7 +3268,7 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.9.3 - version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) preact: specifier: ^10.25.4 version: 10.25.4 @@ -2838,7 +3281,7 @@ importers: devDependencies: '@builder.io/qwik': specifier: ^1.11.0 - version: 1.12.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 1.12.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) packages/react-table: dependencies: @@ -2857,7 +3300,7 @@ importers: version: 19.0.2 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) eslint-plugin-react-hooks: specifier: ^5.1.0 version: 5.1.0(eslint@9.17.0(jiti@2.4.2)) @@ -2876,7 +3319,7 @@ importers: version: 1.9.3 vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) packages/svelte-table: dependencies: @@ -2889,7 +3332,7 @@ importers: version: 2.3.7(svelte@5.19.3)(typescript@5.7.3) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^2.46.1 version: 2.46.1(eslint@9.17.0(jiti@2.4.2))(svelte@5.19.3) @@ -2910,7 +3353,7 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3)) + version: 5.2.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3)) eslint-plugin-vue: specifier: ^9.32.0 version: 9.32.0(eslint@9.17.0(jiti@2.4.2)) @@ -2927,8 +3370,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@analogjs/vite-plugin-angular@1.10.3': - resolution: {integrity: sha512-3EWappJ5K6YopJpq2QRVim8qZgaTQJD0RB4G/DXo+Fg0s27BjDORiaeixqLHIwhUzzZ5FR2d1S7dgIi9zOg4sA==} + '@analogjs/vite-plugin-angular@1.13.0': + resolution: {integrity: sha512-h9XTXtbOKXyjrjFdy5qy40wam3vTttujWCpnoqygnopWaKS9T86LVnBFAW1p2yaBa7Wzz/BKDs2MtBBPWht8Sw==} peerDependencies: '@angular-devkit/build-angular': ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 '@angular/build': ^18.0.0 || ^19.0.0 @@ -2938,31 +3381,35 @@ packages: '@angular/build': optional: true - '@angular-devkit/architect@0.1703.8': - resolution: {integrity: sha512-lKxwG4/QABXZvJpqeSIn/kAwnY6MM9HdHZUV+o5o3UiTi+vO8rZApG4CCaITH3Bxebm7Nam7Xbk8RuukC5rq6g==} - engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@analogjs/vitest-angular@1.13.0': + resolution: {integrity: sha512-V3jLxXhiKSvSam15UGe9hVIfiX/Kx/XHXzFIlfHKlq0jUj/ys+WDdMuqaG4LrlhsxCjjDtISPGmW9uM+OMfO/A==} + peerDependencies: + '@analogjs/vite-plugin-angular': '*' + '@angular-devkit/architect': ^0.1500.0 || ^0.1600.0 || ^0.1700.0 || ^0.1800.0 || ^0.1900.0 || next + vitest: ^1.3.1 || ^2.0.0 || ^3.0.0 - '@angular-devkit/architect@0.1900.6': - resolution: {integrity: sha512-w11bAXQnNWBawTJfQPjvaTRrzrqsOUm9tK9WNvaia/xjiRFpmO0CfmKtn3axNSEJM8jb/czaNQrgTwG+TGc/8g==} + '@angular-devkit/architect@0.1901.5': + resolution: {integrity: sha512-zlRudZx34FkFZnSdaQCjxDleHwbQYNLdBFcLi+FBwt0UXqxmhbEIasK3l/3kCOC3QledrjUzVXgouji+OZ/WGQ==} 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'} - '@angular-devkit/build-angular@17.3.8': - resolution: {integrity: sha512-ixsdXggWaFRP7Jvxd0AMukImnePuGflT9Yy7NJ9/y0cL/k//S/3RnkQv5i411KzN+7D4RIbNkRGGTYeqH24zlg==} - engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/build-angular@19.1.5': + resolution: {integrity: sha512-ny7ktNOTxaEi6cS3V6XFP5bbJkgiMt3OUNUYLdfdbv4y6wolVlPVHKl+wb4xs6tgbnmx63+e6zGpoDMCRytgcg==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: - '@angular/compiler-cli': ^17.0.0 - '@angular/localize': ^17.0.0 - '@angular/platform-server': ^17.0.0 - '@angular/service-worker': ^17.0.0 - '@web/test-runner': ^0.18.0 + '@angular/compiler-cli': ^19.0.0 + '@angular/localize': ^19.0.0 + '@angular/platform-server': ^19.0.0 + '@angular/service-worker': ^19.0.0 + '@angular/ssr': ^19.1.5 + '@web/test-runner': ^0.19.0 browser-sync: ^3.0.2 jest: ^29.5.0 jest-environment-jsdom: ^29.5.0 karma: ^6.3.0 - ng-packagr: ^17.0.0 + ng-packagr: ^19.0.0 protractor: ^7.0.0 - tailwindcss: ^2.0.0 || ^3.0.0 - typescript: '>=5.2 <5.5' + tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 + typescript: '>=5.5 <5.8' peerDependenciesMeta: '@angular/localize': optional: true @@ -2970,6 +3417,8 @@ packages: optional: true '@angular/service-worker': optional: true + '@angular/ssr': + optional: true '@web/test-runner': optional: true browser-sync: @@ -2987,24 +3436,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.1703.8': - resolution: {integrity: sha512-9u6fl8VVOxcLOEMzrUeaybSvi9hSLSRucHnybneYrabsgreDo32tuy/4G8p6YAHQjpWEj9jvF9Um13ertdni5Q==} - engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/build-webpack@0.1901.5': + resolution: {integrity: sha512-UxEoF7F8L1GpH/N4me7VGe5ZPfxIiVHyhw5/ck3rcVbT6YD22/GYFGSJRGYP+D7LLTJ7OOQvfD6Bc/q62HhWvA==} + 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: ^4.0.0 - - '@angular-devkit/core@17.3.8': - resolution: {integrity: sha512-Q8q0voCGudbdCgJ7lXdnyaxKHbNQBARH68zPQV72WT8NWy+Gw/tys870i6L58NWbBaCJEUcIj/kb6KoakSRu+Q==} - engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - peerDependencies: - chokidar: ^3.5.2 - peerDependenciesMeta: - chokidar: - optional: true + webpack-dev-server: ^5.0.2 - '@angular-devkit/core@19.0.6': - resolution: {integrity: sha512-WUWJhzQDsovfMY6jtb9Ktz/5sJszsaErj+XV2aXab85f1OweI/Iv2urPZnJwUSilvVN5Ok/fy3IJ6SuihK4Ceg==} + '@angular-devkit/core@19.1.5': + resolution: {integrity: sha512-wGKV+i5mCM/Hd/3CsdrIYcVi5G2Wg/D5941bUDXivrbsqHfKVINxAkI3OI1eaD90VnAL8ICrQEoAhh6ni2Umkg==} 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 @@ -3012,18 +3452,18 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@19.0.6': - resolution: {integrity: sha512-R9hlHfAh1HKoIWgnYJlOEKhUezhTNl0fpUmHxG2252JSY5FLRxmYArTtJYYmbNdBbsBLNg3UHyM/GBPvJSA3NQ==} + '@angular-devkit/schematics@19.1.5': + resolution: {integrity: sha512-8QjOlO2CktcTT0TWcaABea2xSePxoPKaZu96+6gc8oZzj/y8DbdGiO9mRvIac9+m4hiZI41Cqm1W+yMsCzYMkA==} 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'} - '@angular/animations@19.0.5': - resolution: {integrity: sha512-HCOF2CrhUvjoZWusd4nh32VOxpUrg6bV+3Z8Q36Ix3aZdni8v0qoP2rl5wGbotaPtYg5RtyDH60Z2AOPKqlrZg==} + '@angular/animations@19.1.4': + resolution: {integrity: sha512-QGswsf/X+k7TijIgBzL6V8+KcArFAgebY6zM0L/Len8v5PNzPzdjJH99+P++5AOLiJctYKfISUwnlMbDb50NrA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/core': 19.0.5 + '@angular/core': 19.1.4 - '@angular/build@19.0.6': - resolution: {integrity: sha512-KEVNLgTZUF2dfpOYQn+yR2HONHUTxq/2rFVhiK9qAvrm/m+uKJNEXx7hGtbRyoqenZff4ScJq+7feITUldfX8g==} + '@angular/build@19.1.5': + resolution: {integrity: sha512-byoHcv0/s6WGWap59s43N/eC+4NsviuTnGoj+iR0ayubk8snn6jdkZLbFDfnTuQlTiu4ok8/XcksjzeMkgGyyw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^19.0.0 @@ -3031,11 +3471,12 @@ packages: '@angular/localize': ^19.0.0 '@angular/platform-server': ^19.0.0 '@angular/service-worker': ^19.0.0 - '@angular/ssr': ^19.0.6 + '@angular/ssr': ^19.1.5 less: ^4.2.0 + ng-packagr: ^19.0.0 postcss: ^8.4.0 - tailwindcss: ^2.0.0 || ^3.0.0 - typescript: '>=5.5 <5.7' + tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 + typescript: '>=5.5 <5.8' peerDependenciesMeta: '@angular/localize': optional: true @@ -3047,83 +3488,92 @@ packages: optional: true less: optional: true + ng-packagr: + optional: true postcss: optional: true tailwindcss: optional: true - '@angular/cli@19.0.6': - resolution: {integrity: sha512-ZEHhgRRVIdn10dbsAjB8TE9Co32hfuL9/im5Jcfa1yrn6KJefmigz6KN8Xu7FXMH5FkdqfQ11QpLBxJSPb9aww==} + '@angular/cdk@17.3.10': + resolution: {integrity: sha512-b1qktT2c1TTTe5nTji/kFAVW92fULK0YhYAvJ+BjZTPKu2FniZNe8o4qqQ0pUuvtMu+ZQxp/QqFYoidIVCjScg==} + peerDependencies: + '@angular/common': ^17.0.0 || ^18.0.0 + '@angular/core': ^17.0.0 || ^18.0.0 + rxjs: ^6.5.3 || ^7.4.0 + + '@angular/cli@19.1.5': + resolution: {integrity: sha512-bedjH3jUcrLgN3GOTTuvjbPcY3Lm0YcYBVY35S1ugI88UK6nbtttiRdgK++Qk2Q8wbg6zuaBAr4ACbfPMsnRaA==} 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'} hasBin: true - '@angular/common@19.0.5': - resolution: {integrity: sha512-fFK+euCj1AjBHBCpj9VnduMSeqoMRhZZHbhPYiND7tucRRJ8vwGU0sYK2KI/Ko+fsrNIXL/0O4F36jVPl09Smg==} + '@angular/common@19.1.4': + resolution: {integrity: sha512-E4MCl13VIotOxmzKQ/UGciPeaRXQgH7ymesEjYVGcT8jmC+qz5dEcoN7L5Jvq9aUsmLBt9MFp/B5QqKCIXMqYA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/core': 19.0.5 + '@angular/core': 19.1.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@19.0.5': - resolution: {integrity: sha512-KSzuWCTZlvJsoAenxM9cjTOzNM8mrFxDBInj0KVPz7QU83amGS4rcv1pWO/QGYQcErfskcN84TAdMegaRWWCmA==} + '@angular/compiler-cli@19.1.4': + resolution: {integrity: sha512-ozJvTUzPOgFqlz69YnV14Ncod+iH0cXZvUKerjw8o+JsixLG2LmJpwQ79Gh4a/ZQmAkAxMAYYK5izCiio8MmTg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} hasBin: true peerDependencies: - '@angular/compiler': 19.0.5 - typescript: '>=5.5 <5.7' + '@angular/compiler': 19.1.4 + typescript: '>=5.5 <5.8' - '@angular/compiler@19.0.5': - resolution: {integrity: sha512-S8ku5Ljp0kqX3shfmE9DVo09629jeYJSlBRGbj2Glb92dd+VQZPOz7KxqKRTwmAl7lQIV/+4Lr6G/GVTsoC4vg==} + '@angular/compiler@19.1.4': + resolution: {integrity: sha512-9vGUZ+QhGWvf5dfeILybrh5rvZQtNqS8WumMeX2/vCb0JTA0N4DsL1Sy47HuWcgKBxbmHVUdF5/iufcFaqk2FA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/core': 19.0.5 + '@angular/core': 19.1.4 peerDependenciesMeta: '@angular/core': optional: true - '@angular/core@19.0.5': - resolution: {integrity: sha512-Ywc6sPO6G/Y1stfk3y/MallV/h0yzQ0vdOHRWueLrk5kD1DTdbolV4X03Cs3PuVvravgcSVE3nnuuHFuH32emQ==} + '@angular/core@19.1.4': + resolution: {integrity: sha512-r3T81lM9evmuW36HA3VAxIJ61M8kirGR8yHoln9fXSnYG8UeJ7JlWEbVRHmVHKOB48VK0bS/VxqN+w9TOq3bZg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 - '@angular/forms@19.0.5': - resolution: {integrity: sha512-OhNFkfOoguqCDq07vNBV28FFrmTM8S11Z3Cd6PQZJJF9TgAtpV5KtF7A3eXBCN92W4pmqluomPjfK7YyImzIYQ==} + '@angular/forms@19.1.4': + resolution: {integrity: sha512-dcf4G+vXrfvy5NAP+C4A2rBeaZuwKs/TeWjZDpkRUPQMwTvDJcSNH+pqOeVsYUGNY2BkY1uPjzmgZh4F5NMQ9A==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/common': 19.0.5 - '@angular/core': 19.0.5 - '@angular/platform-browser': 19.0.5 + '@angular/common': 19.1.4 + '@angular/core': 19.1.4 + '@angular/platform-browser': 19.1.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/platform-browser-dynamic@19.0.5': - resolution: {integrity: sha512-KKFdue/uJVxkWdrntRAXkz+ycp4nD3SuGOH5pPf2svCBxieuHuFlWDi+DYVuFSEpC/ICCmlhrtzIAm44A4qzzQ==} + '@angular/platform-browser-dynamic@19.1.4': + resolution: {integrity: sha512-r1AM8qkjl63cg46tgOHsVV4URHDctcVpt98DU/d/yN8JAugrx6GA1qOM/HMDspMjEIU4aYcSkUUY6h6uIkYmOQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/common': 19.0.5 - '@angular/compiler': 19.0.5 - '@angular/core': 19.0.5 - '@angular/platform-browser': 19.0.5 + '@angular/common': 19.1.4 + '@angular/compiler': 19.1.4 + '@angular/core': 19.1.4 + '@angular/platform-browser': 19.1.4 - '@angular/platform-browser@19.0.5': - resolution: {integrity: sha512-41+Jo5DEil4Ifvv+UE/p1l9YJtYN+xfhx+/C9cahVgvV5D2q+givyK73d0Mnb6XOfe1q+hoV5lZ+XhQYp21//g==} + '@angular/platform-browser@19.1.4': + resolution: {integrity: sha512-IoVIvemj7ni6GLDCvwtZhTgMQjPyG+xPW7rASN2RVl9T3uS1fJUpXrh5JzBcCikIj20O2KV9mqt7p4iIXy9jbQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/animations': 19.0.5 - '@angular/common': 19.0.5 - '@angular/core': 19.0.5 + '@angular/animations': 19.1.4 + '@angular/common': 19.1.4 + '@angular/core': 19.1.4 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/router@19.0.5': - resolution: {integrity: sha512-6tNubVVj/rRyTg+OXjQxACfufvCLHAwDQtv9wqt6q/3OYSnysHTik3ho3FaFPwu7fXJ+6p9Rjzkh2VY9QMk4bw==} + '@angular/router@19.1.4': + resolution: {integrity: sha512-0gEhGGqcCS7adKuv/XeQjRbhEqRXPhIH4ygjwfonV+uvmK+C1sf+bnAt4o01hxwf12w4FcnNPkgBKt+rJJ+LpA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/common': 19.0.5 - '@angular/core': 19.0.5 - '@angular/platform-browser': 19.0.5 + '@angular/common': 19.1.4 + '@angular/core': 19.1.4 + '@angular/platform-browser': 19.1.4 rxjs: ^6.5.3 || ^7.4.0 '@babel/code-frame@7.24.7': @@ -3138,18 +3588,10 @@ packages: resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.3': - resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.5': resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.0': - resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} - engines: {node: '>=6.9.0'} - '@babel/core@7.24.7': resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} engines: {node: '>=6.9.0'} @@ -3158,10 +3600,6 @@ packages: resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.23.6': - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.24.7': resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} engines: {node: '>=6.9.0'} @@ -3174,10 +3612,6 @@ packages: resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.22.5': - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} @@ -3186,10 +3620,6 @@ packages: resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.26.5': resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} @@ -3206,11 +3636,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.5.0': - resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-define-polyfill-provider@0.6.3': resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} peerDependencies: @@ -3298,10 +3723,6 @@ packages: resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} @@ -3330,10 +3751,6 @@ packages: resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.0': - resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.7': resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} engines: {node: '>=6.9.0'} @@ -3352,6 +3769,18 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': + resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': + resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} engines: {node: '>=6.9.0'} @@ -3376,105 +3805,27 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + '@babel/plugin-syntax-import-assertions@7.26.0': + resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + '@babel/plugin-syntax-jsx@7.24.7': + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3496,14 +3847,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.23.9': - resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} + '@babel/plugin-transform-async-generator-functions@7.25.9': + resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.23.3': - resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} + '@babel/plugin-transform-async-to-generator@7.25.9': + resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3562,6 +3913,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-transform-dynamic-import@7.25.9': resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} engines: {node: '>=6.9.0'} @@ -3742,14 +4099,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regexp-modifiers@7.26.0': + resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-transform-reserved-words@7.25.9': resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-runtime@7.24.0': - resolution: {integrity: sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==} + '@babel/plugin-transform-runtime@7.25.9': + resolution: {integrity: sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3814,8 +4177,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.24.0': - resolution: {integrity: sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==} + '@babel/preset-env@7.26.0': + resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3825,8 +4188,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/runtime@7.24.0': - resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} '@babel/template@7.24.7': @@ -3864,6 +4227,10 @@ packages: peerDependencies: vite: ^5 + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + '@commitlint/parse@19.5.0': resolution: {integrity: sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==} engines: {node: '>=v18'} @@ -3872,9 +4239,9 @@ packages: resolution: {integrity: sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==} engines: {node: '>=v18'} - '@discoveryjs/json-ext@0.5.7': - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} + '@discoveryjs/json-ext@0.6.3': + resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==} + engines: {node: '>=14.17.0'} '@dnd-kit/accessibility@3.1.1': resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} @@ -3913,18 +4280,6 @@ packages: '@emnapi/wasi-threads@1.0.1': resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.20.1': - resolution: {integrity: sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -3937,30 +4292,12 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.24.0': - resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.24.2': resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.20.1': - resolution: {integrity: sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} @@ -3973,30 +4310,12 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.24.0': - resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.24.2': resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.20.1': - resolution: {integrity: sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} @@ -4009,30 +4328,12 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.24.0': - resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.24.2': resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.20.1': - resolution: {integrity: sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} @@ -4045,30 +4346,12 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.24.0': - resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.24.2': resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.20.1': - resolution: {integrity: sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} @@ -4081,30 +4364,12 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.24.0': - resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.24.2': resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.20.1': - resolution: {integrity: sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} @@ -4117,30 +4382,12 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.24.0': - resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.24.2': resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.20.1': - resolution: {integrity: sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} @@ -4153,30 +4400,12 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.24.0': - resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.24.2': resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.20.1': - resolution: {integrity: sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} @@ -4189,30 +4418,12 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.0': - resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.20.1': - resolution: {integrity: sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} @@ -4225,30 +4436,12 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.24.0': - resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.24.2': resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.20.1': - resolution: {integrity: sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} @@ -4261,30 +4454,12 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.24.0': - resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.24.2': resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.20.1': - resolution: {integrity: sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} @@ -4297,30 +4472,12 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.24.0': - resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.24.2': resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.20.1': - resolution: {integrity: sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} @@ -4333,30 +4490,12 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.24.0': - resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.24.2': resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.20.1': - resolution: {integrity: sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} @@ -4369,30 +4508,12 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.24.0': - resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.24.2': resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.20.1': - resolution: {integrity: sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} @@ -4405,30 +4526,12 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.24.0': - resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.24.2': resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.20.1': - resolution: {integrity: sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} @@ -4441,45 +4544,21 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.24.0': - resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.24.2': resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.20.1': - resolution: {integrity: sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.24.0': - resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} - engines: {node: '>=18'} + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -4489,18 +4568,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.20.1': - resolution: {integrity: sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} @@ -4513,12 +4580,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.24.0': - resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.24.2': resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} @@ -4531,18 +4592,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.20.1': - resolution: {integrity: sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} @@ -4555,12 +4604,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.0': - resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} @@ -4573,30 +4616,12 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.24.0': - resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.24.2': resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.20.1': - resolution: {integrity: sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} @@ -4609,30 +4634,12 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.0': - resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.20.1': - resolution: {integrity: sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} @@ -4645,30 +4652,12 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.24.0': - resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.24.2': resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.20.1': - resolution: {integrity: sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} @@ -4681,30 +4670,12 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.24.0': - resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.24.2': resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.20.1': - resolution: {integrity: sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} @@ -4717,30 +4688,12 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.24.0': - resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.24.2': resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.20.1': - resolution: {integrity: sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} @@ -4753,12 +4706,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.24.0': - resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.24.2': resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} @@ -4847,6 +4794,10 @@ packages: resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@faker-js/faker@8.4.1': + resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} + '@faker-js/faker@9.3.0': resolution: {integrity: sha512-r0tJ3ZOkMd9xsu3VRfqlFR6cz0V/jFYRswAIpC+m/DIfAUXq7g8N7wTAlhSANySXYGKzGryfDXwtwsY8TxEIDw==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} @@ -4880,12 +4831,6 @@ packages: peerDependencies: '@types/node': '>=18' - '@inquirer/confirm@5.0.2': - resolution: {integrity: sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - '@inquirer/confirm@5.1.1': resolution: {integrity: sha512-vVLSbGci+IKQvDOtzpPTCOiEJCNidHcAq9JYVoWTW0svb5FiwSLotkM+JXNXejfjnzVYV9n0DTBythl9+XgTxg==} engines: {node: '>=18'} @@ -4930,8 +4875,8 @@ packages: peerDependencies: '@types/node': '>=18' - '@inquirer/prompts@7.1.0': - resolution: {integrity: sha512-5U/XiVRH2pp1X6gpNAjWOglMf38/Ys522ncEHIKT1voRUvSj/DQnR22OVxHnwu5S+rCFaUiPQ57JOtMFQayqYA==} + '@inquirer/prompts@7.2.1': + resolution: {integrity: sha512-v2JSGri6/HXSfoGIwuKEn8sNCQK6nsB2BNpy2lSX6QH9bsECrMv93QHnj5+f+1ZWpF/VNioIV2B/PDox8EvGuQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -4972,10 +4917,6 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - '@istanbuljs/schema@0.1.3': resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} @@ -5009,6 +4950,24 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.1.1': + resolution: {integrity: sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@kwsites/file-exists@1.1.1': resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} @@ -5030,37 +4989,33 @@ packages: '@lit/reactive-element@2.0.4': resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} - '@ljharb/through@2.3.13': - resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==} - engines: {node: '>= 0.4'} - - '@lmdb/lmdb-darwin-arm64@3.1.5': - resolution: {integrity: sha512-ue5PSOzHMCIYrfvPP/MRS6hsKKLzqqhcdAvJCO8uFlDdj598EhgnacuOTuqA6uBK5rgiZXfDWyb7DVZSiBKxBA==} + '@lmdb/lmdb-darwin-arm64@3.2.2': + resolution: {integrity: sha512-WBSJT9Z7DTol5viq+DZD2TapeWOw7mlwXxiSBHgAzqVwsaVb0h/ekMD9iu/jDD8MUA20tO9N0WEdnT06fsUp+g==} cpu: [arm64] os: [darwin] - '@lmdb/lmdb-darwin-x64@3.1.5': - resolution: {integrity: sha512-CGhsb0R5vE6mMNCoSfxHFD8QTvBHM51gs4DBeigTYHWnYv2V5YpJkC4rMo5qAAFifuUcc0+a8a3SIU0c9NrfNw==} + '@lmdb/lmdb-darwin-x64@3.2.2': + resolution: {integrity: sha512-4S13kUtR7c/j/MzkTIBJCXv52hQ41LG2ukeaqw4Eng9K0pNKLFjo1sDSz96/yKhwykxrWDb13ddJ/ZqD3rAhUA==} cpu: [x64] os: [darwin] - '@lmdb/lmdb-linux-arm64@3.1.5': - resolution: {integrity: sha512-LAjaoOcBHGj6fiYB8ureiqPoph4eygbXu4vcOF+hsxiY74n8ilA7rJMmGUT0K0JOB5lmRQHSmor3mytRjS4qeQ==} + '@lmdb/lmdb-linux-arm64@3.2.2': + resolution: {integrity: sha512-4hdgZtWI1idQlWRp+eleWXD9KLvObgboRaVoBj2POdPEYvsKANllvMW0El8tEQwtw74yB9NT6P8ENBB5UJf5+g==} cpu: [arm64] os: [linux] - '@lmdb/lmdb-linux-arm@3.1.5': - resolution: {integrity: sha512-3WeW328DN+xB5PZdhSWmqE+t3+44xWXEbqQ+caWJEZfOFdLp9yklBZEbVqVdqzznkoaXJYxTCp996KD6HmANeg==} + '@lmdb/lmdb-linux-arm@3.2.2': + resolution: {integrity: sha512-uW31JmfuPAaLUYW7NsEU8gzwgDAzpGPwjvkxnKlcWd8iDutoPKDJi8Wk9lFmPEZRxVSB0j1/wDQ7N2qliR9UFA==} cpu: [arm] os: [linux] - '@lmdb/lmdb-linux-x64@3.1.5': - resolution: {integrity: sha512-k/IklElP70qdCXOQixclSl2GPLFiopynGoKX1FqDd1/H0E3Fo1oPwjY2rEVu+0nS3AOw1sryStdXk8CW3cVIsw==} + '@lmdb/lmdb-linux-x64@3.2.2': + resolution: {integrity: sha512-A0zjf4a2vM4B4GAx78ncuOTZ8Ka1DbTaG1Axf1e00Sa7f5coqlWiLg1PX7Gxvyibc2YqtqB+8tg1KKrE8guZVw==} cpu: [x64] os: [linux] - '@lmdb/lmdb-win32-x64@3.1.5': - resolution: {integrity: sha512-KYar6W8nraZfSJspcK7Kp7hdj238X/FNauYbZyrqPBrtsXI1hvI4/KcRcRGP50aQoV7fkKDyJERlrQGMGTZUsA==} + '@lmdb/lmdb-win32-x64@3.2.2': + resolution: {integrity: sha512-Y0qoSCAja+xZE7QQ0LCHoYAuyI1n9ZqukQJa8lv9X3yCvWahFF7OYHAgVH1ejp43XWstj3U89/PAAzcowgF/uQ==} cpu: [x64] os: [win32] @@ -5210,12 +5165,12 @@ packages: '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@ngtools/webpack@17.3.8': - resolution: {integrity: sha512-CjSVVa/9fzMpEDQP01SC4colKCbZwj7vUq0H2bivp8jVsmd21x9Fu0gDBH0Y9NdfAIm4eGZvmiZKMII3vIOaYQ==} - engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@ngtools/webpack@19.1.5': + resolution: {integrity: sha512-oIpE5Ci/Gl2iZqa0Hs6IOxaXEDHkF/zisHcflzYGkMnYcSFj+wRgYEuBFaHLCwuxQf9OdGu31i05w849i6tY1Q==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: - '@angular/compiler-cli': ^17.0.0 - typescript: '>=5.2 <5.5' + '@angular/compiler-cli': ^19.0.0 + typescript: '>=5.5 <5.8' webpack: ^5.54.0 '@nodelib/fs.scandir@2.1.5': @@ -5445,6 +5400,15 @@ packages: rollup: optional: true + '@rollup/plugin-replace@5.0.7': + resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/plugin-replace@6.0.2': resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} engines: {node: '>=14.0.0'} @@ -5467,13 +5431,13 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.26.0': - resolution: {integrity: sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ==} + '@rollup/rollup-android-arm-eabi@4.29.1': + resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.29.1': - resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} + '@rollup/rollup-android-arm-eabi@4.30.1': + resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==} cpu: [arm] os: [android] @@ -5482,13 +5446,13 @@ packages: cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.26.0': - resolution: {integrity: sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ==} + '@rollup/rollup-android-arm64@4.29.1': + resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.29.1': - resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} + '@rollup/rollup-android-arm64@4.30.1': + resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==} cpu: [arm64] os: [android] @@ -5497,13 +5461,13 @@ packages: cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.26.0': - resolution: {integrity: sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==} + '@rollup/rollup-darwin-arm64@4.29.1': + resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.29.1': - resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} + '@rollup/rollup-darwin-arm64@4.30.1': + resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==} cpu: [arm64] os: [darwin] @@ -5512,13 +5476,13 @@ packages: cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.26.0': - resolution: {integrity: sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA==} + '@rollup/rollup-darwin-x64@4.29.1': + resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.29.1': - resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} + '@rollup/rollup-darwin-x64@4.30.1': + resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==} cpu: [x64] os: [darwin] @@ -5527,13 +5491,13 @@ packages: cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.26.0': - resolution: {integrity: sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg==} + '@rollup/rollup-freebsd-arm64@4.29.1': + resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.29.1': - resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} + '@rollup/rollup-freebsd-arm64@4.30.1': + resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==} cpu: [arm64] os: [freebsd] @@ -5542,13 +5506,13 @@ packages: cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.26.0': - resolution: {integrity: sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg==} + '@rollup/rollup-freebsd-x64@4.29.1': + resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} cpu: [x64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.29.1': - resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} + '@rollup/rollup-freebsd-x64@4.30.1': + resolution: {integrity: sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==} cpu: [x64] os: [freebsd] @@ -5557,13 +5521,13 @@ packages: cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.26.0': - resolution: {integrity: sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA==} + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': - resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} + '@rollup/rollup-linux-arm-gnueabihf@4.30.1': + resolution: {integrity: sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==} cpu: [arm] os: [linux] @@ -5572,13 +5536,13 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.26.0': - resolution: {integrity: sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg==} + '@rollup/rollup-linux-arm-musleabihf@4.29.1': + resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.29.1': - resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} + '@rollup/rollup-linux-arm-musleabihf@4.30.1': + resolution: {integrity: sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==} cpu: [arm] os: [linux] @@ -5587,13 +5551,13 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.26.0': - resolution: {integrity: sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ==} + '@rollup/rollup-linux-arm64-gnu@4.29.1': + resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.29.1': - resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} + '@rollup/rollup-linux-arm64-gnu@4.30.1': + resolution: {integrity: sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==} cpu: [arm64] os: [linux] @@ -5602,13 +5566,13 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.26.0': - resolution: {integrity: sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q==} + '@rollup/rollup-linux-arm64-musl@4.29.1': + resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.29.1': - resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} + '@rollup/rollup-linux-arm64-musl@4.30.1': + resolution: {integrity: sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==} cpu: [arm64] os: [linux] @@ -5622,18 +5586,23 @@ packages: cpu: [loong64] os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.30.1': + resolution: {integrity: sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.32.0': resolution: {integrity: sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.26.0': - resolution: {integrity: sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': - resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} + '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': + resolution: {integrity: sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==} cpu: [ppc64] os: [linux] @@ -5642,13 +5611,13 @@ packages: cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.26.0': - resolution: {integrity: sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew==} + '@rollup/rollup-linux-riscv64-gnu@4.29.1': + resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.29.1': - resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} + '@rollup/rollup-linux-riscv64-gnu@4.30.1': + resolution: {integrity: sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==} cpu: [riscv64] os: [linux] @@ -5657,13 +5626,13 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.26.0': - resolution: {integrity: sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ==} + '@rollup/rollup-linux-s390x-gnu@4.29.1': + resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.29.1': - resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} + '@rollup/rollup-linux-s390x-gnu@4.30.1': + resolution: {integrity: sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==} cpu: [s390x] os: [linux] @@ -5672,13 +5641,13 @@ packages: cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.26.0': - resolution: {integrity: sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA==} + '@rollup/rollup-linux-x64-gnu@4.29.1': + resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.29.1': - resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} + '@rollup/rollup-linux-x64-gnu@4.30.1': + resolution: {integrity: sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==} cpu: [x64] os: [linux] @@ -5687,13 +5656,13 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.26.0': - resolution: {integrity: sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg==} + '@rollup/rollup-linux-x64-musl@4.29.1': + resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.29.1': - resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} + '@rollup/rollup-linux-x64-musl@4.30.1': + resolution: {integrity: sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==} cpu: [x64] os: [linux] @@ -5702,13 +5671,13 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.26.0': - resolution: {integrity: sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ==} + '@rollup/rollup-win32-arm64-msvc@4.29.1': + resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.29.1': - resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} + '@rollup/rollup-win32-arm64-msvc@4.30.1': + resolution: {integrity: sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==} cpu: [arm64] os: [win32] @@ -5717,13 +5686,13 @@ packages: cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.26.0': - resolution: {integrity: sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg==} + '@rollup/rollup-win32-ia32-msvc@4.29.1': + resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.29.1': - resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} + '@rollup/rollup-win32-ia32-msvc@4.30.1': + resolution: {integrity: sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==} cpu: [ia32] os: [win32] @@ -5732,13 +5701,13 @@ packages: cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.26.0': - resolution: {integrity: sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag==} + '@rollup/rollup-win32-x64-msvc@4.29.1': + resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.29.1': - resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} + '@rollup/rollup-win32-x64-msvc@4.30.1': + resolution: {integrity: sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==} cpu: [x64] os: [win32] @@ -5774,8 +5743,8 @@ packages: '@rushstack/ts-command-line@4.22.3': resolution: {integrity: sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==} - '@schematics/angular@19.0.6': - resolution: {integrity: sha512-HicclmbW/+mlljU7a4PzbyIWG+7tognoL5LsgMFJQUDzJXHNjRt1riL0vk57o8Pcprnz9FheeWZXO1KRhXkQuw==} + '@schematics/angular@19.1.5': + resolution: {integrity: sha512-Yks2QD87z2qJhVLi6O0tQDBG4pyX5n5c8BYEyZ+yiThjzIXBRkHjWS1jIFvd/y1+yU/NQFHYG/sy8sVOxfQ9IA==} 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'} '@shikijs/engine-oniguruma@1.24.4': @@ -5814,6 +5783,10 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@size-limit/esbuild@11.1.6': resolution: {integrity: sha512-0nBKYSxeRjUVCVoCkWZbmGkGBwpm0HdwHedWgxksBGxTKU0PjOMSHc3XTjKOrXBKXQzw90Ue0mgOd4n6zct9SA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -5836,6 +5809,9 @@ packages: engines: {node: '>=8.10'} hasBin: true + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@solid-primitives/scheduled@1.4.4': resolution: {integrity: sha512-BTGdFP7t+s7RSak+s1u0eTix4lHP23MrbGkgQTFlt1E+4fmnD/bEx3ZfNW7Grylz3GXgKyXrgDKA7jQ/wuWKgA==} peerDependencies: @@ -5862,14 +5838,6 @@ packages: svelte: ^5.0.0-next.96 || ^5.0.0 vite: ^5.0.0 - '@sveltejs/vite-plugin-svelte-inspector@4.0.1': - resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^5.0.0 - svelte: ^5.0.0 - vite: ^6.0.0 - '@sveltejs/vite-plugin-svelte@4.0.4': resolution: {integrity: sha512-0ba1RQ/PHen5FGpdSrW7Y3fAMQjrXantECALeOiOdBdzR5+5vPP6HVZRLmZaQL+W8m++o+haIAKq5qT+MiZ7VA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22} @@ -5877,13 +5845,6 @@ packages: svelte: ^5.0.0-next.96 || ^5.0.0 vite: ^5.0.0 - '@sveltejs/vite-plugin-svelte@5.0.3': - resolution: {integrity: sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22} - peerDependencies: - svelte: ^5.0.0 - vite: ^6.0.0 - '@tanstack/config@0.14.2': resolution: {integrity: sha512-C431mIFMWgsnQKvmwjysfUbkqGWGtNgXqIcS14h/0QUvwSCx+ctC1UrsvGY08FrNouo/iAExRoOqUbD6cNagPg==} engines: {node: '>=18'} @@ -5893,6 +5854,12 @@ packages: resolution: {integrity: sha512-riNhDGm+fAwxgZRJ0J/36IZis1UDHsDCNIxfEodbw6BgTWJr0ah+G20V4HT91uBXiCqYFvX3somlfTLhS5yHDA==} engines: {node: '>=12'} + '@tanstack/lit-table@8.21.1': + resolution: {integrity: sha512-A/7XBSa8YpuJoc9fVQOL08IUiGdCh11FKQX6lXdN1sJrh6cB3+zZ/5PNSkMLsErIbKXRY81oJmnq12vwQxE0/g==} + engines: {node: '>=12'} + peerDependencies: + lit: ^3.1.3 + '@tanstack/lit-virtual@3.11.2': resolution: {integrity: sha512-S6irzor2W8VR9LsyL9YtP21gI5hOzZTJawN/PbU5xk2l4AWfnIeKrJCCLzad/6DJQj+R8p5Q72HWG/e4LBZ8Ww==} peerDependencies: @@ -5919,12 +5886,25 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tanstack/react-table@8.20.6': + resolution: {integrity: sha512-w0jluT718MrOKthRcr2xsjqzx+oEM7B7s/XXyfs19ll++hlId3fjTm+B2zrR3ijpANpkzBAr15j1XGVOMxpggQ==} + engines: {node: '>=12'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + '@tanstack/react-virtual@3.11.2': resolution: {integrity: sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tanstack/react-virtual@3.12.0': + resolution: {integrity: sha512-6krceiPN07kpxXmU6m8AY7EL0X1gHLu8m3nJdh4phvktzVNxkQfBmSwnRUpoUjGQO1PAn8wSAhYaL8hY1cS1vw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tanstack/router-generator@1.92.11': resolution: {integrity: sha512-AXoVM73m5nQb2mRn8UKpOw67Mzn6AuOOqfVLuFbzcFH23KDg/giT7V3JNqA7QKcoUFfoZmZpRtmc8RDbXpv00Q==} engines: {node: '>=12'} @@ -5956,9 +5936,16 @@ packages: '@tanstack/store@0.7.0': resolution: {integrity: sha512-CNIhdoUsmD2NolYuaIs8VfWM467RK6oIBAW4nPEKZhg1smZ+/CwtCdpURgp7nxSqOaV9oKkzdWD80+bC66F/Jg==} + '@tanstack/table-core@8.20.5': + resolution: {integrity: sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==} + engines: {node: '>=12'} + '@tanstack/virtual-core@3.11.2': resolution: {integrity: sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==} + '@tanstack/virtual-core@3.12.0': + resolution: {integrity: sha512-7mDINtua3v/pOnn6WUmuT9dPXYSO7WidFej7JzoAfqEOcbbpt/iZ1WPqd+eg+FnrL9nUJK8radqj4iAU51Zchg==} + '@tanstack/virtual-file-routes@1.87.6': resolution: {integrity: sha512-PTpeM8SHL7AJM0pJOacFvHribbUODS51qe9NsMqku4mogh6BWObY1EeVmeGnp9o3VngAEsf+rJMs2zqIVz3WFA==} engines: {node: '>=12'} @@ -6058,6 +6045,9 @@ packages: '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@types/cors@2.8.17': + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + '@types/doctrine@0.0.9': resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} @@ -6109,22 +6099,33 @@ packages: '@types/node@22.10.2': resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + '@types/prop-types@15.7.14': + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + '@types/qs@6.9.18': resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/react-dom@18.3.5': + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + peerDependencies: + '@types/react': ^18.0.0 + '@types/react-dom@19.0.2': resolution: {integrity: sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==} peerDependencies: '@types/react': ^19.0.0 + '@types/react@18.3.18': + resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + '@types/react@19.0.2': resolution: {integrity: sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg==} - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + '@types/retry@0.12.2': + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -6221,11 +6222,11 @@ packages: resolution: {integrity: sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vitejs/plugin-basic-ssl@1.1.0': - resolution: {integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==} - engines: {node: '>=14.6.0'} + '@vitejs/plugin-basic-ssl@1.2.0': + resolution: {integrity: sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==} + engines: {node: '>=14.21.3'} peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 '@vitejs/plugin-react@4.3.4': resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} @@ -6426,12 +6427,6 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - deprecated: package has been renamed to acorn-import-attributes - peerDependencies: - acorn: ^8 - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -6442,11 +6437,6 @@ packages: peerDependencies: acorn: '>=8.9.0' - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} @@ -6605,8 +6595,8 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - autoprefixer@10.4.18: - resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -6622,8 +6612,8 @@ packages: babel-dead-code-elimination@1.0.8: resolution: {integrity: sha512-og6HQERk0Cmm+nTT4Od2wbPtgABXFMPaHACjbKLulZIFMkYyXZLkUGuAxdgpMJBrxyt/XFpSz++lNzjbcMnPkQ==} - babel-loader@9.1.3: - resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + babel-loader@9.2.1: + resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 @@ -6632,10 +6622,6 @@ packages: babel-plugin-add-module-exports@0.2.1: resolution: {integrity: sha512-3AN/9V/rKuv90NG65m4tTHsI04XrCKsWbztIcW7a8H5iIN7WlvWucRtVV0V/rT4QvtA11n5Vmp20fLwfMWqp6g==} - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - babel-plugin-jsx-dom-expressions@0.37.23: resolution: {integrity: sha512-Y/r8LyLi/njnwPTaDuPEReWk30FJ1KplloYvcFUhHmiH1F7yVVj5mWojD7mbO/IruKyvOs9OIPUoeMi3Z++J4w==} peerDependencies: @@ -6646,13 +6632,13 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.9.0: - resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} + babel-plugin-polyfill-corejs3@0.10.6: + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.5.5: - resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} + babel-plugin-polyfill-regenerator@0.6.3: + resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -6672,11 +6658,16 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - beasties@0.1.0: - resolution: {integrity: sha512-+Ssscd2gVG24qRNC+E2g88D+xsQW4xwakWtKAiGEQ3Pw54/FGdyo9RrfxhGhEv6ilFVbB7r3Lgx+QnAxnSpECw==} + beasties@0.2.0: + resolution: {integrity: sha512-Ljqskqx/tbZagIglYoJIMzH5zgssyp+in9+9sAyh15N22AornBeIDnb8EZ6Rk+6ShfMxd92uO3gfpT0NtZbpow==} + engines: {node: '>=14.0.0'} big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -6712,16 +6703,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.24.3: - resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.24.4: resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -6733,6 +6714,10 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + bytes-iec@3.1.1: resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} engines: {node: '>= 0.8'} @@ -6757,10 +6742,6 @@ packages: resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - call-bound@1.0.3: resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} engines: {node: '>= 0.4'} @@ -6769,20 +6750,10 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - camelcase@7.0.1: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} - caniuse-lite@1.0.30001638: - resolution: {integrity: sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==} - - caniuse-lite@1.0.30001690: - resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} - caniuse-lite@1.0.30001695: resolution: {integrity: sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==} @@ -6814,10 +6785,6 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chalk@5.4.1: - resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -6881,6 +6848,9 @@ packages: resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -6924,6 +6894,10 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} + commander@13.1.0: + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -6968,6 +6942,10 @@ packages: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} + connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + content-disposition@0.5.2: resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} engines: {node: '>= 0.6'} @@ -7002,12 +6980,16 @@ packages: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + copy-anything@2.0.6: resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} - copy-webpack-plugin@11.0.0: - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} + copy-webpack-plugin@12.0.2: + resolution: {integrity: sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==} + engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.1.0 @@ -7017,6 +6999,10 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -7026,9 +7012,6 @@ packages: typescript: optional: true - critters@0.0.22: - resolution: {integrity: sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==} - cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -7040,12 +7023,12 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - css-loader@6.10.0: - resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} - engines: {node: '>= 12.13.0'} + css-loader@7.1.2: + resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==} + engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x - webpack: ^5.0.0 + webpack: ^5.27.0 peerDependenciesMeta: '@rspack/core': optional: true @@ -7077,10 +7060,17 @@ packages: current-git-branch@1.1.0: resolution: {integrity: sha512-n5mwGZllLsFzxDPtTmadqGe4IIBPfqPbiIRX4xgFR9VK/Bx47U+94KiVkxSKAKN6/s43TlkztS2GZpgMKzwQ8A==} + custom-event@1.0.1: + resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==} + data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} + date-format@4.0.14: + resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} + engines: {node: '>=4.0'} + de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -7139,21 +7129,25 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -7194,14 +7188,13 @@ packages: detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + di@0.0.1: + resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dns-packet@5.6.1: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} @@ -7213,6 +7206,9 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dom-serialize@2.2.1: + resolution: {integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==} + dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -7254,12 +7250,6 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.815: - resolution: {integrity: sha512-OvpTT2ItpOXJL7IGcYakRjHCt8L5GrrN/wHCQsRB4PQa1X9fe+X9oen245mIId7s14xvArCGSTIq644yPUKKLg==} - - electron-to-chromium@1.5.76: - resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} - electron-to-chromium@1.5.88: resolution: {integrity: sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==} @@ -7290,6 +7280,14 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + engine.io@6.6.4: + resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==} + engines: {node: '>=10.2.0'} + enhanced-resolve@5.18.0: resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} engines: {node: '>=10.13.0'} @@ -7298,6 +7296,10 @@ packages: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} + ent@2.2.2: + resolution: {integrity: sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==} + engines: {node: '>= 0.4'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -7343,19 +7345,9 @@ packages: peerDependencies: esbuild: '>=0.12 <1' - esbuild-wasm@0.20.1: - resolution: {integrity: sha512-6v/WJubRsjxBbQdz6izgvx7LsVFvVaGmSdwrFHmEzoVgfXL89hkKPoQHsnVI2ngOkcBUQT9kmAM1hVL1k/Av4A==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.20.1: - resolution: {integrity: sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==} - engines: {node: '>=12'} + esbuild-wasm@0.24.2: + resolution: {integrity: sha512-03/7Z1gD+ohDnScFztvI4XddTAbKVmMEzCvvkBpQdWKEXJ+73dTyeNrmdxP1Q0zpDMFjzUJwtK4rLjqwiHbzkw==} + engines: {node: '>=18'} hasBin: true esbuild@0.21.5: @@ -7368,20 +7360,11 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.24.0: - resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.24.2: resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -7645,6 +7628,10 @@ packages: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -7689,6 +7676,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + finalhandler@1.3.1: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} @@ -7791,6 +7782,10 @@ packages: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -7799,9 +7794,6 @@ packages: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - fs-monkey@1.0.6: - resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -7829,10 +7821,6 @@ packages: resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -7905,9 +7893,9 @@ packages: resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} engines: {node: '>=18'} - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -7933,13 +7921,14 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -7966,16 +7955,13 @@ packages: html-entities@2.3.3: resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} - html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} html-tags@3.3.1: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} - htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - htmlparser2@9.1.0: resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} @@ -8000,8 +7986,8 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - http-proxy-middleware@2.0.6: - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + http-proxy-middleware@2.0.7: + resolution: {integrity: sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==} engines: {node: '>=12.0.0'} peerDependencies: '@types/express': ^4.17.13 @@ -8009,22 +7995,30 @@ packages: '@types/express': optional: true + http-proxy-middleware@3.0.3: + resolution: {integrity: sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + http-proxy@1.18.1: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} - engines: {node: '>= 14'} - https-proxy-agent@7.0.5: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -8063,9 +8057,6 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - immutable@4.3.7: - resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} - immutable@5.0.3: resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} @@ -8105,10 +8096,6 @@ packages: injection-js@2.4.0: resolution: {integrity: sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA==} - inquirer@9.2.15: - resolution: {integrity: sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==} - engines: {node: '>=18'} - interpret@3.1.1: resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} engines: {node: '>=10.13.0'} @@ -8149,6 +8136,11 @@ packages: engines: {node: '>=8'} hasBin: true + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -8178,10 +8170,19 @@ packages: eslint: '*' typescript: '>=4.7.4' + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} + is-network-error@1.1.0: + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -8212,6 +8213,10 @@ packages: is-reference@3.0.3: resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + is-relative@1.0.0: resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} engines: {node: '>=0.10.0'} @@ -8251,9 +8256,17 @@ packages: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -8277,6 +8290,18 @@ packages: resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + jackspeak@3.4.0: resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} engines: {node: '>=14'} @@ -8285,6 +8310,12 @@ packages: resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} engines: {node: 20 || >=22} + jasmine-core@4.6.1: + resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==} + + jasmine-core@5.1.2: + resolution: {integrity: sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==} + jasmine-core@5.5.0: resolution: {integrity: sha512-NHOvoPO6o9gVR6pwqEACTEpbgcH+JJ6QDypyymGbSUIFIFsMMbBJ/xsFNud8MSClfnWclXd7RQlAZBz7yVo5TQ==} @@ -8376,9 +8407,6 @@ packages: jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} @@ -8392,9 +8420,34 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} + karma-chrome-launcher@3.2.0: + resolution: {integrity: sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==} + + karma-coverage@2.2.1: + resolution: {integrity: sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==} + engines: {node: '>=10.0.0'} + + karma-jasmine-html-reporter@2.1.0: + resolution: {integrity: sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==} + peerDependencies: + jasmine-core: ^4.0.0 || ^5.0.0 + karma: ^6.0.0 + karma-jasmine: ^5.0.0 + + karma-jasmine@5.1.0: + resolution: {integrity: sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==} + engines: {node: '>=12'} + peerDependencies: + karma: ^6.0.0 + karma-source-map-support@1.4.0: resolution: {integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==} + karma@6.4.4: + resolution: {integrity: sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==} + engines: {node: '>= 10'} + hasBin: true + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -8406,10 +8459,6 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - knip@5.41.1: resolution: {integrity: sha512-yNpCCe2REU7U3VRvMASnXSEtfEC2HmOoDW9Vp9teQ9FktJYnuagvSZD3xWq8Ru7sPABkmvbC5TVWuMzIaeADNA==} engines: {node: '>=18.6.0'} @@ -8427,18 +8476,29 @@ packages: launch-editor@2.9.1: resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} - less-loader@11.1.0: - resolution: {integrity: sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==} - engines: {node: '>= 14.15.0'} + less-loader@12.2.0: + resolution: {integrity: sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==} + engines: {node: '>= 18.12.0'} peerDependencies: + '@rspack/core': 0.x || 1.x less: ^3.5.0 || ^4.0.0 webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true less@4.2.0: resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} engines: {node: '>=6'} hasBin: true + less@4.2.1: + resolution: {integrity: sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg==} + engines: {node: '>=6'} + hasBin: true + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -8486,8 +8546,8 @@ packages: lit@3.2.1: resolution: {integrity: sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==} - lmdb@3.1.5: - resolution: {integrity: sha512-46Mch5Drq+A93Ss3gtbg+Xuvf5BOgIuvhKDWoGa3HcPHI6BL2NCOkRdSx1D4VfzwrxhnsjbyIVsLRlQHu6URvw==} + lmdb@3.2.2: + resolution: {integrity: sha512-LriG93la4PbmPMwI7Hbv8W+0ncLK7549w4sbZSi4QGDjnnxnmNMgxUkaQTEMzH8TpwsfFvgEjpLX7V8B/I9e3g==} hasBin: true loader-runner@4.3.0: @@ -8498,8 +8558,8 @@ packages: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} - loader-utils@3.2.1: - resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + loader-utils@3.3.1: + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} engines: {node: '>= 12.13.0'} local-pkg@0.5.0: @@ -8538,6 +8598,10 @@ packages: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} + log4js@6.9.1: + resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} + engines: {node: '>=8.0'} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -8572,9 +8636,6 @@ packages: magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} - magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} @@ -8582,10 +8643,6 @@ packages: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} - magic-string@0.30.8: - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} - engines: {node: '>=12'} - make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -8594,6 +8651,10 @@ packages: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + make-fetch-happen@14.0.3: resolution: {integrity: sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -8617,8 +8678,8 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + memfs@4.17.0: + resolution: {integrity: sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==} engines: {node: '>= 4.0.0'} meow@12.1.1: @@ -8675,6 +8736,11 @@ packages: engines: {node: '>=4'} hasBin: true + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -8687,8 +8753,8 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - mini-css-extract-plugin@2.8.1: - resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} + mini-css-extract-plugin@2.9.2: + resolution: {integrity: sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 @@ -8761,6 +8827,10 @@ packages: resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} engines: {node: '>= 18'} + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -8858,29 +8928,22 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - ng-packagr@19.0.1: - resolution: {integrity: sha512-PnXa/y3ce3v4bKJNtUBS7qcNoyv5g/tSthoMe23NyMV5kjNY4+hJT7h64zK+8tnJWTelCbIpoep7tmSPsOifBA==} + ng-packagr@19.1.2: + resolution: {integrity: sha512-h8YDp6YdPwAwbl7rs0lJE7vVugobY6m+JogS0hQ7P+52RmslPT8kRCgdvGLIS1JySwPrDFQkPh2PLBaSjwcRqQ==} engines: {node: ^18.19.1 || >=20.11.1} hasBin: true peerDependencies: - '@angular/compiler-cli': ^19.0.0-next.0 - tailwindcss: ^2.0.0 || ^3.0.0 + '@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.7' + typescript: '>=5.5 <5.8' peerDependenciesMeta: tailwindcss: optional: true - nice-napi@1.0.2: - resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} - os: ['!win32'] - no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-addon-api@3.2.1: - resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} - node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} @@ -8895,10 +8958,6 @@ packages: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - node-gyp@11.0.0: resolution: {integrity: sha512-zQS+9MTTeCMgY0F3cWPyJyRFAkVltQ1uXm+xXu/ES6KFgC6Czo1Seb9vQW2wNxSX2OrDTiqL0ojtkFxBQ0ypIw==} engines: {node: ^18.17.0 || >=20.5.0} @@ -8910,9 +8969,6 @@ packages: node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} @@ -8953,8 +9009,8 @@ packages: resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} engines: {node: ^18.17.0 || >=20.5.0} - npm-package-arg@12.0.0: - resolution: {integrity: sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A==} + npm-package-arg@12.0.1: + resolution: {integrity: sha512-aDxjFfPV3Liw0WOBWlyZLMBqtbgbg03rmGvHDJa2Ttv7tIz+1oB5qWec4psCDFZcZi9b5XdGkPdQiJxOPzvQRQ==} engines: {node: ^18.17.0 || >=20.5.0} npm-packlist@5.1.3: @@ -9000,6 +9056,10 @@ packages: '@swc/core': optional: true + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + object-inspect@1.13.3: resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} @@ -9015,6 +9075,10 @@ packages: obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -9034,6 +9098,10 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -9093,9 +9161,9 @@ packages: resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} engines: {node: '>=18'} - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} + p-retry@6.2.1: + resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} + engines: {node: '>=16.17'} p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} @@ -9200,9 +9268,9 @@ packages: path-to-regexp@3.3.0: resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -9218,10 +9286,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.1: - resolution: {integrity: sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==} - engines: {node: '>=12'} - picomatch@4.0.2: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} @@ -9230,12 +9294,6 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - piscina@4.4.0: - resolution: {integrity: sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==} - - piscina@4.7.0: - resolution: {integrity: sha512-b8hvkpp9zS0zsfa939b/jXbe64Z2gZv0Ha7FYPNUiDIB1y2AtxcOZdfP8xN8HFjUaqQiT9gRlfjAsoL8vdJ1Iw==} - piscina@4.8.0: resolution: {integrity: sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==} @@ -9325,10 +9383,6 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.49: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} @@ -9404,10 +9458,17 @@ packages: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qjobs@1.2.0: + resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} + engines: {node: '>=0.9'} + qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} @@ -9451,6 +9512,10 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + react@19.0.0: resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} @@ -9537,10 +9602,6 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -9557,10 +9618,6 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -9604,13 +9661,13 @@ packages: peerDependencies: rollup: 2.x || 3.x || 4.x - rollup@4.26.0: - resolution: {integrity: sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg==} + rollup@4.29.1: + resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.29.1: - resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} + rollup@4.30.1: + resolution: {integrity: sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -9622,9 +9679,9 @@ packages: rrweb-cssom@0.7.1: resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} - run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} - engines: {node: '>=0.12.0'} + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -9642,11 +9699,15 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass-loader@14.1.1: - resolution: {integrity: sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==} + sass-loader@16.0.4: + resolution: {integrity: sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg==} engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -9666,18 +9727,13 @@ packages: webpack: optional: true - sass@1.71.1: - resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==} - engines: {node: '>=14.0.0'} - hasBin: true - - sass@1.80.7: - resolution: {integrity: sha512-MVWvN0u5meytrSjsU7AWsbhoXi1sc58zADXFllfZzbsBT1GHjjar6JwBINYPRrkx/zqnQ6uqbQuHgE95O+C+eQ==} + sass@1.83.0: + resolution: {integrity: sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==} engines: {node: '>=14.0.0'} hasBin: true - sass@1.83.0: - resolution: {integrity: sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==} + sass@1.83.1: + resolution: {integrity: sha512-EVJbDaEs4Rr3F0glJzFSOvtg2/oy2V/YrGFPqPY24UqcLDWcI9ZY5sN+qyO3c/QCZwzgfirvhXvINiJCE/OLcA==} engines: {node: '>=14.0.0'} hasBin: true @@ -9722,11 +9778,6 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -9765,10 +9816,6 @@ packages: engines: {node: '>= 14'} hasBin: true - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - setprototypeof@1.1.0: resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} @@ -9875,9 +9922,9 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} @@ -9895,6 +9942,17 @@ packages: resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} engines: {node: '>= 18'} + socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + + socket.io@4.8.1: + resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} + engines: {node: '>=10.2.0'} + sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} @@ -9993,6 +10051,10 @@ packages: std-env@3.8.0: resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + streamroller@3.1.5: + resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} + engines: {node: '>=8.0'} + string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -10145,24 +10207,21 @@ packages: uglify-js: optional: true - terser@5.29.1: - resolution: {integrity: sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==} - engines: {node: '>=10'} - hasBin: true - terser@5.37.0: resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==} engines: {node: '>=10'} hasBin: true - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -10228,6 +10287,12 @@ packages: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -10269,9 +10334,6 @@ packages: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -10337,6 +10399,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} @@ -10347,6 +10414,10 @@ packages: engines: {node: '>=14.17'} hasBin: true + ua-parser-js@0.7.40: + resolution: {integrity: sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ==} + hasBin: true + uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} @@ -10360,10 +10431,6 @@ packages: undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - undici@6.11.1: - resolution: {integrity: sha512-KyhzaLJnV1qa3BSHdj4AZ2ndqI0QWPxYzaIOio0WzcEJB9gvuysprJSLtpvc2D9mhR9jPDUk7xlJlZbH2KR5iw==} - engines: {node: '>=18.0'} - unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -10380,6 +10447,10 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + unique-filename@4.0.0: resolution: {integrity: sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -10407,18 +10478,6 @@ packages: resolution: {integrity: sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==} engines: {node: '>=14.0.0'} - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - update-browserslist-db@1.1.2: resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} hasBin: true @@ -10517,34 +10576,6 @@ packages: vite: optional: true - vite@5.1.7: - resolution: {integrity: sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - vite@5.4.11: resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} @@ -10624,14 +10655,6 @@ packages: vite: optional: true - vitefu@1.0.5: - resolution: {integrity: sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 - peerDependenciesMeta: - vite: - optional: true - vitest@2.1.8: resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -10657,6 +10680,10 @@ packages: jsdom: optional: true + void-elements@2.0.1: + resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==} + engines: {node: '>=0.10.0'} + vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} @@ -10690,10 +10717,6 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} - watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} - watchpack@2.4.2: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} @@ -10711,27 +10734,21 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - webpack-dev-middleware@5.3.4: - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - webpack-dev-middleware@6.1.2: - resolution: {integrity: sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ==} - engines: {node: '>= 14.15.0'} + webpack-dev-middleware@7.4.2: + resolution: {integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==} + engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.0.0 peerDependenciesMeta: webpack: optional: true - webpack-dev-server@4.15.1: - resolution: {integrity: sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==} - engines: {node: '>= 12.13.0'} + webpack-dev-server@5.2.0: + resolution: {integrity: sha512-90SqqYXA2SK36KcT6o1bvwvZfJFcmoamqeJY7+boioffX9g9C0wjjJRGUrQIuh43pb0ttX7+ssavmj/WN2RHtA==} + engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: - webpack: ^4.37.0 || ^5.0.0 + webpack: ^5.0.0 webpack-cli: '*' peerDependenciesMeta: webpack: @@ -10739,9 +10756,9 @@ packages: webpack-cli: optional: true - webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} + webpack-merge@6.0.1: + resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} + engines: {node: '>=18.0.0'} webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} @@ -10760,8 +10777,8 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.90.3: - resolution: {integrity: sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==} + webpack@5.97.1: + resolution: {integrity: sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -10839,6 +10856,18 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + 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 + ws@8.18.0: resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} @@ -10893,10 +10922,18 @@ packages: engines: {node: '>= 14'} hasBin: true + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -10934,143 +10971,211 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@analogjs/vite-plugin-angular@1.10.3(@angular-devkit/build-angular@17.3.8(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@types/express@4.17.21)(@types/node@22.10.10)(ng-packagr@19.0.1(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(typescript@5.7.3))(@angular/build@19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(less@4.2.0)(postcss@8.4.35)(terser@5.29.1)(typescript@5.7.3))': + '@analogjs/vite-plugin-angular@1.13.0(rgq6hujoid62bmeuzktk4sungq)': dependencies: ts-morph: 21.0.1 vfile: 6.0.3 optionalDependencies: - '@angular-devkit/build-angular': 17.3.8(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@types/express@4.17.21)(@types/node@22.10.10)(ng-packagr@19.0.1(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(typescript@5.7.3) - '@angular/build': 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(less@4.2.0)(postcss@8.4.35)(terser@5.29.1)(typescript@5.7.3) + '@angular-devkit/build-angular': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(jiti@2.4.2)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + '@angular/build': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.4.49)(terser@5.37.0)(typescript@5.6.3) - '@angular-devkit/architect@0.1703.8': + '@analogjs/vitest-angular@1.13.0(@analogjs/vite-plugin-angular@1.13.0(rgq6hujoid62bmeuzktk4sungq))(vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: - '@angular-devkit/core': 17.3.8 - rxjs: 7.8.1 - transitivePeerDependencies: - - chokidar - optional: true + '@analogjs/vite-plugin-angular': 1.13.0(rgq6hujoid62bmeuzktk4sungq) + vitest: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) - '@angular-devkit/architect@0.1900.6(chokidar@4.0.3)': + '@angular-devkit/architect@0.1901.5(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 19.0.6(chokidar@4.0.3) + '@angular-devkit/core': 19.1.5(chokidar@4.0.3) rxjs: 7.8.1 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@17.3.8(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@types/express@4.17.21)(@types/node@22.10.10)(ng-packagr@19.0.1(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(typescript@5.7.3)': + '@angular-devkit/build-angular@19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(jiti@2.4.2)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1703.8 - '@angular-devkit/build-webpack': 0.1703.8(webpack-dev-server@4.15.1(webpack@5.90.3(esbuild@0.20.1)))(webpack@5.90.3(esbuild@0.20.1)) - '@angular-devkit/core': 17.3.8 - '@angular/compiler-cli': 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) - '@babel/core': 7.24.0 - '@babel/generator': 7.23.6 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.24.0) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-runtime': 7.24.0(@babel/core@7.24.0) - '@babel/preset-env': 7.24.0(@babel/core@7.24.0) - '@babel/runtime': 7.24.0 - '@discoveryjs/json-ext': 0.5.7 - '@ngtools/webpack': 17.3.8(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(typescript@5.7.3)(webpack@5.90.3(esbuild@0.20.1)) - '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.1.7(@types/node@22.10.10)(less@4.2.0)(sass@1.71.1)(terser@5.29.1)) + '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) + '@angular-devkit/build-webpack': 0.1901.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.97.1(esbuild@0.24.2)))(webpack@5.97.1(esbuild@0.24.2)) + '@angular-devkit/core': 19.1.5(chokidar@4.0.3) + '@angular/build': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.4.49)(terser@5.37.0)(typescript@5.6.3) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + '@babel/core': 7.26.0 + '@babel/generator': 7.26.3 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/runtime': 7.26.0 + '@discoveryjs/json-ext': 0.6.3 + '@ngtools/webpack': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(typescript@5.6.3)(webpack@5.97.1(esbuild@0.24.2)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) ansi-colors: 4.1.3 - autoprefixer: 10.4.18(postcss@8.4.35) - babel-loader: 9.1.3(@babel/core@7.24.0)(webpack@5.90.3(esbuild@0.20.1)) - babel-plugin-istanbul: 6.1.1 + autoprefixer: 10.4.20(postcss@8.4.49) + babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(esbuild@0.24.2)) browserslist: 4.24.4 - copy-webpack-plugin: 11.0.0(webpack@5.90.3(esbuild@0.20.1)) - critters: 0.0.22 - css-loader: 6.10.0(webpack@5.90.3(esbuild@0.20.1)) - esbuild-wasm: 0.20.1 - fast-glob: 3.3.2 - http-proxy-middleware: 2.0.6(@types/express@4.17.21) - https-proxy-agent: 7.0.4 - inquirer: 9.2.15 - jsonc-parser: 3.2.1 + copy-webpack-plugin: 12.0.2(webpack@5.97.1(esbuild@0.24.2)) + css-loader: 7.1.2(webpack@5.97.1(esbuild@0.24.2)) + esbuild-wasm: 0.24.2 + fast-glob: 3.3.3 + http-proxy-middleware: 3.0.3 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 - less: 4.2.0 - less-loader: 11.1.0(less@4.2.0)(webpack@5.90.3(esbuild@0.20.1)) - license-webpack-plugin: 4.0.2(webpack@5.90.3(esbuild@0.20.1)) - loader-utils: 3.2.1 - magic-string: 0.30.8 - mini-css-extract-plugin: 2.8.1(webpack@5.90.3(esbuild@0.20.1)) - mrmime: 2.0.0 - open: 8.4.2 + less: 4.2.1 + less-loader: 12.2.0(less@4.2.1)(webpack@5.97.1(esbuild@0.24.2)) + license-webpack-plugin: 4.0.2(webpack@5.97.1(esbuild@0.24.2)) + loader-utils: 3.3.1 + mini-css-extract-plugin: 2.9.2(webpack@5.97.1(esbuild@0.24.2)) + open: 10.1.0 ora: 5.4.1 - parse5-html-rewriting-stream: 7.0.0 - picomatch: 4.0.1 - piscina: 4.4.0 - postcss: 8.4.35 - postcss-loader: 8.1.1(postcss@8.4.35)(typescript@5.7.3)(webpack@5.90.3(esbuild@0.20.1)) + picomatch: 4.0.2 + piscina: 4.8.0 + postcss: 8.4.49 + postcss-loader: 8.1.1(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(esbuild@0.24.2)) resolve-url-loader: 5.0.0 rxjs: 7.8.1 - sass: 1.71.1 - sass-loader: 14.1.1(sass@1.71.1)(webpack@5.90.3(esbuild@0.20.1)) - semver: 7.6.0 - source-map-loader: 5.0.0(webpack@5.90.3(esbuild@0.20.1)) + sass: 1.83.1 + sass-loader: 16.0.4(sass@1.83.1)(webpack@5.97.1(esbuild@0.24.2)) + semver: 7.6.3 + source-map-loader: 5.0.0(webpack@5.97.1(esbuild@0.24.2)) source-map-support: 0.5.21 - terser: 5.29.1 + terser: 5.37.0 tree-kill: 1.2.2 - tslib: 2.6.2 - typescript: 5.7.3 - undici: 6.11.1 - vite: 5.1.7(@types/node@22.10.10)(less@4.2.0)(sass@1.71.1)(terser@5.29.1) - watchpack: 2.4.0 - webpack: 5.90.3(esbuild@0.24.2) - webpack-dev-middleware: 6.1.2(webpack@5.90.3(esbuild@0.20.1)) - webpack-dev-server: 4.15.1(webpack@5.90.3(esbuild@0.20.1)) - webpack-merge: 5.10.0 - webpack-subresource-integrity: 5.1.0(webpack@5.90.3(esbuild@0.20.1)) + tslib: 2.8.1 + typescript: 5.6.3 + webpack: 5.97.1(esbuild@0.24.2) + webpack-dev-middleware: 7.4.2(webpack@5.97.1(esbuild@0.24.2)) + webpack-dev-server: 5.2.0(webpack@5.97.1(esbuild@0.24.2)) + webpack-merge: 6.0.1 + webpack-subresource-integrity: 5.1.0(webpack@5.97.1(esbuild@0.24.2)) optionalDependencies: - esbuild: 0.20.1 - ng-packagr: 19.0.1(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3) + esbuild: 0.24.2 + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3) transitivePeerDependencies: + - '@angular/compiler' - '@rspack/core' - '@swc/core' - - '@types/express' - '@types/node' - bufferutil - chokidar - debug - html-webpack-plugin + - jiti - lightningcss - node-sass - sass-embedded - stylus - sugarss - supports-color + - tsx - uglify-js - utf-8-validate + - vite - webpack-cli + - yaml optional: true - '@angular-devkit/build-webpack@0.1703.8(webpack-dev-server@4.15.1(webpack@5.90.3(esbuild@0.20.1)))(webpack@5.90.3(esbuild@0.20.1))': + '@angular-devkit/build-angular@19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(tsx@4.19.2)(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(yaml@2.6.1)': dependencies: - '@angular-devkit/architect': 0.1703.8 + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) + '@angular-devkit/build-webpack': 0.1901.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.97.1(esbuild@0.24.2)))(webpack@5.97.1(esbuild@0.24.2)) + '@angular-devkit/core': 19.1.5(chokidar@4.0.3) + '@angular/build': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(postcss@8.4.49)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.6.1) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + '@babel/core': 7.26.0 + '@babel/generator': 7.26.3 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/runtime': 7.26.0 + '@discoveryjs/json-ext': 0.6.3 + '@ngtools/webpack': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(typescript@5.7.3)(webpack@5.97.1(esbuild@0.24.2)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + ansi-colors: 4.1.3 + autoprefixer: 10.4.20(postcss@8.4.49) + babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(esbuild@0.24.2)) + browserslist: 4.24.4 + copy-webpack-plugin: 12.0.2(webpack@5.97.1(esbuild@0.24.2)) + css-loader: 7.1.2(webpack@5.97.1(esbuild@0.24.2)) + esbuild-wasm: 0.24.2 + fast-glob: 3.3.3 + http-proxy-middleware: 3.0.3 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + karma-source-map-support: 1.4.0 + less: 4.2.1 + less-loader: 12.2.0(less@4.2.1)(webpack@5.97.1(esbuild@0.24.2)) + license-webpack-plugin: 4.0.2(webpack@5.97.1(esbuild@0.24.2)) + loader-utils: 3.3.1 + mini-css-extract-plugin: 2.9.2(webpack@5.97.1(esbuild@0.24.2)) + open: 10.1.0 + ora: 5.4.1 + picomatch: 4.0.2 + piscina: 4.8.0 + postcss: 8.4.49 + postcss-loader: 8.1.1(postcss@8.4.49)(typescript@5.7.3)(webpack@5.97.1(esbuild@0.24.2)) + resolve-url-loader: 5.0.0 rxjs: 7.8.1 - webpack: 5.90.3(esbuild@0.24.2) - webpack-dev-server: 4.15.1(webpack@5.90.3(esbuild@0.20.1)) + sass: 1.83.1 + sass-loader: 16.0.4(sass@1.83.1)(webpack@5.97.1(esbuild@0.24.2)) + semver: 7.6.3 + source-map-loader: 5.0.0(webpack@5.97.1(esbuild@0.24.2)) + source-map-support: 0.5.21 + terser: 5.37.0 + tree-kill: 1.2.2 + tslib: 2.8.1 + typescript: 5.7.3 + webpack: 5.97.1(esbuild@0.24.2) + webpack-dev-middleware: 7.4.2(webpack@5.97.1(esbuild@0.24.2)) + webpack-dev-server: 5.2.0(webpack@5.97.1(esbuild@0.24.2)) + webpack-merge: 6.0.1 + webpack-subresource-integrity: 5.1.0(webpack@5.97.1(esbuild@0.24.2)) + optionalDependencies: + esbuild: 0.24.2 + karma: 6.4.4 + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3) transitivePeerDependencies: + - '@angular/compiler' + - '@rspack/core' + - '@swc/core' + - '@types/node' + - bufferutil - chokidar - optional: true + - debug + - html-webpack-plugin + - jiti + - lightningcss + - node-sass + - sass-embedded + - stylus + - sugarss + - supports-color + - tsx + - uglify-js + - utf-8-validate + - vite + - webpack-cli + - yaml - '@angular-devkit/core@17.3.8': + '@angular-devkit/build-webpack@0.1901.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.97.1(esbuild@0.24.2)))(webpack@5.97.1(esbuild@0.24.2))': dependencies: - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - jsonc-parser: 3.2.1 - picomatch: 4.0.1 + '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) rxjs: 7.8.1 - source-map: 0.7.4 - optional: true + webpack: 5.97.1(esbuild@0.24.2) + webpack-dev-server: 5.2.0(webpack@5.97.1(esbuild@0.24.2)) + transitivePeerDependencies: + - chokidar - '@angular-devkit/core@19.0.6(chokidar@4.0.3)': + '@angular-devkit/core@19.1.5(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -11081,126 +11186,194 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@19.0.6(chokidar@4.0.3)': + '@angular-devkit/schematics@19.1.5(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 19.0.6(chokidar@4.0.3) + '@angular-devkit/core': 19.1.5(chokidar@4.0.3) jsonc-parser: 3.3.1 - magic-string: 0.30.12 + magic-string: 0.30.17 ora: 5.4.1 rxjs: 7.8.1 transitivePeerDependencies: - chokidar - '@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))': + '@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))': dependencies: - '@angular/core': 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/core': 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(less@4.2.0)(postcss@8.5.1)(terser@5.37.0)(typescript@5.6.3)': + '@angular/build@19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.5.1)(terser@5.37.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1900.6(chokidar@4.0.3) - '@angular/compiler': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) - '@angular/compiler-cli': 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) + '@angular-devkit/core': 19.1.5(chokidar@4.0.3) + '@angular/compiler': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@inquirer/confirm': 5.0.2(@types/node@22.10.10) - '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.80.7)(terser@5.37.0)) - beasties: 0.1.0 - browserslist: 4.23.1 - esbuild: 0.24.0 - fast-glob: 3.3.2 - https-proxy-agent: 7.0.5 + '@inquirer/confirm': 5.1.1(@types/node@22.10.10) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + beasties: 0.2.0 + browserslist: 4.24.4 + esbuild: 0.24.2 + fast-glob: 3.3.3 + https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 listr2: 8.2.5 - magic-string: 0.30.12 + magic-string: 0.30.17 mrmime: 2.0.0 parse5-html-rewriting-stream: 7.0.0 picomatch: 4.0.2 - piscina: 4.7.0 - rollup: 4.26.0 - sass: 1.80.7 + piscina: 4.8.0 + rollup: 4.30.1 + sass: 1.83.1 semver: 7.6.3 typescript: 5.6.3 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.80.7)(terser@5.37.0) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) watchpack: 2.4.2 optionalDependencies: - less: 4.2.0 - lmdb: 3.1.5 + less: 4.2.1 + lmdb: 3.2.2 + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3) postcss: 8.5.1 transitivePeerDependencies: - '@types/node' - chokidar + - jiti - lightningcss - sass-embedded - stylus - sugarss - supports-color - terser + - tsx + - yaml - '@angular/build@19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(less@4.2.0)(postcss@8.4.35)(terser@5.29.1)(typescript@5.7.3)': + '@angular/build@19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.4.49)(terser@5.37.0)(typescript@5.6.3)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1900.6(chokidar@4.0.3) - '@angular/compiler': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) - '@angular/compiler-cli': 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) + '@angular-devkit/core': 19.1.5(chokidar@4.0.3) + '@angular/compiler': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@inquirer/confirm': 5.0.2(@types/node@22.10.10) - '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.80.7)(terser@5.29.1)) - beasties: 0.1.0 - browserslist: 4.23.1 - esbuild: 0.24.0 - fast-glob: 3.3.2 - https-proxy-agent: 7.0.5 + '@inquirer/confirm': 5.1.1(@types/node@22.10.10) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + beasties: 0.2.0 + browserslist: 4.24.4 + esbuild: 0.24.2 + fast-glob: 3.3.3 + https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 listr2: 8.2.5 - magic-string: 0.30.12 + magic-string: 0.30.17 mrmime: 2.0.0 parse5-html-rewriting-stream: 7.0.0 picomatch: 4.0.2 - piscina: 4.7.0 - rollup: 4.26.0 - sass: 1.80.7 + piscina: 4.8.0 + rollup: 4.30.1 + sass: 1.83.1 semver: 7.6.3 - typescript: 5.7.3 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.80.7)(terser@5.29.1) + typescript: 5.6.3 + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) watchpack: 2.4.2 optionalDependencies: - less: 4.2.0 - lmdb: 3.1.5 - postcss: 8.4.35 + less: 4.2.1 + lmdb: 3.2.2 + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3) + postcss: 8.4.49 transitivePeerDependencies: - '@types/node' - chokidar + - jiti - lightningcss - sass-embedded - stylus - sugarss - supports-color - terser + - tsx + - yaml optional: true - '@angular/cli@19.0.6(@types/node@22.10.10)(chokidar@4.0.3)': + '@angular/build@19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3))(postcss@8.4.49)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.6.1)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) + '@angular-devkit/core': 19.1.5(chokidar@4.0.3) + '@angular/compiler': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) + '@inquirer/confirm': 5.1.1(@types/node@22.10.10) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + beasties: 0.2.0 + browserslist: 4.24.4 + esbuild: 0.24.2 + fast-glob: 3.3.3 + https-proxy-agent: 7.0.6 + istanbul-lib-instrument: 6.0.3 + listr2: 8.2.5 + magic-string: 0.30.17 + mrmime: 2.0.0 + parse5-html-rewriting-stream: 7.0.0 + picomatch: 4.0.2 + piscina: 4.8.0 + rollup: 4.30.1 + sass: 1.83.1 + semver: 7.6.3 + typescript: 5.7.3 + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + watchpack: 2.4.2 + optionalDependencies: + less: 4.2.1 + lmdb: 3.2.2 + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3) + postcss: 8.4.49 + transitivePeerDependencies: + - '@types/node' + - chokidar + - jiti + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@angular/cdk@17.3.10(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1)': + dependencies: + '@angular/common': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/core': 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) + rxjs: 7.8.1 + tslib: 2.8.1 + optionalDependencies: + parse5: 7.1.2 + + '@angular/cli@19.1.5(@types/node@22.10.10)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.1900.6(chokidar@4.0.3) - '@angular-devkit/core': 19.0.6(chokidar@4.0.3) - '@angular-devkit/schematics': 19.0.6(chokidar@4.0.3) - '@inquirer/prompts': 7.1.0(@types/node@22.10.10) - '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.1.0(@types/node@22.10.10)) - '@schematics/angular': 19.0.6(chokidar@4.0.3) + '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) + '@angular-devkit/core': 19.1.5(chokidar@4.0.3) + '@angular-devkit/schematics': 19.1.5(chokidar@4.0.3) + '@inquirer/prompts': 7.2.1(@types/node@22.10.10) + '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.2.1(@types/node@22.10.10)) + '@schematics/angular': 19.1.5(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 ini: 5.0.0 jsonc-parser: 3.3.1 listr2: 8.2.5 - npm-package-arg: 12.0.0 + npm-package-arg: 12.0.1 npm-pick-manifest: 10.0.0 pacote: 20.0.0 - resolve: 1.22.8 + resolve: 1.22.10 semver: 7.6.3 symbol-observable: 4.0.0 yargs: 17.7.2 @@ -11210,15 +11383,15 @@ snapshots: - chokidar - supports-color - '@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1)': + '@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1)': dependencies: - '@angular/core': 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/core': 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) rxjs: 7.8.1 tslib: 2.8.1 - '@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3)': + '@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3)': dependencies: - '@angular/compiler': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/compiler': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@babel/core': 7.26.0 '@jridgewell/sourcemap-codec': 1.5.0 chokidar: 4.0.3 @@ -11231,9 +11404,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3)': + '@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3)': dependencies: - '@angular/compiler': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/compiler': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) '@babel/core': 7.26.0 '@jridgewell/sourcemap-codec': 1.5.0 chokidar: 4.0.3 @@ -11246,47 +11419,47 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))': + '@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))': dependencies: tslib: 2.8.1 optionalDependencies: - '@angular/core': 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/core': 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)': + '@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)': dependencies: rxjs: 7.8.1 tslib: 2.8.1 zone.js: 0.15.0 - '@angular/forms@19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1)': + '@angular/forms@19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1)': dependencies: - '@angular/common': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) - '@angular/core': 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/platform-browser': 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/common': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/core': 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/platform-browser': 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) rxjs: 7.8.1 tslib: 2.8.1 - '@angular/platform-browser-dynamic@19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))': + '@angular/platform-browser-dynamic@19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))': dependencies: - '@angular/common': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) - '@angular/compiler': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) - '@angular/core': 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/platform-browser': 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/common': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/compiler': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/core': 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/platform-browser': 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) tslib: 2.8.1 - '@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))': + '@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))': dependencies: - '@angular/common': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) - '@angular/core': 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/common': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/core': 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/animations': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) - '@angular/router@19.0.5(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1)': + '@angular/router@19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(rxjs@7.8.1)': dependencies: - '@angular/common': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) - '@angular/core': 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/platform-browser': 19.0.5(@angular/animations@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) + '@angular/common': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) + '@angular/core': 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/platform-browser': 19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) rxjs: 7.8.1 tslib: 2.8.1 @@ -11303,31 +11476,7 @@ snapshots: '@babel/compat-data@7.24.7': {} - '@babel/compat-data@7.26.3': {} - - '@babel/compat-data@7.26.5': - optional: true - - '@babel/core@7.24.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.0) - '@babel/helpers': 7.26.7 - '@babel/parser': 7.26.7 - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 - convert-source-map: 2.0.0 - debug: 4.4.0 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - optional: true + '@babel/compat-data@7.26.5': {} '@babel/core@7.24.7': dependencies: @@ -11353,30 +11502,22 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/helper-compilation-targets': 7.25.9 + '@babel/generator': 7.26.5 + '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.3 + '@babel/helpers': 7.26.7 + '@babel/parser': 7.26.7 '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 convert-source-map: 2.0.0 - debug: 4.3.6 + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.23.6': - dependencies: - '@babel/types': 7.26.7 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - optional: true - '@babel/generator@7.24.7': dependencies: '@babel/types': 7.26.3 @@ -11386,9 +11527,9 @@ snapshots: '@babel/generator@7.26.3': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 - '@jridgewell/gen-mapping': 0.3.5 + '@babel/parser': 7.26.7 + '@babel/types': 7.26.7 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 @@ -11399,30 +11540,16 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 - optional: true - - '@babel/helper-annotate-as-pure@7.22.5': - dependencies: - '@babel/types': 7.26.7 - optional: true '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.7 '@babel/helper-compilation-targets@7.24.7': dependencies: '@babel/compat-data': 7.24.7 '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-compilation-targets@7.25.9': - dependencies: - '@babel/compat-data': 7.26.3 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.3 + browserslist: 4.24.4 lru-cache: 5.1.1 semver: 6.3.1 @@ -11433,21 +11560,6 @@ snapshots: browserslist: 4.24.4 lru-cache: 5.1.1 semver: 6.3.1 - optional: true - - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.24.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.4 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - optional: true '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': dependencies: @@ -11462,17 +11574,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.24.0)': + '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 6.2.0 semver: 6.3.1 - optional: true - '@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.24.0)': + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 debug: 4.4.0 @@ -11480,37 +11591,24 @@ snapshots: resolve: 1.22.10 transitivePeerDependencies: - supports-color - optional: true - - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - debug: 4.4.0 - lodash.debounce: 4.0.8 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - optional: true '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.7 '@babel/helper-function-name@7.24.7': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.26.3 + '@babel/template': 7.25.9 + '@babel/types': 7.26.7 '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.7 '@babel/helper-member-expression-to-functions@7.25.9': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 transitivePeerDependencies: - supports-color @@ -11543,79 +11641,56 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - optional: true - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/traverse': 7.26.7 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.7 '@babel/helper-plugin-utils@7.24.7': {} '@babel/helper-plugin-utils@7.25.9': {} - '@babel/helper-plugin-utils@7.26.5': - optional: true + '@babel/helper-plugin-utils@7.26.5': {} - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.24.0)': + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-wrap-function': 7.25.9 '@babel/traverse': 7.26.7 transitivePeerDependencies: - supports-color - optional: true - - '@babel/helper-replace-supers@7.25.9(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.4 - transitivePeerDependencies: - - supports-color - optional: true '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/traverse': 7.26.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.26.5(@babel/core@7.24.0)': + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 '@babel/traverse': 7.26.7 transitivePeerDependencies: - supports-color - optional: true '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.26.3 + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 transitivePeerDependencies: - supports-color @@ -11626,14 +11701,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.22.6': - dependencies: - '@babel/types': 7.26.7 - optional: true - '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.26.7 '@babel/helper-string-parser@7.25.9': {} @@ -11650,23 +11720,16 @@ snapshots: '@babel/types': 7.26.7 transitivePeerDependencies: - supports-color - optional: true '@babel/helpers@7.24.7': dependencies: '@babel/template': 7.24.7 '@babel/types': 7.26.3 - '@babel/helpers@7.26.0': - dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 - '@babel/helpers@7.26.7': dependencies: '@babel/template': 7.25.9 '@babel/types': 7.26.7 - optional: true '@babel/highlight@7.24.7': dependencies: @@ -11682,96 +11745,55 @@ snapshots: '@babel/parser@7.26.7': dependencies: '@babel/types': 7.26.7 - optional: true - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.24.0) - transitivePeerDependencies: - - supports-color - optional: true - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/traverse': 7.26.7 transitivePeerDependencies: - supports-color - optional: true - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - optional: true - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.0)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true + '@babel/core': 7.26.0 - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.24.0)': + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.25.9 - optional: true '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7)': dependencies: @@ -11788,348 +11810,267 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0)': - dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.24.0)': + '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/traverse': 7.26.7 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.0)': + '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.24.0) + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.24.0)': + '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.24.0)': + '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.24.0) + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) '@babel/traverse': 7.26.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/template': 7.25.9 - optional: true - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.24.0)': + '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 '@babel/traverse': 7.26.7 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.24.0)': + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-identifier': 7.25.9 '@babel/traverse': 7.26.7 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.24.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.24.0) - optional: true + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.24.0) + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.24.0) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)': dependencies: @@ -12159,64 +12100,62 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 regenerator-transform: 0.15.2 - optional: true - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-runtime@7.24.0(@babel/core@7.24.0)': + '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.24.0) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.24.0) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.24.0) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - optional: true - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.24.0)': + '@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': dependencies: @@ -12229,132 +12168,114 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.24.0)': + '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.26.5 - optional: true - '@babel/preset-env@7.24.0(@babel/core@7.24.0)': + '@babel/preset-env@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/compat-data': 7.26.5 - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.24.0) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.24.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.24.0) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.24.0) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.24.0) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.24.0) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.24.0) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.24.0) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-typeof-symbol': 7.26.7(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.24.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.0) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.24.0) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.24.0) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.24.0) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) + '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.0) + '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) + '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.0) + '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-typeof-symbol': 7.26.7(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) core-js-compat: 3.40.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - optional: true - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.0)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 '@babel/types': 7.26.7 esutils: 2.0.3 - optional: true - '@babel/runtime@7.24.0': + '@babel/runtime@7.26.0': dependencies: regenerator-runtime: 0.14.1 - optional: true '@babel/template@7.24.7': dependencies: @@ -12371,7 +12292,7 @@ snapshots: '@babel/traverse@7.24.7': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 + '@babel/generator': 7.26.5 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-hoist-variables': 7.24.7 @@ -12386,7 +12307,7 @@ snapshots: '@babel/traverse@7.26.4': dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 + '@babel/generator': 7.26.5 '@babel/parser': 7.26.3 '@babel/template': 7.25.9 '@babel/types': 7.26.3 @@ -12406,7 +12327,6 @@ snapshots: globals: 11.12.0 transitivePeerDependencies: - supports-color - optional: true '@babel/types@7.26.3': dependencies: @@ -12417,17 +12337,18 @@ snapshots: dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - optional: true - '@builder.io/qwik@1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))': + '@builder.io/qwik@1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: csstype: 3.1.3 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) - '@builder.io/qwik@1.12.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@builder.io/qwik@1.12.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: csstype: 3.1.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + + '@colors/colors@1.5.0': {} '@commitlint/parse@19.5.0': dependencies: @@ -12440,8 +12361,7 @@ snapshots: '@types/conventional-commits-parser': 5.0.0 chalk: 5.3.0 - '@discoveryjs/json-ext@0.5.7': - optional: true + '@discoveryjs/json-ext@0.6.3': {} '@dnd-kit/accessibility@3.1.1(react@19.0.0)': dependencies: @@ -12488,429 +12408,219 @@ snapshots: dependencies: tslib: 2.8.1 - '@esbuild/aix-ppc64@0.19.12': - optional: true - - '@esbuild/aix-ppc64@0.20.1': - optional: true - '@esbuild/aix-ppc64@0.21.5': optional: true '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/aix-ppc64@0.24.0': - optional: true - '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/android-arm64@0.19.12': - optional: true - - '@esbuild/android-arm64@0.20.1': - optional: true - '@esbuild/android-arm64@0.21.5': optional: true '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm64@0.24.0': - optional: true - '@esbuild/android-arm64@0.24.2': optional: true - '@esbuild/android-arm@0.19.12': - optional: true - - '@esbuild/android-arm@0.20.1': - optional: true - '@esbuild/android-arm@0.21.5': optional: true '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-arm@0.24.0': - optional: true - '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-x64@0.19.12': - optional: true - - '@esbuild/android-x64@0.20.1': - optional: true - '@esbuild/android-x64@0.21.5': optional: true '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/android-x64@0.24.0': - optional: true - '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.19.12': - optional: true - - '@esbuild/darwin-arm64@0.20.1': - optional: true - '@esbuild/darwin-arm64@0.21.5': optional: true '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.24.0': - optional: true - '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-x64@0.19.12': - optional: true - - '@esbuild/darwin-x64@0.20.1': - optional: true - '@esbuild/darwin-x64@0.21.5': optional: true '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/darwin-x64@0.24.0': - optional: true - '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.19.12': - optional: true - - '@esbuild/freebsd-arm64@0.20.1': - optional: true - '@esbuild/freebsd-arm64@0.21.5': optional: true '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.24.0': - optional: true - '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.19.12': - optional: true - - '@esbuild/freebsd-x64@0.20.1': - optional: true - '@esbuild/freebsd-x64@0.21.5': optional: true '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.24.0': - optional: true - '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/linux-arm64@0.19.12': - optional: true - - '@esbuild/linux-arm64@0.20.1': - optional: true - '@esbuild/linux-arm64@0.21.5': optional: true '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm64@0.24.0': - optional: true - '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm@0.19.12': - optional: true - - '@esbuild/linux-arm@0.20.1': - optional: true - '@esbuild/linux-arm@0.21.5': optional: true '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-arm@0.24.0': - optional: true - '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-ia32@0.19.12': - optional: true - - '@esbuild/linux-ia32@0.20.1': - optional: true - '@esbuild/linux-ia32@0.21.5': optional: true '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-ia32@0.24.0': - optional: true - '@esbuild/linux-ia32@0.24.2': optional: true - '@esbuild/linux-loong64@0.19.12': - optional: true - - '@esbuild/linux-loong64@0.20.1': - optional: true - '@esbuild/linux-loong64@0.21.5': optional: true '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-loong64@0.24.0': - optional: true - '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-mips64el@0.19.12': - optional: true - - '@esbuild/linux-mips64el@0.20.1': - optional: true - '@esbuild/linux-mips64el@0.21.5': optional: true '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-mips64el@0.24.0': - optional: true - '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-ppc64@0.19.12': - optional: true - - '@esbuild/linux-ppc64@0.20.1': - optional: true - '@esbuild/linux-ppc64@0.21.5': optional: true '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-ppc64@0.24.0': - optional: true - '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.19.12': - optional: true - - '@esbuild/linux-riscv64@0.20.1': - optional: true - '@esbuild/linux-riscv64@0.21.5': optional: true '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.24.0': - optional: true - '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-s390x@0.19.12': - optional: true - - '@esbuild/linux-s390x@0.20.1': - optional: true - '@esbuild/linux-s390x@0.21.5': optional: true '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-s390x@0.24.0': - optional: true - '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-x64@0.19.12': - optional: true - - '@esbuild/linux-x64@0.20.1': - optional: true - '@esbuild/linux-x64@0.21.5': optional: true '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/linux-x64@0.24.0': - optional: true - '@esbuild/linux-x64@0.24.2': optional: true '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.19.12': - optional: true - - '@esbuild/netbsd-x64@0.20.1': - optional: true - '@esbuild/netbsd-x64@0.21.5': optional: true '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.24.0': - optional: true - '@esbuild/netbsd-x64@0.24.2': optional: true '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/openbsd-arm64@0.24.0': - optional: true - '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.19.12': - optional: true - - '@esbuild/openbsd-x64@0.20.1': - optional: true - '@esbuild/openbsd-x64@0.21.5': optional: true '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.24.0': - optional: true - '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/sunos-x64@0.19.12': - optional: true - - '@esbuild/sunos-x64@0.20.1': - optional: true - '@esbuild/sunos-x64@0.21.5': optional: true '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/sunos-x64@0.24.0': - optional: true - '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/win32-arm64@0.19.12': - optional: true - - '@esbuild/win32-arm64@0.20.1': - optional: true - '@esbuild/win32-arm64@0.21.5': optional: true '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-arm64@0.24.0': - optional: true - '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-ia32@0.19.12': - optional: true - - '@esbuild/win32-ia32@0.20.1': - optional: true - '@esbuild/win32-ia32@0.21.5': optional: true '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-ia32@0.24.0': - optional: true - '@esbuild/win32-ia32@0.24.2': optional: true - '@esbuild/win32-x64@0.19.12': - optional: true - - '@esbuild/win32-x64@0.20.1': - optional: true - '@esbuild/win32-x64@0.21.5': optional: true '@esbuild/win32-x64@0.23.1': optional: true - '@esbuild/win32-x64@0.24.0': - optional: true - '@esbuild/win32-x64@0.24.2': optional: true @@ -13072,6 +12782,8 @@ snapshots: dependencies: levn: 0.4.1 + '@faker-js/faker@8.4.1': {} + '@faker-js/faker@9.3.0': {} '@gerrit0/mini-shiki@1.24.4': @@ -13102,12 +12814,6 @@ snapshots: ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 - '@inquirer/confirm@5.0.2(@types/node@22.10.10)': - dependencies: - '@inquirer/core': 10.1.2(@types/node@22.10.10) - '@inquirer/type': 3.0.2(@types/node@22.10.10) - '@types/node': 22.10.10 - '@inquirer/confirm@5.1.1(@types/node@22.10.10)': dependencies: '@inquirer/core': 10.1.2(@types/node@22.10.10) @@ -13163,7 +12869,7 @@ snapshots: '@types/node': 22.10.10 ansi-escapes: 4.3.2 - '@inquirer/prompts@7.1.0(@types/node@22.10.10)': + '@inquirer/prompts@7.2.1(@types/node@22.10.10)': dependencies: '@inquirer/checkbox': 4.0.4(@types/node@22.10.10) '@inquirer/confirm': 5.1.1(@types/node@22.10.10) @@ -13222,15 +12928,6 @@ snapshots: dependencies: minipass: 7.1.2 - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - optional: true - '@istanbuljs/schema@0.1.3': {} '@jest/schemas@29.6.3': @@ -13248,7 +12945,6 @@ snapshots: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 - optional: true '@jridgewell/resolve-uri@3.1.2': {} @@ -13258,7 +12954,6 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - optional: true '@jridgewell/sourcemap-codec@1.5.0': {} @@ -13267,6 +12962,22 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/json-pack@1.1.1(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/util@1.5.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + '@kwsites/file-exists@1.1.1': dependencies: debug: 4.3.6 @@ -13275,12 +12986,11 @@ snapshots: '@kwsites/promise-deferred@1.1.1': {} - '@leichtgewicht/ip-codec@2.0.5': - optional: true + '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.1.0(@types/node@22.10.10))': + '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.2.1(@types/node@22.10.10))': dependencies: - '@inquirer/prompts': 7.1.0(@types/node@22.10.10) + '@inquirer/prompts': 7.2.1(@types/node@22.10.10) '@inquirer/type': 1.5.5 '@lit-labs/ssr-dom-shim@1.2.0': {} @@ -13289,27 +12999,22 @@ snapshots: dependencies: '@lit-labs/ssr-dom-shim': 1.2.0 - '@ljharb/through@2.3.13': - dependencies: - call-bind: 1.0.8 - optional: true - - '@lmdb/lmdb-darwin-arm64@3.1.5': + '@lmdb/lmdb-darwin-arm64@3.2.2': optional: true - '@lmdb/lmdb-darwin-x64@3.1.5': + '@lmdb/lmdb-darwin-x64@3.2.2': optional: true - '@lmdb/lmdb-linux-arm64@3.1.5': + '@lmdb/lmdb-linux-arm64@3.2.2': optional: true - '@lmdb/lmdb-linux-arm@3.1.5': + '@lmdb/lmdb-linux-arm@3.2.2': optional: true - '@lmdb/lmdb-linux-x64@3.1.5': + '@lmdb/lmdb-linux-x64@3.2.2': optional: true - '@lmdb/lmdb-win32-x64@3.1.5': + '@lmdb/lmdb-win32-x64@3.2.2': optional: true '@microsoft/api-extractor-model@7.29.4(@types/node@22.10.2)': @@ -13331,7 +13036,7 @@ snapshots: '@rushstack/ts-command-line': 4.22.3(@types/node@22.10.2) lodash: 4.17.21 minimatch: 3.0.8 - resolve: 1.22.8 + resolve: 1.22.10 semver: 7.5.4 source-map: 0.6.1 typescript: 5.4.2 @@ -13343,7 +13048,7 @@ snapshots: '@microsoft/tsdoc': 0.15.0 ajv: 8.12.0 jju: 1.4.0 - resolve: 1.22.8 + resolve: 1.22.10 '@microsoft/tsdoc@0.15.0': {} @@ -13439,13 +13144,19 @@ snapshots: '@emnapi/runtime': 1.3.1 '@tybys/wasm-util': 0.9.0 - '@ngtools/webpack@17.3.8(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(typescript@5.7.3)(webpack@5.90.3(esbuild@0.20.1))': + '@ngtools/webpack@19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(typescript@5.6.3)(webpack@5.97.1(esbuild@0.24.2))': dependencies: - '@angular/compiler-cli': 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) - typescript: 5.7.3 - webpack: 5.90.3(esbuild@0.24.2) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + typescript: 5.6.3 + webpack: 5.97.1(esbuild@0.24.2) optional: true + '@ngtools/webpack@19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(typescript@5.7.3)(webpack@5.97.1(esbuild@0.24.2))': + dependencies: + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + typescript: 5.7.3 + webpack: 5.97.1(esbuild@0.24.2) + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -13460,7 +13171,7 @@ snapshots: '@npmcli/agent@3.0.0': dependencies: - agent-base: 7.1.1 + agent-base: 7.1.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 lru-cache: 10.3.0 @@ -13596,7 +13307,7 @@ snapshots: dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 - micromatch: 4.0.7 + micromatch: 4.0.8 node-addon-api: 7.1.1 optionalDependencies: '@parcel/watcher-android-arm64': 2.5.0 @@ -13617,13 +13328,13 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@preact/preset-vite@2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))': + '@preact/preset-vite@2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@prefresh/vite': 2.4.6(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + '@prefresh/vite': 2.4.6(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.26.0) debug: 4.4.0 @@ -13632,18 +13343,18 @@ snapshots: node-html-parser: 6.1.13 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - preact - supports-color - '@preact/preset-vite@2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@preact/preset-vite@2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@prefresh/vite': 2.4.6(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@prefresh/vite': 2.4.6(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.26.0) debug: 4.4.0 @@ -13652,7 +13363,7 @@ snapshots: node-html-parser: 6.1.13 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - preact - supports-color @@ -13665,7 +13376,7 @@ snapshots: '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.6(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))': + '@prefresh/vite@2.4.6(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@babel/core': 7.26.0 '@prefresh/babel-plugin': 0.5.1 @@ -13673,11 +13384,11 @@ snapshots: '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.25.4 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - supports-color - '@prefresh/vite@2.4.6(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@prefresh/vite@2.4.6(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.0 '@prefresh/babel-plugin': 0.5.1 @@ -13685,15 +13396,22 @@ snapshots: '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.25.4 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@rollup/plugin-json@6.1.0(rollup@4.29.1)': + '@rollup/plugin-json@6.1.0(rollup@4.32.0)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.29.1) + '@rollup/pluginutils': 5.1.0(rollup@4.32.0) optionalDependencies: - rollup: 4.29.1 + rollup: 4.32.0 + + '@rollup/plugin-replace@5.0.7(rollup@4.32.0)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.32.0) + magic-string: 0.30.17 + optionalDependencies: + rollup: 4.32.0 '@rollup/plugin-replace@6.0.2(rollup@4.32.0)': dependencies: @@ -13707,14 +13425,6 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.1.0(rollup@4.29.1)': - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 4.29.1 - '@rollup/pluginutils@5.1.0(rollup@4.32.0)': dependencies: '@types/estree': 1.0.5 @@ -13723,91 +13433,91 @@ snapshots: optionalDependencies: rollup: 4.32.0 - '@rollup/rollup-android-arm-eabi@4.26.0': + '@rollup/rollup-android-arm-eabi@4.29.1': optional: true - '@rollup/rollup-android-arm-eabi@4.29.1': + '@rollup/rollup-android-arm-eabi@4.30.1': optional: true '@rollup/rollup-android-arm-eabi@4.32.0': optional: true - '@rollup/rollup-android-arm64@4.26.0': + '@rollup/rollup-android-arm64@4.29.1': optional: true - '@rollup/rollup-android-arm64@4.29.1': + '@rollup/rollup-android-arm64@4.30.1': optional: true '@rollup/rollup-android-arm64@4.32.0': optional: true - '@rollup/rollup-darwin-arm64@4.26.0': + '@rollup/rollup-darwin-arm64@4.29.1': optional: true - '@rollup/rollup-darwin-arm64@4.29.1': + '@rollup/rollup-darwin-arm64@4.30.1': optional: true '@rollup/rollup-darwin-arm64@4.32.0': optional: true - '@rollup/rollup-darwin-x64@4.26.0': + '@rollup/rollup-darwin-x64@4.29.1': optional: true - '@rollup/rollup-darwin-x64@4.29.1': + '@rollup/rollup-darwin-x64@4.30.1': optional: true '@rollup/rollup-darwin-x64@4.32.0': optional: true - '@rollup/rollup-freebsd-arm64@4.26.0': + '@rollup/rollup-freebsd-arm64@4.29.1': optional: true - '@rollup/rollup-freebsd-arm64@4.29.1': + '@rollup/rollup-freebsd-arm64@4.30.1': optional: true '@rollup/rollup-freebsd-arm64@4.32.0': optional: true - '@rollup/rollup-freebsd-x64@4.26.0': + '@rollup/rollup-freebsd-x64@4.29.1': optional: true - '@rollup/rollup-freebsd-x64@4.29.1': + '@rollup/rollup-freebsd-x64@4.30.1': optional: true '@rollup/rollup-freebsd-x64@4.32.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.26.0': + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + '@rollup/rollup-linux-arm-gnueabihf@4.30.1': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.32.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.26.0': + '@rollup/rollup-linux-arm-musleabihf@4.29.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.29.1': + '@rollup/rollup-linux-arm-musleabihf@4.30.1': optional: true '@rollup/rollup-linux-arm-musleabihf@4.32.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.26.0': + '@rollup/rollup-linux-arm64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.29.1': + '@rollup/rollup-linux-arm64-gnu@4.30.1': optional: true '@rollup/rollup-linux-arm64-gnu@4.32.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.26.0': + '@rollup/rollup-linux-arm64-musl@4.29.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.29.1': + '@rollup/rollup-linux-arm64-musl@4.30.1': optional: true '@rollup/rollup-linux-arm64-musl@4.32.0': @@ -13816,78 +13526,81 @@ snapshots: '@rollup/rollup-linux-loongarch64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.32.0': + '@rollup/rollup-linux-loongarch64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.26.0': + '@rollup/rollup-linux-loongarch64-gnu@4.32.0': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.26.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': optional: true '@rollup/rollup-linux-riscv64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.32.0': + '@rollup/rollup-linux-riscv64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.26.0': + '@rollup/rollup-linux-riscv64-gnu@4.32.0': optional: true '@rollup/rollup-linux-s390x-gnu@4.29.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.32.0': + '@rollup/rollup-linux-s390x-gnu@4.30.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.26.0': + '@rollup/rollup-linux-s390x-gnu@4.32.0': optional: true '@rollup/rollup-linux-x64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.32.0': + '@rollup/rollup-linux-x64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-x64-musl@4.26.0': + '@rollup/rollup-linux-x64-gnu@4.32.0': optional: true '@rollup/rollup-linux-x64-musl@4.29.1': optional: true - '@rollup/rollup-linux-x64-musl@4.32.0': + '@rollup/rollup-linux-x64-musl@4.30.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.26.0': + '@rollup/rollup-linux-x64-musl@4.32.0': optional: true '@rollup/rollup-win32-arm64-msvc@4.29.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.32.0': + '@rollup/rollup-win32-arm64-msvc@4.30.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.26.0': + '@rollup/rollup-win32-arm64-msvc@4.32.0': optional: true '@rollup/rollup-win32-ia32-msvc@4.29.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.32.0': + '@rollup/rollup-win32-ia32-msvc@4.30.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.26.0': + '@rollup/rollup-win32-ia32-msvc@4.32.0': optional: true '@rollup/rollup-win32-x64-msvc@4.29.1': optional: true + '@rollup/rollup-win32-x64-msvc@4.30.1': + optional: true + '@rollup/rollup-win32-x64-msvc@4.32.0': optional: true @@ -13905,14 +13618,14 @@ snapshots: fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.8 + resolve: 1.22.10 semver: 7.5.4 optionalDependencies: '@types/node': 22.10.2 '@rushstack/rig-package@0.5.3': dependencies: - resolve: 1.22.8 + resolve: 1.22.10 strip-json-comments: 3.1.1 '@rushstack/terminal@0.13.3(@types/node@22.10.2)': @@ -13931,10 +13644,10 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@schematics/angular@19.0.6(chokidar@4.0.3)': + '@schematics/angular@19.1.5(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 19.0.6(chokidar@4.0.3) - '@angular-devkit/schematics': 19.0.6(chokidar@4.0.3) + '@angular-devkit/core': 19.1.5(chokidar@4.0.3) + '@angular-devkit/schematics': 19.1.5(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -13985,6 +13698,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sindresorhus/merge-streams@2.3.0': {} + '@size-limit/esbuild@11.1.6(size-limit@11.1.6)': dependencies: esbuild: 0.24.2 @@ -14007,6 +13722,8 @@ snapshots: ignore: 5.3.1 p-map: 4.0.0 + '@socket.io/component-emitter@3.1.2': {} + '@solid-primitives/scheduled@1.4.4(solid-js@1.9.3)': dependencies: solid-js: 1.9.3 @@ -14022,79 +13739,57 @@ snapshots: chokidar: 4.0.3 kleur: 4.1.5 sade: 1.8.1 - semver: 7.6.3 - svelte: 5.19.3 - svelte2tsx: 0.7.31(svelte@5.19.3)(typescript@5.7.3) - transitivePeerDependencies: - - typescript - - '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)))(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))': - dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) - debug: 4.4.0 - svelte: 5.19.3 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': - dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) - debug: 4.4.0 + semver: 7.6.3 svelte: 5.19.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + svelte2tsx: 0.7.31(svelte@5.19.3)(typescript@5.7.3) transitivePeerDependencies: - - supports-color + - typescript - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)))(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) debug: 4.4.0 svelte: 5.19.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))': + '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)))(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) debug: 4.4.0 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.17 svelte: 5.19.3 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) - vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)))(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.19.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - vitefu: 1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.19.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - vitefu: 1.0.5(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) transitivePeerDependencies: - supports-color - '@tanstack/config@0.14.2(@types/node@22.10.2)(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2))(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))': + '@tanstack/config@0.14.2(@types/node@22.10.2)(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2))(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@commitlint/parse': 19.5.0 '@eslint/js': 9.17.0 @@ -14117,9 +13812,9 @@ snapshots: typedoc-plugin-markdown: 4.4.0(typedoc@0.27.6(typescript@5.6.3)) typescript-eslint: 8.19.0(eslint@9.17.0(jiti@2.4.2))(typescript@5.6.3) v8flags: 4.0.1 - vite-plugin-dts: 4.0.3(@types/node@22.10.2)(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) - vite-plugin-externalize-deps: 0.8.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) - vite-tsconfig-paths: 5.1.4(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + vite-plugin-dts: 4.0.3(@types/node@22.10.2)(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + vite-plugin-externalize-deps: 0.8.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + vite-tsconfig-paths: 5.1.4(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) transitivePeerDependencies: - '@types/node' - esbuild @@ -14131,6 +13826,11 @@ snapshots: '@tanstack/history@1.90.0': {} + '@tanstack/lit-table@8.21.1(lit@3.2.1)': + dependencies: + '@tanstack/table-core': 8.20.5 + lit: 3.2.1 + '@tanstack/lit-virtual@3.11.2(lit@3.2.1)': dependencies: '@tanstack/virtual-core': 3.11.2 @@ -14160,12 +13860,24 @@ snapshots: react-dom: 19.0.0(react@19.0.0) use-sync-external-store: 1.4.0(react@19.0.0) + '@tanstack/react-table@8.20.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/table-core': 8.20.5 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@tanstack/react-virtual@3.11.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@tanstack/virtual-core': 3.11.2 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) + '@tanstack/react-virtual@3.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/virtual-core': 3.12.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@tanstack/router-generator@1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))': dependencies: '@tanstack/virtual-file-routes': 1.87.6 @@ -14175,7 +13887,7 @@ snapshots: optionalDependencies: '@tanstack/react-router': 1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@tanstack/router-plugin@1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))': + '@tanstack/router-plugin@1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2))': dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.3 @@ -14196,14 +13908,15 @@ snapshots: unplugin: 1.16.0 zod: 3.23.8 optionalDependencies: - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + webpack: 5.97.1(esbuild@0.24.2) transitivePeerDependencies: - '@tanstack/react-router' - supports-color - '@tanstack/router-vite-plugin@1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))': + '@tanstack/router-vite-plugin@1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2))': dependencies: - '@tanstack/router-plugin': 1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + '@tanstack/router-plugin': 1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2)) transitivePeerDependencies: - '@rsbuild/core' - '@tanstack/react-router' @@ -14213,8 +13926,12 @@ snapshots: '@tanstack/store@0.7.0': {} + '@tanstack/table-core@8.20.5': {} + '@tanstack/virtual-core@3.11.2': {} + '@tanstack/virtual-core@3.12.0': {} + '@tanstack/virtual-file-routes@1.87.6': {} '@tanstack/vue-virtual@3.11.2(vue@3.5.13(typescript@5.6.3))': @@ -14304,41 +14021,39 @@ snapshots: dependencies: '@types/connect': 3.4.38 '@types/node': 22.10.10 - optional: true '@types/bonjour@3.5.13': dependencies: '@types/node': 22.10.10 - optional: true '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.5 '@types/node': 22.10.10 - optional: true '@types/connect@3.4.38': dependencies: '@types/node': 22.10.10 - optional: true '@types/conventional-commits-parser@5.0.0': dependencies: '@types/node': 22.10.2 + '@types/cors@2.8.17': + dependencies: + '@types/node': 22.10.10 + '@types/doctrine@0.0.9': {} '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 '@types/estree': 1.0.6 - optional: true '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 - optional: true '@types/estree@1.0.5': {} @@ -14350,7 +14065,6 @@ snapshots: '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - optional: true '@types/express-serve-static-core@5.0.5': dependencies: @@ -14358,7 +14072,6 @@ snapshots: '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - optional: true '@types/express@4.17.21': dependencies: @@ -14366,31 +14079,26 @@ snapshots: '@types/express-serve-static-core': 4.19.6 '@types/qs': 6.9.18 '@types/serve-static': 1.15.7 - optional: true '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.2 - '@types/http-errors@2.0.4': - optional: true + '@types/http-errors@2.0.4': {} '@types/http-proxy@1.17.15': dependencies: '@types/node': 22.10.10 - optional: true '@types/jasmine@5.1.5': {} '@types/json-schema@7.0.15': {} - '@types/mime@1.3.5': - optional: true + '@types/mime@1.3.5': {} '@types/node-forge@1.3.11': dependencies: '@types/node': 22.10.10 - optional: true '@types/node@22.10.10': dependencies: @@ -14400,45 +14108,49 @@ snapshots: dependencies: undici-types: 6.20.0 - '@types/qs@6.9.18': - optional: true + '@types/prop-types@15.7.14': {} - '@types/range-parser@1.2.7': - optional: true + '@types/qs@6.9.18': {} + + '@types/range-parser@1.2.7': {} + + '@types/react-dom@18.3.5(@types/react@18.3.18)': + dependencies: + '@types/react': 18.3.18 '@types/react-dom@19.0.2(@types/react@19.0.2)': dependencies: '@types/react': 19.0.2 + '@types/react@18.3.18': + dependencies: + '@types/prop-types': 15.7.14 + csstype: 3.1.3 + '@types/react@19.0.2': dependencies: csstype: 3.1.3 - '@types/retry@0.12.0': - optional: true + '@types/retry@0.12.2': {} '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 '@types/node': 22.10.10 - optional: true '@types/serve-index@1.9.4': dependencies: '@types/express': 4.17.21 - optional: true '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 '@types/node': 22.10.10 '@types/send': 0.17.4 - optional: true '@types/sockjs@0.3.36': dependencies: '@types/node': 22.10.10 - optional: true '@types/trusted-types@2.0.7': {} @@ -14447,7 +14159,6 @@ snapshots: '@types/ws@8.5.14': dependencies: '@types/node': 22.10.10 - optional: true '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.17.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.17.0(jiti@2.4.2))(typescript@5.6.3)': dependencies: @@ -14546,7 +14257,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.3.0 '@typescript-eslint/visitor-keys': 8.3.0 - debug: 4.3.6 + debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 @@ -14600,60 +14311,55 @@ snapshots: '@typescript-eslint/types': 8.3.0 eslint-visitor-keys: 3.4.3 - '@vitejs/plugin-basic-ssl@1.1.0(vite@5.1.7(@types/node@22.10.10)(less@4.2.0)(sass@1.71.1)(terser@5.29.1))': + '@vitejs/plugin-basic-ssl@1.2.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: - vite: 5.1.7(@types/node@22.10.10)(less@4.2.0)(sass@1.71.1)(terser@5.29.1) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) optional: true - '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.80.7)(terser@5.29.1))': + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.80.7)(terser@5.29.1) - optional: true - - '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.80.7)(terser@5.37.0))': - dependencies: - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.80.7)(terser@5.37.0) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - '@vitejs/plugin-react@4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))': + '@vitejs/plugin-react@4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.1.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue-jsx@4.1.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) - vite: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue: 3.5.13(typescript@5.6.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3))': dependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) vue: 3.5.13(typescript@5.6.3) - '@vitejs/plugin-vue@5.2.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3))': + '@vitejs/plugin-vue@5.2.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3))': dependencies: - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) vue: 3.5.13(typescript@5.7.3) '@vitest/expect@2.1.8': @@ -14663,13 +14369,21 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0))': + '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + dependencies: + '@vitest/spy': 2.1.8 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + + '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) '@vitest/pretty-format@2.1.8': dependencies: @@ -14833,26 +14547,20 @@ snapshots: dependencies: '@webassemblyjs/helper-numbers': 1.13.2 '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - optional: true - '@webassemblyjs/floating-point-hex-parser@1.13.2': - optional: true + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - '@webassemblyjs/helper-api-error@1.13.2': - optional: true + '@webassemblyjs/helper-api-error@1.13.2': {} - '@webassemblyjs/helper-buffer@1.14.1': - optional: true + '@webassemblyjs/helper-buffer@1.14.1': {} '@webassemblyjs/helper-numbers@1.13.2': dependencies: '@webassemblyjs/floating-point-hex-parser': 1.13.2 '@webassemblyjs/helper-api-error': 1.13.2 '@xtuc/long': 4.2.2 - optional: true - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - optional: true + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} '@webassemblyjs/helper-wasm-section@1.14.1': dependencies: @@ -14860,20 +14568,16 @@ snapshots: '@webassemblyjs/helper-buffer': 1.14.1 '@webassemblyjs/helper-wasm-bytecode': 1.13.2 '@webassemblyjs/wasm-gen': 1.14.1 - optional: true '@webassemblyjs/ieee754@1.13.2': dependencies: '@xtuc/ieee754': 1.2.0 - optional: true '@webassemblyjs/leb128@1.13.2': dependencies: '@xtuc/long': 4.2.2 - optional: true - '@webassemblyjs/utf8@1.13.2': - optional: true + '@webassemblyjs/utf8@1.13.2': {} '@webassemblyjs/wasm-edit@1.14.1': dependencies: @@ -14885,7 +14589,6 @@ snapshots: '@webassemblyjs/wasm-opt': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 '@webassemblyjs/wast-printer': 1.14.1 - optional: true '@webassemblyjs/wasm-gen@1.14.1': dependencies: @@ -14894,7 +14597,6 @@ snapshots: '@webassemblyjs/ieee754': 1.13.2 '@webassemblyjs/leb128': 1.13.2 '@webassemblyjs/utf8': 1.13.2 - optional: true '@webassemblyjs/wasm-opt@1.14.1': dependencies: @@ -14902,7 +14604,6 @@ snapshots: '@webassemblyjs/helper-buffer': 1.14.1 '@webassemblyjs/wasm-gen': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - optional: true '@webassemblyjs/wasm-parser@1.14.1': dependencies: @@ -14912,19 +14613,15 @@ snapshots: '@webassemblyjs/ieee754': 1.13.2 '@webassemblyjs/leb128': 1.13.2 '@webassemblyjs/utf8': 1.13.2 - optional: true '@webassemblyjs/wast-printer@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - optional: true - '@xtuc/ieee754@1.2.0': - optional: true + '@xtuc/ieee754@1.2.0': {} - '@xtuc/long@4.2.2': - optional: true + '@xtuc/long@4.2.2': {} '@yarnpkg/lockfile@1.1.0': {} @@ -14951,15 +14648,6 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-assertions@1.9.0(acorn@8.14.0): - dependencies: - acorn: 8.14.0 - optional: true - - acorn-jsx@5.3.2(acorn@8.12.1): - dependencies: - acorn: 8.12.1 - acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -14968,15 +14656,12 @@ snapshots: dependencies: acorn: 8.14.0 - acorn@8.12.1: {} - acorn@8.14.0: {} adjust-sourcemap-loader@4.0.0: dependencies: loader-utils: 2.0.4 regex-parser: 2.3.0 - optional: true agent-base@7.1.1: dependencies: @@ -14984,8 +14669,7 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.3: - optional: true + agent-base@7.1.3: {} aggregate-error@3.1.0: dependencies: @@ -14996,15 +14680,9 @@ snapshots: optionalDependencies: ajv: 8.13.0 - ajv-formats@2.1.1(ajv@8.12.0): - optionalDependencies: - ajv: 8.12.0 - optional: true - ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 - optional: true ajv-formats@3.0.1(ajv@8.13.0): optionalDependencies: @@ -15017,13 +14695,11 @@ snapshots: ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - optional: true ajv-keywords@5.1.0(ajv@8.17.1): dependencies: ajv: 8.17.1 fast-deep-equal: 3.1.3 - optional: true ajv@6.12.6: dependencies: @@ -15069,8 +14745,7 @@ snapshots: dependencies: environment: 1.1.0 - ansi-html-community@0.0.8: - optional: true + ansi-html-community@0.0.8: {} ansi-regex@5.0.1: {} @@ -15111,8 +14786,7 @@ snapshots: array-each@1.0.1: {} - array-flatten@1.1.1: - optional: true + array-flatten@1.1.1: {} array-ify@1.0.0: {} @@ -15122,16 +14796,15 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.18(postcss@8.4.35): + autoprefixer@10.4.20(postcss@8.4.49): dependencies: browserslist: 4.24.4 caniuse-lite: 1.0.30001695 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.4.35 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - optional: true axios@1.7.9: dependencies: @@ -15152,27 +14825,15 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.1.3(@babel/core@7.24.0)(webpack@5.90.3(esbuild@0.20.1)): + babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.97.1(esbuild@0.24.2)): dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 find-cache-dir: 4.0.0 schema-utils: 4.3.0 - webpack: 5.90.3(esbuild@0.24.2) - optional: true + webpack: 5.97.1(esbuild@0.24.2) babel-plugin-add-module-exports@0.2.1: {} - babel-plugin-istanbul@6.1.1: - dependencies: - '@babel/helper-plugin-utils': 7.26.5 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - optional: true - babel-plugin-jsx-dom-expressions@0.37.23(@babel/core@7.24.7): dependencies: '@babel/core': 7.24.7 @@ -15182,32 +14843,29 @@ snapshots: html-entities: 2.3.3 validate-html-nesting: 1.2.2 - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.24.0): + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): dependencies: '@babel/compat-data': 7.26.5 - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - optional: true - babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.24.0): + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): dependencies: - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) core-js-compat: 3.40.0 transitivePeerDependencies: - supports-color - optional: true - babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.24.0): + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): dependencies: - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - optional: true babel-plugin-transform-hook-names@1.0.2(@babel/core@7.26.0): dependencies: @@ -15222,10 +14880,11 @@ snapshots: base64-js@1.5.1: {} - batch@0.6.1: - optional: true + base64id@2.0.0: {} - beasties@0.1.0: + batch@0.6.1: {} + + beasties@0.2.0: dependencies: css-select: 5.1.0 css-what: 6.1.0 @@ -15233,11 +14892,10 @@ snapshots: domhandler: 5.0.3 htmlparser2: 9.1.0 picocolors: 1.1.1 - postcss: 8.4.49 + postcss: 8.5.1 postcss-media-query-parser: 0.2.3 - big.js@5.2.2: - optional: true + big.js@5.2.2: {} binary-extensions@2.3.0: {} @@ -15263,13 +14921,11 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color - optional: true bonjour-service@1.3.0: dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 - optional: true boolbase@1.0.0: {} @@ -15297,42 +14953,29 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.1: - dependencies: - caniuse-lite: 1.0.30001638 - electron-to-chromium: 1.4.815 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.1) - - browserslist@4.24.3: - dependencies: - caniuse-lite: 1.0.30001690 - electron-to-chromium: 1.5.76 - node-releases: 2.0.19 - update-browserslist-db: 1.1.1(browserslist@4.24.3) - browserslist@4.24.4: dependencies: caniuse-lite: 1.0.30001695 electron-to-chromium: 1.5.88 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) - optional: true - buffer-from@1.1.2: - optional: true + buffer-from@1.1.2: {} buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + bytes-iec@3.1.1: {} bytes@3.0.0: {} - bytes@3.1.2: - optional: true + bytes@3.1.2: {} cac@6.7.14: {} @@ -15355,35 +14998,17 @@ snapshots: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - optional: true - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 - get-intrinsic: 1.2.7 - set-function-length: 1.2.2 - optional: true call-bound@1.0.3: dependencies: call-bind-apply-helpers: 1.0.1 get-intrinsic: 1.2.7 - optional: true callsites@3.1.0: {} - camelcase@5.3.1: - optional: true - camelcase@7.0.1: {} - caniuse-lite@1.0.30001638: {} - - caniuse-lite@1.0.30001690: {} - - caniuse-lite@1.0.30001695: - optional: true + caniuse-lite@1.0.30001695: {} chai@5.1.2: dependencies: @@ -15417,9 +15042,6 @@ snapshots: chalk@5.3.0: {} - chalk@5.4.1: - optional: true - chardet@0.7.0: {} check-error@2.1.1: {} @@ -15444,8 +15066,7 @@ snapshots: chownr@3.0.0: {} - chrome-trace-event@1.0.4: - optional: true + chrome-trace-event@1.0.4: {} clean-stack@2.2.0: {} @@ -15476,6 +15097,12 @@ snapshots: execa: 5.1.1 is-wsl: 2.2.0 + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -15487,7 +15114,6 @@ snapshots: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - optional: true clone@1.0.4: {} @@ -15515,13 +15141,13 @@ snapshots: commander@12.1.0: {} - commander@2.20.3: - optional: true + commander@13.1.0: {} + + commander@2.20.3: {} commander@4.1.1: {} - common-path-prefix@3.0.0: - optional: true + common-path-prefix@3.0.0: {} commondir@1.0.1: {} @@ -15559,7 +15185,6 @@ snapshots: vary: 1.1.2 transitivePeerDependencies: - supports-color - optional: true computeds@0.0.1: {} @@ -15567,18 +15192,24 @@ snapshots: confbox@0.1.7: {} - connect-history-api-fallback@2.0.0: - optional: true + connect-history-api-fallback@2.0.0: {} + + connect@3.7.0: + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color content-disposition@0.5.2: {} content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 - optional: true - content-type@1.0.5: - optional: true + content-type@1.0.5: {} conventional-changelog-angular@7.0.0: dependencies: @@ -15595,55 +15226,55 @@ snapshots: convert-source-map@2.0.0: {} - cookie-signature@1.0.6: - optional: true + cookie-signature@1.0.6: {} - cookie@0.7.1: - optional: true + cookie@0.7.1: {} + + cookie@0.7.2: {} copy-anything@2.0.6: dependencies: is-what: 3.14.1 - copy-webpack-plugin@11.0.0(webpack@5.90.3(esbuild@0.20.1)): + copy-webpack-plugin@12.0.2(webpack@5.97.1(esbuild@0.24.2)): dependencies: - fast-glob: 3.3.2 + fast-glob: 3.3.3 glob-parent: 6.0.2 - globby: 13.2.2 + globby: 14.0.2 normalize-path: 3.0.0 schema-utils: 4.3.0 serialize-javascript: 6.0.2 - webpack: 5.90.3(esbuild@0.24.2) - optional: true + webpack: 5.97.1(esbuild@0.24.2) core-js-compat@3.40.0: dependencies: browserslist: 4.24.4 - optional: true - core-util-is@1.0.3: - optional: true + core-util-is@1.0.3: {} - cosmiconfig@9.0.0(typescript@5.7.3): + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + cosmiconfig@9.0.0(typescript@5.6.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.7.3 + typescript: 5.6.3 optional: true - critters@0.0.22: + cosmiconfig@9.0.0(typescript@5.7.3): dependencies: - chalk: 4.1.2 - css-select: 5.1.0 - dom-serializer: 2.0.0 - domhandler: 5.0.3 - htmlparser2: 8.0.2 - postcss: 8.4.35 - postcss-media-query-parser: 0.2.3 - optional: true + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.7.3 cross-spawn@5.1.0: dependencies: @@ -15663,19 +15294,18 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-loader@6.10.0(webpack@5.90.3(esbuild@0.20.1)): + css-loader@7.1.2(webpack@5.97.1(esbuild@0.24.2)): dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.35) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.35) - postcss-modules-scope: 3.2.1(postcss@8.4.35) - postcss-modules-values: 4.0.0(postcss@8.4.35) + icss-utils: 5.1.0(postcss@8.5.1) + postcss: 8.5.1 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.1) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.1) + postcss-modules-scope: 3.2.1(postcss@8.5.1) + postcss-modules-values: 4.0.0(postcss@8.5.1) postcss-value-parser: 4.2.0 - semver: 7.6.0 + semver: 7.6.3 optionalDependencies: - webpack: 5.90.3(esbuild@0.24.2) - optional: true + webpack: 5.97.1(esbuild@0.24.2) css-select@5.1.0: dependencies: @@ -15703,11 +15333,15 @@ snapshots: execa: 0.6.3 is-git-repository: 1.1.1 + custom-event@1.0.1: {} + data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 + date-format@4.0.14: {} + de-indent@1.0.2: {} debug@2.6.9: @@ -15738,38 +15372,32 @@ snapshots: deepmerge@4.3.1: {} - default-gateway@6.0.3: + default-browser-id@5.0.0: {} + + default-browser@5.2.1: dependencies: - execa: 5.1.1 - optional: true + bundle-name: 4.1.0 + default-browser-id: 5.0.0 defaults@1.0.4: dependencies: clone: 1.0.4 - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - optional: true - define-lazy-prop@2.0.0: {} + define-lazy-prop@3.0.0: {} + delayed-stream@1.0.0: {} - depd@1.1.2: - optional: true + depd@1.1.2: {} - depd@2.0.0: - optional: true + depd@2.0.0: {} dependency-graph@1.0.0: {} dequal@2.0.3: {} - destroy@1.2.0: - optional: true + destroy@1.2.0: {} detect-file@1.0.0: {} @@ -15779,20 +15407,15 @@ snapshots: detect-libc@2.0.3: optional: true - detect-node@2.1.0: - optional: true + detect-node@2.1.0: {} - diff-sequences@29.6.3: {} + di@0.0.1: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - optional: true + diff-sequences@29.6.3: {} dns-packet@5.6.1: dependencies: '@leichtgewicht/ip-codec': 2.0.5 - optional: true doctrine@3.0.0: dependencies: @@ -15800,6 +15423,13 @@ snapshots: dom-accessibility-api@0.6.3: {} + dom-serialize@2.2.1: + dependencies: + custom-event: 1.0.1 + ent: 2.2.2 + extend: 3.0.2 + void-elements: 2.0.1 + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -15823,7 +15453,6 @@ snapshots: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - optional: true dot-prop@5.3.0: dependencies: @@ -15840,25 +15469,18 @@ snapshots: call-bind-apply-helpers: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 - optional: true eastasianwidth@0.2.0: {} easy-table@1.2.0: dependencies: - ansi-regex: 5.0.1 - optionalDependencies: - wcwidth: 1.0.1 - - ee-first@1.1.1: - optional: true - - electron-to-chromium@1.4.815: {} + ansi-regex: 5.0.1 + optionalDependencies: + wcwidth: 1.0.1 - electron-to-chromium@1.5.76: {} + ee-first@1.1.1: {} - electron-to-chromium@1.5.88: - optional: true + electron-to-chromium@1.5.88: {} emoji-regex@10.4.0: {} @@ -15866,14 +15488,11 @@ snapshots: emoji-regex@9.2.2: {} - emojis-list@3.0.0: - optional: true + emojis-list@3.0.0: {} - encodeurl@1.0.2: - optional: true + encodeurl@1.0.2: {} - encodeurl@2.0.0: - optional: true + encodeurl@2.0.0: {} encoding@0.1.13: dependencies: @@ -15884,6 +15503,24 @@ snapshots: dependencies: once: 1.4.0 + engine.io-parser@5.2.3: {} + + engine.io@6.6.4: + dependencies: + '@types/cors': 2.8.17 + '@types/node': 22.10.10 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.7.2 + cors: 2.8.5 + debug: 4.3.6 + engine.io-parser: 5.2.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + enhanced-resolve@5.18.0: dependencies: graceful-fs: 4.2.11 @@ -15893,6 +15530,13 @@ snapshots: dependencies: ansi-colors: 4.1.3 + ent@2.2.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + punycode: 1.4.1 + safe-regex-test: 1.1.0 + entities@4.5.0: {} env-paths@2.2.1: {} @@ -15909,23 +15553,18 @@ snapshots: error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - optional: true - es-define-property@1.0.1: - optional: true + es-define-property@1.0.1: {} - es-errors@1.3.0: - optional: true + es-errors@1.3.0: {} es-module-lexer@1.5.4: {} - es-module-lexer@1.6.0: - optional: true + es-module-lexer@1.6.0: {} es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 - optional: true esbuild-register@3.6.0(esbuild@0.24.2): dependencies: @@ -15934,62 +15573,7 @@ snapshots: transitivePeerDependencies: - supports-color - esbuild-wasm@0.20.1: - optional: true - - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - optional: true - - esbuild@0.20.1: - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.1 - '@esbuild/android-arm': 0.20.1 - '@esbuild/android-arm64': 0.20.1 - '@esbuild/android-x64': 0.20.1 - '@esbuild/darwin-arm64': 0.20.1 - '@esbuild/darwin-x64': 0.20.1 - '@esbuild/freebsd-arm64': 0.20.1 - '@esbuild/freebsd-x64': 0.20.1 - '@esbuild/linux-arm': 0.20.1 - '@esbuild/linux-arm64': 0.20.1 - '@esbuild/linux-ia32': 0.20.1 - '@esbuild/linux-loong64': 0.20.1 - '@esbuild/linux-mips64el': 0.20.1 - '@esbuild/linux-ppc64': 0.20.1 - '@esbuild/linux-riscv64': 0.20.1 - '@esbuild/linux-s390x': 0.20.1 - '@esbuild/linux-x64': 0.20.1 - '@esbuild/netbsd-x64': 0.20.1 - '@esbuild/openbsd-x64': 0.20.1 - '@esbuild/sunos-x64': 0.20.1 - '@esbuild/win32-arm64': 0.20.1 - '@esbuild/win32-ia32': 0.20.1 - '@esbuild/win32-x64': 0.20.1 - optional: true + esbuild-wasm@0.24.2: {} esbuild@0.21.5: optionalDependencies: @@ -16044,33 +15628,6 @@ snapshots: '@esbuild/win32-ia32': 0.23.1 '@esbuild/win32-x64': 0.23.1 - esbuild@0.24.0: - optionalDependencies: - '@esbuild/aix-ppc64': 0.24.0 - '@esbuild/android-arm': 0.24.0 - '@esbuild/android-arm64': 0.24.0 - '@esbuild/android-x64': 0.24.0 - '@esbuild/darwin-arm64': 0.24.0 - '@esbuild/darwin-x64': 0.24.0 - '@esbuild/freebsd-arm64': 0.24.0 - '@esbuild/freebsd-x64': 0.24.0 - '@esbuild/linux-arm': 0.24.0 - '@esbuild/linux-arm64': 0.24.0 - '@esbuild/linux-ia32': 0.24.0 - '@esbuild/linux-loong64': 0.24.0 - '@esbuild/linux-mips64el': 0.24.0 - '@esbuild/linux-ppc64': 0.24.0 - '@esbuild/linux-riscv64': 0.24.0 - '@esbuild/linux-s390x': 0.24.0 - '@esbuild/linux-x64': 0.24.0 - '@esbuild/netbsd-x64': 0.24.0 - '@esbuild/openbsd-arm64': 0.24.0 - '@esbuild/openbsd-x64': 0.24.0 - '@esbuild/sunos-x64': 0.24.0 - '@esbuild/win32-arm64': 0.24.0 - '@esbuild/win32-ia32': 0.24.0 - '@esbuild/win32-x64': 0.24.0 - esbuild@0.24.2: optionalDependencies: '@esbuild/aix-ppc64': 0.24.2 @@ -16099,12 +15656,9 @@ snapshots: '@esbuild/win32-ia32': 0.24.2 '@esbuild/win32-x64': 0.24.2 - escalade@3.1.2: {} - escalade@3.2.0: {} - escape-html@1.0.3: - optional: true + escape-html@1.0.3: {} escape-string-regexp@1.0.5: {} @@ -16119,7 +15673,7 @@ snapshots: dependencies: debug: 3.2.7 is-core-module: 2.14.0 - resolve: 1.22.8 + resolve: 1.22.10 transitivePeerDependencies: - supports-color @@ -16336,7 +15890,6 @@ snapshots: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - optional: true eslint-scope@7.2.2: dependencies: @@ -16403,8 +15956,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -16421,8 +15974,7 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: - optional: true + estraverse@4.3.0: {} estraverse@5.3.0: {} @@ -16434,16 +15986,13 @@ snapshots: esutils@2.0.3: {} - etag@1.8.1: - optional: true + etag@1.8.1: {} - eventemitter3@4.0.7: - optional: true + eventemitter3@4.0.7: {} eventemitter3@5.0.1: {} - events@3.3.0: - optional: true + events@3.3.0: {} execa@0.6.3: dependencies: @@ -16510,7 +16059,6 @@ snapshots: vary: 1.1.2 transitivePeerDependencies: - supports-color - optional: true extend@3.0.2: {} @@ -16532,6 +16080,14 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.7 + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} @@ -16545,7 +16101,6 @@ snapshots: faye-websocket@0.11.4: dependencies: websocket-driver: 0.7.4 - optional: true fdir@6.4.2(picomatch@4.0.2): optionalDependencies: @@ -16567,6 +16122,18 @@ snapshots: dependencies: to-regex-range: 5.0.1 + finalhandler@1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + finalhandler@1.3.1: dependencies: debug: 2.6.9 @@ -16578,7 +16145,6 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color - optional: true find-cache-dir@3.3.2: dependencies: @@ -16590,7 +16156,6 @@ snapshots: dependencies: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 - optional: true find-up@4.1.0: dependencies: @@ -16606,13 +16171,12 @@ snapshots: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 - optional: true findup-sync@5.0.0: dependencies: detect-file: 1.0.0 is-glob: 4.0.3 - micromatch: 4.0.7 + micromatch: 4.0.8 resolve-dir: 1.0.1 fined@2.0.0: @@ -16636,8 +16200,9 @@ snapshots: follow-redirects@1.15.6: {} - follow-redirects@1.15.9: - optional: true + follow-redirects@1.15.9(debug@4.4.0): + optionalDependencies: + debug: 4.4.0 for-in@1.0.2: {} @@ -16656,14 +16221,11 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 - forwarded@0.2.0: - optional: true + forwarded@0.2.0: {} - fraction.js@4.3.7: - optional: true + fraction.js@4.3.7: {} - fresh@0.5.2: - optional: true + fresh@0.5.2: {} front-matter@4.0.2: dependencies: @@ -16677,6 +16239,12 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 @@ -16685,9 +16253,6 @@ snapshots: dependencies: minipass: 7.1.2 - fs-monkey@1.0.6: - optional: true - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -16713,16 +16278,11 @@ snapshots: has-symbols: 1.1.0 hasown: 2.0.2 math-intrinsics: 1.1.0 - optional: true - - get-package-type@0.1.0: - optional: true get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - optional: true get-stream@3.0.0: {} @@ -16772,7 +16332,6 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - optional: true glob@8.1.0: dependencies: @@ -16806,38 +16365,34 @@ snapshots: globals@15.14.0: {} - globby@13.2.2: + globby@14.0.2: dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.2 + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.3 ignore: 5.3.2 - merge2: 1.4.1 - slash: 4.0.0 - optional: true + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 globrex@0.1.2: {} - gopd@1.2.0: - optional: true + gopd@1.2.0: {} graceful-fs@4.2.11: {} graphemer@1.4.0: {} - handle-thing@2.0.1: - optional: true + handle-thing@2.0.1: {} has-flag@3.0.0: {} has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - optional: true + has-symbols@1.1.0: {} - has-symbols@1.1.0: - optional: true + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 hasown@2.0.2: dependencies: @@ -16859,7 +16414,6 @@ snapshots: obuf: 1.1.2 readable-stream: 2.3.8 wbuf: 1.7.3 - optional: true html-encoding-sniffer@4.0.0: dependencies: @@ -16867,30 +16421,20 @@ snapshots: html-entities@2.3.3: {} - html-entities@2.5.2: - optional: true + html-escaper@2.0.2: {} html-tags@3.3.1: {} - htmlparser2@8.0.2: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 4.5.0 - optional: true - htmlparser2@9.1.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.2 entities: 4.5.0 http-cache-semantics@4.1.1: {} - http-deceiver@1.2.7: - optional: true + http-deceiver@1.2.7: {} http-errors@1.6.3: dependencies: @@ -16898,7 +16442,6 @@ snapshots: inherits: 2.0.3 setprototypeof: 1.1.0 statuses: 1.5.0 - optional: true http-errors@2.0.0: dependencies: @@ -16907,10 +16450,8 @@ snapshots: setprototypeof: 1.2.0 statuses: 2.0.1 toidentifier: 1.0.1 - optional: true - http-parser-js@0.5.9: - optional: true + http-parser-js@0.5.9: {} http-proxy-agent@7.0.2: dependencies: @@ -16919,10 +16460,10 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@2.0.6(@types/express@4.17.21): + http-proxy-middleware@2.0.7(@types/express@4.17.21): dependencies: '@types/http-proxy': 1.17.15 - http-proxy: 1.18.1 + http-proxy: 1.18.1(debug@4.4.0) is-glob: 4.0.3 is-plain-obj: 3.0.0 micromatch: 4.0.8 @@ -16930,34 +16471,44 @@ snapshots: '@types/express': 4.17.21 transitivePeerDependencies: - debug - optional: true - http-proxy@1.18.1: + http-proxy-middleware@3.0.3: + dependencies: + '@types/http-proxy': 1.17.15 + debug: 4.4.0 + http-proxy: 1.18.1(debug@4.4.0) + is-glob: 4.0.3 + is-plain-object: 5.0.0 + micromatch: 4.0.8 + transitivePeerDependencies: + - supports-color + + http-proxy@1.18.1(debug@4.4.0): dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.9 + follow-redirects: 1.15.9(debug@4.4.0) requires-port: 1.0.0 transitivePeerDependencies: - debug - optional: true - https-proxy-agent@7.0.4: + https-proxy-agent@7.0.5: dependencies: - agent-base: 7.1.3 - debug: 4.4.0 + agent-base: 7.1.1 + debug: 4.3.6 transitivePeerDependencies: - supports-color - optional: true - https-proxy-agent@7.0.5: + https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.1 - debug: 4.3.6 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color human-signals@2.1.0: {} + hyperdyperid@1.2.0: {} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -16966,10 +16517,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.35): + icss-utils@5.1.0(postcss@8.5.1): dependencies: - postcss: 8.4.35 - optional: true + postcss: 8.5.1 ieee754@1.2.1: {} @@ -16988,9 +16538,6 @@ snapshots: image-size@0.5.5: optional: true - immutable@4.3.7: - optional: true - immutable@5.0.3: {} import-fresh@3.3.0: @@ -17009,8 +16556,7 @@ snapshots: once: 1.4.0 wrappy: 1.0.2 - inherits@2.0.3: - optional: true + inherits@2.0.3: {} inherits@2.0.4: {} @@ -17022,25 +16568,6 @@ snapshots: dependencies: tslib: 2.8.1 - inquirer@9.2.15: - dependencies: - '@ljharb/through': 2.3.13 - ansi-escapes: 4.3.2 - chalk: 5.4.1 - cli-cursor: 3.1.0 - cli-width: 4.1.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 1.0.0 - ora: 5.4.1 - run-async: 3.0.0 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - optional: true - interpret@3.1.1: {} ip-address@9.0.5: @@ -17048,19 +16575,16 @@ snapshots: jsbn: 1.1.0 sprintf-js: 1.1.3 - ipaddr.js@1.9.1: - optional: true + ipaddr.js@1.9.1: {} - ipaddr.js@2.2.0: - optional: true + ipaddr.js@2.2.0: {} is-absolute@1.0.0: dependencies: is-relative: 1.0.0 is-windows: 1.0.2 - is-arrayish@0.2.1: - optional: true + is-arrayish@0.2.1: {} is-binary-path@2.1.0: dependencies: @@ -17073,10 +16597,11 @@ snapshots: is-core-module@2.16.1: dependencies: hasown: 2.0.2 - optional: true is-docker@2.2.1: {} + is-docker@3.0.0: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -17106,19 +16631,23 @@ snapshots: transitivePeerDependencies: - supports-color + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-interactive@1.0.0: {} + is-network-error@1.1.0: {} + is-number@7.0.0: {} is-obj@2.0.0: {} - is-plain-obj@3.0.0: - optional: true + is-plain-obj@3.0.0: {} is-plain-object@2.0.4: dependencies: isobject: 3.0.1 - optional: true is-plain-object@5.0.0: {} @@ -17130,6 +16659,13 @@ snapshots: dependencies: '@types/estree': 1.0.6 + is-regex@1.2.1: + dependencies: + call-bound: 1.0.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + is-relative@1.0.0: dependencies: is-unc-path: 1.0.0 @@ -17158,8 +16694,13 @@ snapshots: dependencies: is-docker: 2.2.1 - isarray@1.0.0: - optional: true + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isarray@1.0.0: {} + + isbinaryfile@4.0.10: {} isexe@2.0.0: {} @@ -17171,25 +16712,43 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.0 '@babel/parser': 7.26.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color - optional: true istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.26.0 - '@babel/parser': 7.26.3 + '@babel/parser': 7.26.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.3 transitivePeerDependencies: - supports-color + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.4.0 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + jackspeak@3.4.0: dependencies: '@isaacs/cliui': 8.0.2 @@ -17200,6 +16759,10 @@ snapshots: dependencies: '@isaacs/cliui': 8.0.2 + jasmine-core@4.6.1: {} + + jasmine-core@5.1.2: {} + jasmine-core@5.5.0: {} jest-diff@29.7.0: @@ -17216,10 +16779,8 @@ snapshots: '@types/node': 22.10.10 merge-stream: 2.0.0 supports-color: 8.1.1 - optional: true - jiti@1.21.7: - optional: true + jiti@1.21.7: {} jiti@2.4.2: {} @@ -17268,15 +16829,13 @@ snapshots: jsesc@2.5.2: {} - jsesc@3.0.2: - optional: true + jsesc@3.0.2: {} jsesc@3.1.0: {} json-buffer@3.0.1: {} - json-parse-even-better-errors@2.3.1: - optional: true + json-parse-even-better-errors@2.3.1: {} json-parse-even-better-errors@4.0.0: {} @@ -17290,9 +16849,6 @@ snapshots: jsonc-parser@3.2.0: {} - jsonc-parser@3.2.1: - optional: true - jsonc-parser@3.3.1: {} jsonfile@4.0.0: @@ -17307,23 +16863,76 @@ snapshots: jsonparse@1.3.1: {} + karma-chrome-launcher@3.2.0: + dependencies: + which: 1.3.1 + + karma-coverage@2.2.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + karma-jasmine-html-reporter@2.1.0(jasmine-core@5.1.2)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4): + dependencies: + jasmine-core: 5.1.2 + karma: 6.4.4 + karma-jasmine: 5.1.0(karma@6.4.4) + + karma-jasmine@5.1.0(karma@6.4.4): + dependencies: + jasmine-core: 4.6.1 + karma: 6.4.4 + karma-source-map-support@1.4.0: dependencies: source-map-support: 0.5.21 - optional: true + + karma@6.4.4: + dependencies: + '@colors/colors': 1.5.0 + body-parser: 1.20.3 + braces: 3.0.3 + chokidar: 3.6.0 + connect: 3.7.0 + di: 0.0.1 + dom-serialize: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + http-proxy: 1.18.1(debug@4.4.0) + isbinaryfile: 4.0.10 + lodash: 4.17.21 + log4js: 6.9.1 + mime: 2.6.0 + minimatch: 3.1.2 + mkdirp: 0.5.6 + qjobs: 1.2.0 + range-parser: 1.2.1 + rimraf: 3.0.2 + socket.io: 4.8.1 + source-map: 0.6.1 + tmp: 0.2.3 + ua-parser-js: 0.7.40 + yargs: 16.2.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate keyv@4.5.4: dependencies: json-buffer: 3.0.1 - kind-of@6.0.3: - optional: true + kind-of@6.0.3: {} kleur@4.1.5: {} - klona@2.0.6: - optional: true - knip@5.41.1(@types/node@22.10.2)(typescript@5.6.3): dependencies: '@nodelib/fs.walk': 1.2.8 @@ -17353,14 +16962,12 @@ snapshots: dependencies: picocolors: 1.1.1 shell-quote: 1.8.2 - optional: true - less-loader@11.1.0(less@4.2.0)(webpack@5.90.3(esbuild@0.20.1)): + less-loader@12.2.0(less@4.2.1)(webpack@5.97.1(esbuild@0.24.2)): dependencies: - klona: 2.0.6 - less: 4.2.0 - webpack: 5.90.3(esbuild@0.24.2) - optional: true + less: 4.2.1 + optionalDependencies: + webpack: 5.97.1(esbuild@0.24.2) less@4.2.0: dependencies: @@ -17376,17 +16983,30 @@ snapshots: needle: 3.3.1 source-map: 0.6.1 + less@4.2.1: + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.8.1 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - license-webpack-plugin@4.0.2(webpack@5.90.3(esbuild@0.20.1)): + license-webpack-plugin@4.0.2(webpack@5.97.1(esbuild@0.24.2)): dependencies: webpack-sources: 3.2.3 optionalDependencies: - webpack: 5.90.3(esbuild@0.24.2) - optional: true + webpack: 5.97.1(esbuild@0.24.2) liftoff@5.0.0: dependencies: @@ -17396,14 +17016,13 @@ snapshots: flagged-respawn: 2.0.0 is-plain-object: 5.0.0 rechoir: 0.8.0 - resolve: 1.22.8 + resolve: 1.22.10 lilconfig@2.1.0: {} lilconfig@3.1.2: {} - lines-and-columns@1.2.4: - optional: true + lines-and-columns@1.2.4: {} lines-and-columns@2.0.3: {} @@ -17436,7 +17055,7 @@ snapshots: lit-element: 4.1.1 lit-html: 3.2.1 - lmdb@3.1.5: + lmdb@3.2.2: dependencies: msgpackr: 1.11.2 node-addon-api: 6.1.0 @@ -17444,26 +17063,23 @@ snapshots: ordered-binary: 1.5.3 weak-lru-cache: 1.2.2 optionalDependencies: - '@lmdb/lmdb-darwin-arm64': 3.1.5 - '@lmdb/lmdb-darwin-x64': 3.1.5 - '@lmdb/lmdb-linux-arm': 3.1.5 - '@lmdb/lmdb-linux-arm64': 3.1.5 - '@lmdb/lmdb-linux-x64': 3.1.5 - '@lmdb/lmdb-win32-x64': 3.1.5 + '@lmdb/lmdb-darwin-arm64': 3.2.2 + '@lmdb/lmdb-darwin-x64': 3.2.2 + '@lmdb/lmdb-linux-arm': 3.2.2 + '@lmdb/lmdb-linux-arm64': 3.2.2 + '@lmdb/lmdb-linux-x64': 3.2.2 + '@lmdb/lmdb-win32-x64': 3.2.2 optional: true - loader-runner@4.3.0: - optional: true + loader-runner@4.3.0: {} loader-utils@2.0.4: dependencies: big.js: 5.2.2 emojis-list: 3.0.0 json5: 2.2.3 - optional: true - loader-utils@3.2.1: - optional: true + loader-utils@3.3.1: {} local-pkg@0.5.0: dependencies: @@ -17483,10 +17099,8 @@ snapshots: locate-path@7.2.0: dependencies: p-locate: 6.0.0 - optional: true - lodash.debounce@4.0.8: - optional: true + lodash.debounce@4.0.8: {} lodash.merge@4.6.2: {} @@ -17505,6 +17119,16 @@ snapshots: strip-ansi: 7.1.0 wrap-ansi: 9.0.0 + log4js@6.9.1: + dependencies: + date-format: 4.0.14 + debug: 4.4.0 + flatted: 3.3.1 + rfdc: 1.4.1 + streamroller: 3.1.5 + transitivePeerDependencies: + - supports-color + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -17538,10 +17162,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.12: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -17550,11 +17170,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.8: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - optional: true - make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -17565,6 +17180,10 @@ snapshots: dependencies: semver: 6.3.1 + make-dir@4.0.0: + dependencies: + semver: 7.6.3 + make-fetch-happen@14.0.3: dependencies: '@npmcli/agent': 3.0.0 @@ -17592,18 +17211,18 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 - math-intrinsics@1.1.0: - optional: true + math-intrinsics@1.1.0: {} mdurl@2.0.0: {} - media-typer@0.3.0: - optional: true + media-typer@0.3.0: {} - memfs@3.5.3: + memfs@4.17.0: dependencies: - fs-monkey: 1.0.6 - optional: true + '@jsonjoy.com/json-pack': 1.1.1(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + tree-dump: 1.0.2(tslib@2.8.1) + tslib: 2.8.1 meow@12.1.1: {} @@ -17611,15 +17230,13 @@ snapshots: dependencies: is-what: 4.1.16 - merge-descriptors@1.0.3: - optional: true + merge-descriptors@1.0.3: {} merge-stream@2.0.0: {} merge2@1.4.1: {} - methods@1.1.2: - optional: true + methods@1.1.2: {} micro-memoize@4.1.2: {} @@ -17632,7 +17249,6 @@ snapshots: dependencies: braces: 3.0.3 picomatch: 2.3.1 - optional: true mime-db@1.33.0: {} @@ -17646,8 +17262,9 @@ snapshots: dependencies: mime-db: 1.52.0 - mime@1.6.0: - optional: true + mime@1.6.0: {} + + mime@2.6.0: {} mimic-fn@2.1.0: {} @@ -17655,15 +17272,13 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.8.1(webpack@5.90.3(esbuild@0.20.1)): + mini-css-extract-plugin@2.9.2(webpack@5.97.1(esbuild@0.24.2)): dependencies: schema-utils: 4.3.0 tapable: 2.2.1 - webpack: 5.90.3(esbuild@0.24.2) - optional: true + webpack: 5.97.1(esbuild@0.24.2) - minimalistic-assert@1.0.1: - optional: true + minimalistic-assert@1.0.1: {} minimatch@10.0.1: dependencies: @@ -17733,13 +17348,17 @@ snapshots: minipass: 7.1.2 rimraf: 5.0.7 + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + mkdirp@1.0.4: {} mkdirp@3.0.1: {} mlly@1.7.1: dependencies: - acorn: 8.12.1 + acorn: 8.14.0 pathe: 1.1.2 pkg-types: 1.1.1 ufo: 1.5.3 @@ -17777,7 +17396,6 @@ snapshots: dependencies: dns-packet: 5.6.1 thunky: 1.1.0 - optional: true mute-stream@1.0.0: {} @@ -17805,24 +17423,22 @@ snapshots: negotiator@0.6.3: {} - negotiator@0.6.4: - optional: true + negotiator@0.6.4: {} negotiator@1.0.0: {} - neo-async@2.6.2: - optional: true + neo-async@2.6.2: {} - ng-packagr@19.0.1(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3): + ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3): dependencies: - '@angular/compiler-cli': 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) - '@rollup/plugin-json': 6.1.0(rollup@4.29.1) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + '@rollup/plugin-json': 6.1.0(rollup@4.32.0) '@rollup/wasm-node': 4.29.1 ajv: 8.17.1 ansi-colors: 4.1.3 - browserslist: 4.23.1 + browserslist: 4.24.4 chokidar: 4.0.3 - commander: 12.1.0 + commander: 13.1.0 convert-source-map: 2.0.0 dependency-graph: 1.0.0 esbuild: 0.24.2 @@ -17833,18 +17449,41 @@ snapshots: less: 4.2.0 ora: 5.4.1 piscina: 4.8.0 - postcss: 8.4.49 + postcss: 8.5.1 rxjs: 7.8.1 sass: 1.83.0 tslib: 2.8.1 - typescript: 5.7.3 + typescript: 5.6.3 optionalDependencies: - rollup: 4.29.1 + rollup: 4.32.0 - nice-napi@1.0.2: + ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3): dependencies: - node-addon-api: 3.2.1 - node-gyp-build: 4.8.4 + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + '@rollup/plugin-json': 6.1.0(rollup@4.32.0) + '@rollup/wasm-node': 4.29.1 + ajv: 8.17.1 + ansi-colors: 4.1.3 + browserslist: 4.24.4 + chokidar: 4.0.3 + commander: 13.1.0 + convert-source-map: 2.0.0 + dependency-graph: 1.0.0 + esbuild: 0.24.2 + 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.4.1 + piscina: 4.8.0 + postcss: 8.5.1 + rxjs: 7.8.1 + sass: 1.83.0 + tslib: 2.8.1 + typescript: 5.7.3 + optionalDependencies: + rollup: 4.32.0 optional: true no-case@3.0.4: @@ -17852,26 +17491,19 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 - node-addon-api@3.2.1: - optional: true - node-addon-api@6.1.0: optional: true node-addon-api@7.1.1: optional: true - node-forge@1.3.1: - optional: true + node-forge@1.3.1: {} node-gyp-build-optional-packages@5.2.2: dependencies: detect-libc: 2.0.3 optional: true - node-gyp-build@4.8.4: - optional: true - node-gyp@11.0.0: dependencies: env-paths: 2.2.1 @@ -17894,8 +17526,6 @@ snapshots: node-machine-id@1.1.12: {} - node-releases@2.0.14: {} - node-releases@2.0.19: {} nopt@8.0.0: @@ -17910,8 +17540,7 @@ snapshots: normalize-path@3.0.0: {} - normalize-range@0.1.2: - optional: true + normalize-range@0.1.2: {} npm-bundled@2.0.1: dependencies: @@ -17929,7 +17558,7 @@ snapshots: npm-normalize-package-bin@4.0.0: {} - npm-package-arg@12.0.0: + npm-package-arg@12.0.1: dependencies: hosted-git-info: 8.0.2 proc-log: 5.0.0 @@ -17951,7 +17580,7 @@ snapshots: dependencies: npm-install-checks: 7.1.1 npm-normalize-package-bin: 4.0.0 - npm-package-arg: 12.0.0 + npm-package-arg: 12.0.1 semver: 7.6.3 npm-registry-fetch@18.0.2: @@ -17962,7 +17591,7 @@ snapshots: minipass: 7.1.2 minipass-fetch: 4.0.0 minizlib: 3.0.1 - npm-package-arg: 12.0.0 + npm-package-arg: 12.0.1 proc-log: 5.0.0 transitivePeerDependencies: - supports-color @@ -18031,8 +17660,9 @@ snapshots: transitivePeerDependencies: - debug - object-inspect@1.13.3: - optional: true + object-assign@4.1.1: {} + + object-inspect@1.13.3: {} object.defaults@1.1.0: dependencies: @@ -18045,13 +17675,15 @@ snapshots: dependencies: isobject: 3.0.1 - obuf@1.1.2: - optional: true + obuf@1.1.2: {} + + on-finished@2.3.0: + dependencies: + ee-first: 1.1.1 on-finished@2.4.1: dependencies: ee-first: 1.1.1 - optional: true on-headers@1.0.2: {} @@ -18067,6 +17699,13 @@ snapshots: dependencies: mimic-function: 5.0.1 + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 @@ -18123,7 +17762,6 @@ snapshots: p-limit@4.0.0: dependencies: yocto-queue: 1.1.1 - optional: true p-locate@4.1.0: dependencies: @@ -18136,7 +17774,6 @@ snapshots: p-locate@6.0.0: dependencies: p-limit: 4.0.0 - optional: true p-map@4.0.0: dependencies: @@ -18144,11 +17781,11 @@ snapshots: p-map@7.0.3: {} - p-retry@4.6.2: + p-retry@6.2.1: dependencies: - '@types/retry': 0.12.0 + '@types/retry': 0.12.2 + is-network-error: 1.1.0 retry: 0.13.1 - optional: true p-try@2.2.0: {} @@ -18164,7 +17801,7 @@ snapshots: cacache: 19.0.1 fs-minipass: 3.0.3 minipass: 7.1.2 - npm-package-arg: 12.0.0 + npm-package-arg: 12.0.1 npm-packlist: 9.0.0 npm-pick-manifest: 10.0.0 npm-registry-fetch: 18.0.2 @@ -18193,7 +17830,6 @@ snapshots: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - optional: true parse-ms@4.0.0: {} @@ -18215,8 +17851,7 @@ snapshots: dependencies: entities: 4.5.0 - parseurl@1.3.3: - optional: true + parseurl@1.3.3: {} pascal-case@3.1.2: dependencies: @@ -18227,8 +17862,7 @@ snapshots: path-exists@4.0.0: {} - path-exists@5.0.0: - optional: true + path-exists@5.0.0: {} path-is-absolute@1.0.1: {} @@ -18256,13 +17890,11 @@ snapshots: lru-cache: 11.0.2 minipass: 7.1.2 - path-to-regexp@0.1.12: - optional: true + path-to-regexp@0.1.12: {} path-to-regexp@3.3.0: {} - path-type@4.0.0: - optional: true + path-type@5.0.0: {} pathe@1.1.2: {} @@ -18272,23 +17904,11 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.1: - optional: true - picomatch@4.0.2: {} pify@4.0.1: optional: true - piscina@4.4.0: - optionalDependencies: - nice-napi: 1.0.2 - optional: true - - piscina@4.7.0: - optionalDependencies: - '@napi-rs/nice': 1.0.1 - piscina@4.8.0: optionalDependencies: '@napi-rs/nice': 1.0.1 @@ -18300,7 +17920,6 @@ snapshots: pkg-dir@7.0.0: dependencies: find-up: 6.3.0 - optional: true pkg-types@1.1.1: dependencies: @@ -18315,52 +17934,59 @@ snapshots: optionalDependencies: postcss: 8.4.49 - postcss-loader@8.1.1(postcss@8.4.35)(typescript@5.7.3)(webpack@5.90.3(esbuild@0.20.1)): + postcss-loader@8.1.1(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(esbuild@0.24.2)): dependencies: - cosmiconfig: 9.0.0(typescript@5.7.3) + cosmiconfig: 9.0.0(typescript@5.6.3) jiti: 1.21.7 - postcss: 8.4.35 - semver: 7.6.0 + postcss: 8.4.49 + semver: 7.6.3 optionalDependencies: - webpack: 5.90.3(esbuild@0.24.2) + webpack: 5.97.1(esbuild@0.24.2) transitivePeerDependencies: - typescript optional: true + postcss-loader@8.1.1(postcss@8.4.49)(typescript@5.7.3)(webpack@5.97.1(esbuild@0.24.2)): + dependencies: + cosmiconfig: 9.0.0(typescript@5.7.3) + jiti: 1.21.7 + postcss: 8.4.49 + semver: 7.6.3 + optionalDependencies: + webpack: 5.97.1(esbuild@0.24.2) + transitivePeerDependencies: + - typescript + postcss-media-query-parser@0.2.3: {} - postcss-modules-extract-imports@3.1.0(postcss@8.4.35): + postcss-modules-extract-imports@3.1.0(postcss@8.5.1): dependencies: - postcss: 8.4.35 - optional: true + postcss: 8.5.1 - postcss-modules-local-by-default@4.2.0(postcss@8.4.35): + postcss-modules-local-by-default@4.2.0(postcss@8.5.1): dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 + icss-utils: 5.1.0(postcss@8.5.1) + postcss: 8.5.1 postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - optional: true - postcss-modules-scope@3.2.1(postcss@8.4.35): + postcss-modules-scope@3.2.1(postcss@8.5.1): dependencies: - postcss: 8.4.35 + postcss: 8.5.1 postcss-selector-parser: 7.0.0 - optional: true - postcss-modules-values@4.0.0(postcss@8.4.35): + postcss-modules-values@4.0.0(postcss@8.5.1): dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 - optional: true + icss-utils: 5.1.0(postcss@8.5.1) + postcss: 8.5.1 postcss-safe-parser@6.0.0(postcss@8.4.49): dependencies: postcss: 8.4.49 - postcss-scss@4.0.9(postcss@8.4.49): + postcss-scss@4.0.9(postcss@8.5.1): dependencies: - postcss: 8.4.49 + postcss: 8.5.1 postcss-selector-parser@6.1.0: dependencies: @@ -18371,17 +17997,8 @@ snapshots: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - optional: true - postcss-value-parser@4.2.0: - optional: true - - postcss@8.4.35: - dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 - optional: true + postcss-value-parser@4.2.0: {} postcss@8.4.49: dependencies: @@ -18418,8 +18035,7 @@ snapshots: proc-log@5.0.0: {} - process-nextick-args@2.0.1: - optional: true + process-nextick-args@2.0.1: {} promise-inflight@1.0.1: {} @@ -18432,7 +18048,6 @@ snapshots: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - optional: true proxy-from-env@1.1.0: {} @@ -18449,24 +18064,25 @@ snapshots: punycode.js@2.3.1: {} + punycode@1.4.1: {} + punycode@2.3.1: {} + qjobs@1.2.0: {} + qs@6.13.0: dependencies: side-channel: 1.1.0 - optional: true queue-microtask@1.2.3: {} randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - optional: true range-parser@1.2.0: {} - range-parser@1.2.1: - optional: true + range-parser@1.2.1: {} raw-body@2.5.2: dependencies: @@ -18474,7 +18090,6 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - optional: true rc@1.2.8: dependencies: @@ -18483,6 +18098,12 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + react-dom@18.3.1(react@19.0.0): dependencies: loose-envify: 1.4.0 @@ -18498,6 +18119,10 @@ snapshots: react-refresh@0.14.2: {} + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + react@19.0.0: {} readable-stream@2.3.8: @@ -18509,7 +18134,6 @@ snapshots: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - optional: true readable-stream@3.6.2: dependencies: @@ -18525,7 +18149,7 @@ snapshots: rechoir@0.8.0: dependencies: - resolve: 1.22.8 + resolve: 1.22.10 redent@3.0.0: dependencies: @@ -18537,21 +18161,16 @@ snapshots: regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 - optional: true - regenerate@1.4.2: - optional: true + regenerate@1.4.2: {} - regenerator-runtime@0.14.1: - optional: true + regenerator-runtime@0.14.1: {} regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.24.0 - optional: true + '@babel/runtime': 7.26.0 - regex-parser@2.3.0: - optional: true + regex-parser@2.3.0: {} regexpu-core@6.2.0: dependencies: @@ -18561,7 +18180,6 @@ snapshots: regjsparser: 0.12.0 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.0 - optional: true registry-auth-token@3.3.2: dependencies: @@ -18572,13 +18190,11 @@ snapshots: dependencies: rc: 1.2.8 - regjsgen@0.8.0: - optional: true + regjsgen@0.8.0: {} regjsparser@0.12.0: dependencies: jsesc: 3.0.2 - optional: true remove-accents@0.5.0: {} @@ -18586,8 +18202,7 @@ snapshots: require-from-string@2.0.2: {} - requires-port@1.0.0: - optional: true + requires-port@1.0.0: {} resolve-dir@1.0.1: dependencies: @@ -18596,9 +18211,6 @@ snapshots: resolve-from@4.0.0: {} - resolve-from@5.0.0: - optional: true - resolve-pkg-maps@1.0.0: {} resolve-url-loader@5.0.0: @@ -18606,9 +18218,8 @@ snapshots: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.4.35 + postcss: 8.5.1 source-map: 0.6.1 - optional: true resolve.exports@2.0.3: {} @@ -18617,13 +18228,6 @@ snapshots: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - optional: true - - resolve@1.22.8: - dependencies: - is-core-module: 2.14.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 restore-cursor@3.1.0: dependencies: @@ -18637,8 +18241,7 @@ snapshots: retry@0.12.0: {} - retry@0.13.1: - optional: true + retry@0.13.1: {} reusify@1.0.4: {} @@ -18647,7 +18250,6 @@ snapshots: rimraf@3.0.2: dependencies: glob: 7.2.3 - optional: true rimraf@5.0.7: dependencies: @@ -18661,33 +18263,9 @@ snapshots: rollup-plugin-preserve-directives@0.4.0(rollup@4.32.0): dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.32.0) - magic-string: 0.30.11 + magic-string: 0.30.17 rollup: 4.32.0 - rollup@4.26.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.26.0 - '@rollup/rollup-android-arm64': 4.26.0 - '@rollup/rollup-darwin-arm64': 4.26.0 - '@rollup/rollup-darwin-x64': 4.26.0 - '@rollup/rollup-freebsd-arm64': 4.26.0 - '@rollup/rollup-freebsd-x64': 4.26.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.26.0 - '@rollup/rollup-linux-arm-musleabihf': 4.26.0 - '@rollup/rollup-linux-arm64-gnu': 4.26.0 - '@rollup/rollup-linux-arm64-musl': 4.26.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.26.0 - '@rollup/rollup-linux-riscv64-gnu': 4.26.0 - '@rollup/rollup-linux-s390x-gnu': 4.26.0 - '@rollup/rollup-linux-x64-gnu': 4.26.0 - '@rollup/rollup-linux-x64-musl': 4.26.0 - '@rollup/rollup-win32-arm64-msvc': 4.26.0 - '@rollup/rollup-win32-ia32-msvc': 4.26.0 - '@rollup/rollup-win32-x64-msvc': 4.26.0 - fsevents: 2.3.3 - rollup@4.29.1: dependencies: '@types/estree': 1.0.6 @@ -18713,6 +18291,31 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.29.1 fsevents: 2.3.3 + rollup@4.30.1: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.30.1 + '@rollup/rollup-android-arm64': 4.30.1 + '@rollup/rollup-darwin-arm64': 4.30.1 + '@rollup/rollup-darwin-x64': 4.30.1 + '@rollup/rollup-freebsd-arm64': 4.30.1 + '@rollup/rollup-freebsd-x64': 4.30.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.30.1 + '@rollup/rollup-linux-arm-musleabihf': 4.30.1 + '@rollup/rollup-linux-arm64-gnu': 4.30.1 + '@rollup/rollup-linux-arm64-musl': 4.30.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.30.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.30.1 + '@rollup/rollup-linux-riscv64-gnu': 4.30.1 + '@rollup/rollup-linux-s390x-gnu': 4.30.1 + '@rollup/rollup-linux-x64-gnu': 4.30.1 + '@rollup/rollup-linux-x64-musl': 4.30.1 + '@rollup/rollup-win32-arm64-msvc': 4.30.1 + '@rollup/rollup-win32-ia32-msvc': 4.30.1 + '@rollup/rollup-win32-x64-msvc': 4.30.1 + fsevents: 2.3.3 + rollup@4.32.0: dependencies: '@types/estree': 1.0.6 @@ -18740,8 +18343,7 @@ snapshots: rrweb-cssom@0.7.1: {} - run-async@3.0.0: - optional: true + run-applescript@7.0.0: {} run-parallel@1.2.0: dependencies: @@ -18759,24 +18361,22 @@ snapshots: safe-buffer@5.2.1: {} + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 + safer-buffer@2.1.2: {} - sass-loader@14.1.1(sass@1.71.1)(webpack@5.90.3(esbuild@0.20.1)): + sass-loader@16.0.4(sass@1.83.1)(webpack@5.97.1(esbuild@0.24.2)): dependencies: neo-async: 2.6.2 optionalDependencies: - sass: 1.71.1 - webpack: 5.90.3(esbuild@0.24.2) - optional: true + sass: 1.83.1 + webpack: 5.97.1(esbuild@0.24.2) - sass@1.71.1: - dependencies: - chokidar: 3.6.0 - immutable: 4.3.7 - source-map-js: 1.2.1 - optional: true - - sass@1.80.7: + sass@1.83.0: dependencies: chokidar: 4.0.3 immutable: 5.0.3 @@ -18784,7 +18384,7 @@ snapshots: optionalDependencies: '@parcel/watcher': 2.5.0 - sass@1.83.0: + sass@1.83.1: dependencies: chokidar: 4.0.3 immutable: 5.0.3 @@ -18810,7 +18410,6 @@ snapshots: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - optional: true schema-utils@4.3.0: dependencies: @@ -18818,16 +18417,13 @@ snapshots: ajv: 8.17.1 ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) - optional: true - select-hose@2.0.0: - optional: true + select-hose@2.0.0: {} selfsigned@2.4.1: dependencies: '@types/node-forge': 1.3.11 node-forge: 1.3.1 - optional: true semver@5.7.2: optional: true @@ -18838,11 +18434,6 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.6.0: - dependencies: - lru-cache: 6.0.0 - optional: true - semver@7.6.3: {} send@0.19.0: @@ -18862,12 +18453,10 @@ snapshots: statuses: 2.0.1 transitivePeerDependencies: - supports-color - optional: true serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - optional: true seroval-plugins@1.1.1(seroval@1.1.1): dependencies: @@ -18896,7 +18485,6 @@ snapshots: parseurl: 1.3.3 transitivePeerDependencies: - supports-color - optional: true serve-static@1.16.2: dependencies: @@ -18906,7 +18494,6 @@ snapshots: send: 0.19.0 transitivePeerDependencies: - supports-color - optional: true serve@14.2.4: dependencies: @@ -18924,26 +18511,13 @@ snapshots: transitivePeerDependencies: - supports-color - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.7 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - optional: true - - setprototypeof@1.1.0: - optional: true + setprototypeof@1.1.0: {} - setprototypeof@1.2.0: - optional: true + setprototypeof@1.2.0: {} shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - optional: true shebang-command@1.2.0: dependencies: @@ -18957,8 +18531,7 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.2: - optional: true + shell-quote@1.8.2: {} sherif-darwin-arm64@1.1.1: optional: true @@ -18993,7 +18566,6 @@ snapshots: dependencies: es-errors: 1.3.0 object-inspect: 1.13.3 - optional: true side-channel-map@1.0.1: dependencies: @@ -19001,7 +18573,6 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.7 object-inspect: 1.13.3 - optional: true side-channel-weakmap@1.0.2: dependencies: @@ -19010,7 +18581,6 @@ snapshots: get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-map: 1.0.1 - optional: true side-channel@1.1.0: dependencies: @@ -19019,7 +18589,6 @@ snapshots: side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 - optional: true siginfo@2.0.0: {} @@ -19056,8 +18625,7 @@ snapshots: picocolors: 1.1.1 tinyglobby: 0.2.10 - slash@4.0.0: - optional: true + slash@5.1.0: {} slice-ansi@5.0.0: dependencies: @@ -19073,17 +18641,46 @@ snapshots: smol-toml@1.3.1: {} + socket.io-adapter@2.5.5: + dependencies: + debug: 4.3.6 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + socket.io@4.8.1: + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.6 + engine.io: 6.6.4 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 - optional: true socks-proxy-agent@8.0.4: dependencies: - agent-base: 7.1.1 - debug: 4.3.6 + agent-base: 7.1.3 + debug: 4.4.0 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -19112,18 +18709,16 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@5.0.0(webpack@5.90.3(esbuild@0.20.1)): + source-map-loader@5.0.0(webpack@5.97.1(esbuild@0.24.2)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.90.3(esbuild@0.24.2) - optional: true + webpack: 5.97.1(esbuild@0.24.2) source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - optional: true source-map@0.6.1: {} @@ -19153,7 +18748,6 @@ snapshots: wbuf: 1.7.3 transitivePeerDependencies: - supports-color - optional: true spdy@4.0.2: dependencies: @@ -19164,7 +18758,6 @@ snapshots: spdy-transport: 3.0.0 transitivePeerDependencies: - supports-color - optional: true split2@4.2.0: {} @@ -19182,14 +18775,20 @@ snapshots: stackback@0.0.2: {} - statuses@1.5.0: - optional: true + statuses@1.5.0: {} - statuses@2.0.1: - optional: true + statuses@2.0.1: {} std-env@3.8.0: {} + streamroller@3.1.5: + dependencies: + date-format: 4.0.14 + debug: 4.4.0 + fs-extra: 8.1.0 + transitivePeerDependencies: + - supports-color + string-argv@0.3.2: {} string-ts@2.2.0: {} @@ -19215,7 +18814,6 @@ snapshots: string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - optional: true string_decoder@1.3.0: dependencies: @@ -19292,8 +18890,8 @@ snapshots: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - postcss: 8.4.49 - postcss-scss: 4.0.9(postcss@8.4.49) + postcss: 8.5.1 + postcss-scss: 4.0.9(postcss@8.5.1) optionalDependencies: svelte: 5.19.3 @@ -19355,25 +18953,16 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - terser-webpack-plugin@5.3.11(esbuild@0.24.2)(webpack@5.90.3(esbuild@0.20.1)): + terser-webpack-plugin@5.3.11(esbuild@0.24.2)(webpack@5.97.1(esbuild@0.24.2)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.37.0 - webpack: 5.90.3(esbuild@0.24.2) + webpack: 5.97.1(esbuild@0.24.2) optionalDependencies: esbuild: 0.24.2 - optional: true - - terser@5.29.1: - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.14.0 - commander: 2.20.3 - source-map-support: 0.5.21 - optional: true terser@5.37.0: dependencies: @@ -19381,21 +18970,16 @@ snapshots: acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 - optional: true - - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - optional: true text-extensions@2.4.0: {} + thingies@1.21.0(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + through@2.3.8: {} - thunky@1.1.0: - optional: true + thunky@1.1.0: {} tiny-invariant@1.3.3: {} @@ -19432,8 +19016,7 @@ snapshots: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: - optional: true + toidentifier@1.0.1: {} tough-cookie@5.0.0: dependencies: @@ -19443,8 +19026,11 @@ snapshots: dependencies: punycode: 2.3.1 - tree-kill@1.2.2: - optional: true + tree-dump@1.0.2(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + + tree-kill@1.2.2: {} ts-api-utils@1.3.0(typescript@5.6.3): dependencies: @@ -19480,9 +19066,6 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@2.6.2: - optional: true - tslib@2.8.1: {} tsx@4.19.2: @@ -19495,7 +19078,7 @@ snapshots: tuf-js@3.0.1: dependencies: '@tufjs/models': 3.0.1 - debug: 4.3.6 + debug: 4.4.0 make-fetch-happen: 14.0.3 transitivePeerDependencies: - supports-color @@ -19514,10 +19097,8 @@ snapshots: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - optional: true - typed-assert@1.0.9: - optional: true + typed-assert@1.0.9: {} typedoc-plugin-frontmatter@1.1.2(typedoc-plugin-markdown@4.4.0(typedoc@0.27.6(typescript@5.6.3))): dependencies: @@ -19549,10 +19130,14 @@ snapshots: typescript@5.4.2: {} + typescript@5.4.5: {} + typescript@5.6.3: {} typescript@5.7.3: {} + ua-parser-js@0.7.40: {} + uc.micro@2.1.0: {} ufo@1.5.3: {} @@ -19561,23 +19146,18 @@ snapshots: undici-types@6.20.0: {} - undici@6.11.1: - optional: true - - unicode-canonical-property-names-ecmascript@2.0.1: - optional: true + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.1 unicode-property-aliases-ecmascript: 2.1.0 - optional: true - unicode-match-property-value-ecmascript@2.2.0: - optional: true + unicode-match-property-value-ecmascript@2.2.0: {} - unicode-property-aliases-ecmascript@2.1.0: - optional: true + unicode-property-aliases-ecmascript@2.1.0: {} + + unicorn-magic@0.1.0: {} unique-filename@4.0.0: dependencies: @@ -19595,32 +19175,18 @@ snapshots: universalify@2.0.1: {} - unpipe@1.0.0: - optional: true + unpipe@1.0.0: {} unplugin@1.16.0: dependencies: acorn: 8.14.0 webpack-virtual-modules: 0.6.2 - update-browserslist-db@1.0.16(browserslist@4.23.1): - dependencies: - browserslist: 4.23.1 - escalade: 3.1.2 - picocolors: 1.1.1 - - update-browserslist-db@1.1.1(browserslist@4.24.3): - dependencies: - browserslist: 4.24.3 - escalade: 3.2.0 - picocolors: 1.1.1 - update-browserslist-db@1.1.2(browserslist@4.24.4): dependencies: browserslist: 4.24.4 escalade: 3.2.0 picocolors: 1.1.1 - optional: true update-check@1.5.4: dependencies: @@ -19637,11 +19203,9 @@ snapshots: util-deprecate@1.0.2: {} - utils-merge@1.0.1: - optional: true + utils-merge@1.0.1: {} - uuid@8.3.2: - optional: true + uuid@8.3.2: {} v8flags@4.0.1: {} @@ -19670,13 +19234,31 @@ snapshots: '@types/unist': 3.0.2 vfile-message: 4.0.2 - vite-node@2.1.8(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0): + vite-node@2.1.8(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): + dependencies: + cac: 6.7.14 + debug: 4.4.0 + es-module-lexer: 1.5.4 + pathe: 1.1.2 + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite-node@2.1.8(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -19688,7 +19270,7 @@ snapshots: - supports-color - terser - vite-plugin-dts@4.0.3(@types/node@22.10.2)(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)): + vite-plugin-dts@4.0.3(@types/node@22.10.2)(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)): dependencies: '@microsoft/api-extractor': 7.47.4(@types/node@22.10.2) '@rollup/pluginutils': 5.1.0(rollup@4.32.0) @@ -19698,21 +19280,21 @@ snapshots: debug: 4.3.6 kolorist: 1.8.0 local-pkg: 0.5.0 - magic-string: 0.30.11 + magic-string: 0.30.17 typescript: 5.6.3 vue-tsc: 2.0.29(typescript@5.6.3) optionalDependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.8.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)): + vite-plugin-externalize-deps@0.8.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)): dependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) - vite-plugin-solid@2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)): + vite-plugin-solid@2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)): dependencies: '@babel/core': 7.24.7 '@types/babel__core': 7.20.5 @@ -19720,14 +19302,14 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.3 solid-refresh: 0.6.3(solid-js@1.9.3) - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) - vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)): + vite-plugin-solid@2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)): dependencies: '@babel/core': 7.24.7 '@types/babel__core': 7.20.5 @@ -19735,63 +19317,25 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.3 solid-refresh: 0.6.3(solid-js@1.9.3) - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - vitefu: 1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)): + vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)): dependencies: debug: 4.3.6 globrex: 0.1.2 tsconfck: 3.1.1(typescript@5.6.3) optionalDependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - supports-color - typescript - vite@5.1.7(@types/node@22.10.10)(less@4.2.0)(sass@1.71.1)(terser@5.29.1): - dependencies: - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.32.0 - optionalDependencies: - '@types/node': 22.10.10 - fsevents: 2.3.3 - less: 4.2.0 - sass: 1.71.1 - terser: 5.29.1 - optional: true - - vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.80.7)(terser@5.29.1): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.49 - rollup: 4.29.1 - optionalDependencies: - '@types/node': 22.10.10 - fsevents: 2.3.3 - less: 4.2.0 - sass: 1.80.7 - terser: 5.29.1 - optional: true - - vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.80.7)(terser@5.37.0): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.49 - rollup: 4.29.1 - optionalDependencies: - '@types/node': 22.10.10 - fsevents: 2.3.3 - less: 4.2.0 - sass: 1.80.7 - terser: 5.37.0 - - vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0): + vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 @@ -19799,11 +19343,11 @@ snapshots: optionalDependencies: '@types/node': 22.10.10 fsevents: 2.3.3 - less: 4.2.0 - sass: 1.83.0 + less: 4.2.1 + sass: 1.83.1 terser: 5.37.0 - vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0): + vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 @@ -19811,11 +19355,11 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 - less: 4.2.0 - sass: 1.83.0 + less: 4.2.1 + sass: 1.83.1 terser: 5.37.0 - vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1): + vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1): dependencies: esbuild: 0.24.2 postcss: 8.5.1 @@ -19824,28 +19368,60 @@ snapshots: '@types/node': 22.10.10 fsevents: 2.3.3 jiti: 2.4.2 - less: 4.2.0 - sass: 1.83.0 + less: 4.2.1 + sass: 1.83.1 terser: 5.37.0 tsx: 4.19.2 yaml: 2.6.1 - vitefu@1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)): + vitefu@1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)): optionalDependencies: - vite: 5.4.11(@types/node@22.10.10)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) - vitefu@1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)): + vitefu@1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)): optionalDependencies: - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - vitefu@1.0.5(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)): + vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): + dependencies: + '@vitest/expect': 2.1.8 + '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + '@vitest/pretty-format': 2.1.8 + '@vitest/runner': 2.1.8 + '@vitest/snapshot': 2.1.8 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 + chai: 5.1.2 + debug: 4.4.0 + expect-type: 1.1.0 + magic-string: 0.30.17 + pathe: 1.1.2 + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 1.2.0 + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite-node: 2.1.8(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + why-is-node-running: 2.3.0 optionalDependencies: - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + '@types/node': 22.10.10 + jsdom: 25.0.1 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser - vitest@2.1.8(@types/node@22.10.2)(jsdom@25.0.1)(less@4.2.0)(sass@1.83.0)(terser@5.37.0): + vitest@2.1.8(@types/node@22.10.2)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0)) + '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -19861,8 +19437,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) - vite-node: 2.1.8(@types/node@22.10.2)(less@4.2.0)(sass@1.83.0)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite-node: 2.1.8(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.10.2 @@ -19878,6 +19454,8 @@ snapshots: - supports-color - terser + void-elements@2.0.1: {} + vscode-uri@3.0.8: {} vue-eslint-parser@9.4.3(eslint@9.17.0(jiti@2.4.2)): @@ -19930,12 +19508,6 @@ snapshots: dependencies: xml-name-validator: 5.0.0 - watchpack@2.4.0: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - optional: true - watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 @@ -19944,7 +19516,6 @@ snapshots: wbuf@1.7.3: dependencies: minimalistic-assert: 1.0.1 - optional: true wcwidth@1.0.1: dependencies: @@ -19955,28 +19526,18 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-dev-middleware@5.3.4(webpack@5.90.3(esbuild@0.20.1)): - dependencies: - colorette: 2.0.20 - memfs: 3.5.3 - mime-types: 2.1.35 - range-parser: 1.2.1 - schema-utils: 4.3.0 - webpack: 5.90.3(esbuild@0.24.2) - optional: true - - webpack-dev-middleware@6.1.2(webpack@5.90.3(esbuild@0.20.1)): + webpack-dev-middleware@7.4.2(webpack@5.97.1(esbuild@0.24.2)): dependencies: colorette: 2.0.20 - memfs: 3.5.3 + memfs: 4.17.0 mime-types: 2.1.35 + on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.0 optionalDependencies: - webpack: 5.90.3(esbuild@0.24.2) - optional: true + webpack: 5.97.1(esbuild@0.24.2) - webpack-dev-server@4.15.1(webpack@5.90.3(esbuild@0.20.1)): + webpack-dev-server@5.2.0(webpack@5.97.1(esbuild@0.24.2)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -19991,51 +19552,44 @@ snapshots: colorette: 2.0.20 compression: 1.7.5 connect-history-api-fallback: 2.0.0 - default-gateway: 6.0.3 express: 4.21.2 graceful-fs: 4.2.11 - html-entities: 2.5.2 - http-proxy-middleware: 2.0.6(@types/express@4.17.21) + http-proxy-middleware: 2.0.7(@types/express@4.17.21) ipaddr.js: 2.2.0 launch-editor: 2.9.1 - open: 8.4.2 - p-retry: 4.6.2 - rimraf: 3.0.2 + open: 10.1.0 + p-retry: 6.2.1 schema-utils: 4.3.0 selfsigned: 2.4.1 serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.90.3(esbuild@0.20.1)) + webpack-dev-middleware: 7.4.2(webpack@5.97.1(esbuild@0.24.2)) ws: 8.18.0 optionalDependencies: - webpack: 5.90.3(esbuild@0.24.2) + webpack: 5.97.1(esbuild@0.24.2) transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - optional: true - webpack-merge@5.10.0: + webpack-merge@6.0.1: dependencies: clone-deep: 4.0.1 flat: 5.0.2 wildcard: 2.0.1 - optional: true - webpack-sources@3.2.3: - optional: true + webpack-sources@3.2.3: {} - webpack-subresource-integrity@5.1.0(webpack@5.90.3(esbuild@0.20.1)): + webpack-subresource-integrity@5.1.0(webpack@5.97.1(esbuild@0.24.2)): dependencies: typed-assert: 1.0.9 - webpack: 5.90.3(esbuild@0.24.2) - optional: true + webpack: 5.97.1(esbuild@0.24.2) webpack-virtual-modules@0.6.2: {} - webpack@5.90.3(esbuild@0.24.2): + webpack@5.97.1(esbuild@0.24.2): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -20043,7 +19597,6 @@ snapshots: '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 - acorn-import-assertions: 1.9.0(acorn@8.14.0) browserslist: 4.24.4 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 @@ -20058,24 +19611,21 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(esbuild@0.24.2)(webpack@5.90.3(esbuild@0.20.1)) - watchpack: 2.4.0 + terser-webpack-plugin: 5.3.11(esbuild@0.24.2)(webpack@5.97.1(esbuild@0.24.2)) + watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - optional: true websocket-driver@0.7.4: dependencies: http-parser-js: 0.5.9 safe-buffer: 5.2.1 websocket-extensions: 0.1.4 - optional: true - websocket-extensions@0.1.4: - optional: true + websocket-extensions@0.1.4: {} whatwg-encoding@3.1.1: dependencies: @@ -20109,8 +19659,7 @@ snapshots: dependencies: string-width: 5.1.2 - wildcard@2.0.1: - optional: true + wildcard@2.0.1: {} word-wrap@1.2.5: {} @@ -20140,6 +19689,8 @@ snapshots: wrappy@1.0.2: {} + ws@8.17.1: {} + ws@8.18.0: {} xml-name-validator@4.0.0: {} @@ -20164,12 +19715,24 @@ snapshots: yaml@2.6.1: {} + yargs-parser@20.2.9: {} + yargs-parser@21.1.1: {} + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -20178,8 +19741,7 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.1.1: - optional: true + yocto-queue@1.1.1: {} yoctocolors-cjs@2.1.2: {}