diff --git a/docs/config.json b/docs/config.json index e09f9d1de9..3eff7c92ec 100644 --- a/docs/config.json +++ b/docs/config.json @@ -707,6 +707,10 @@ "label": "Default Query Fn", "to": "framework/angular/guides/default-query-function" }, + { + "label": "Testing", + "to": "framework/angular/guides/testing" + }, { "label": "Does this replace state managers?", "to": "framework/angular/guides/does-this-replace-client-state" @@ -1283,6 +1287,10 @@ { "label": "Devtools embedded panel", "to": "framework/angular/examples/devtools-panel" + }, + { + "label": "Unit Testing / Jest", + "to": "framework/angular/examples/unit-testing" } ] } diff --git a/docs/framework/angular/guides/testing.md b/docs/framework/angular/guides/testing.md new file mode 100644 index 0000000000..47cadce359 --- /dev/null +++ b/docs/framework/angular/guides/testing.md @@ -0,0 +1,171 @@ +--- +id: testing +title: Testing +--- + +As there is currently no simple way to await a signal to reach a specific value we will use polling to wait in our test (instead of transforming our signals in observable and use RxJS features to filter the values). If you want to do like us for the polling you can use the angular testing library. + +Install this by running: + +```sh +ng add @testing-library/angular +``` + +Otherwise we recommend to use the toObservable feature from Angular. + +## What to test + +Because the recommendation is to use services that provide the Query options through function this is what we are going to do. + +## A simple test + +```ts +//tasks.service.ts +import { HttpClient } from '@angular/common/http' +import { Injectable, inject } from '@angular/core' +import { + QueryClient, + mutationOptions, + queryOptions, +} from '@tanstack/angular-query-experimental' + +import { lastValueFrom } from 'rxjs' + +@Injectable({ + providedIn: 'root', +}) +export class TasksService { + #queryClient = inject(QueryClient) // Manages query state and caching + #http = inject(HttpClient) // Handles HTTP requests + + /** + * Fetches all tasks from the API. + * Returns an observable containing an array of task strings. + */ + allTasks = () => + queryOptions({ + queryKey: ['tasks'], + queryFn: () => { + return lastValueFrom(this.#http.get>('/api/tasks')); + } + }) +} +``` + +```ts +// tasks.service.spec.ts +import { TestBed } from "@angular/core/testing"; +import { provideHttpClient, withFetch, withInterceptors } from "@angular/common/http"; +import { QueryClient, injectQuery, provideTanStackQuery } from "@tanstack/angular-query-experimental"; +import { Injector, inject, runInInjectionContext } from "@angular/core"; +import { waitFor } from '@testing-library/angular'; +import { mockInterceptor } from "../interceptor/mock-api.interceptor"; +import { TasksService } from "./tasks.service"; +import type { CreateQueryResult} from "@tanstack/angular-query-experimental"; + +describe('Test suite: TaskService', () => { + let service!: TasksService; + let injector!: Injector; + + // https://angular.dev/guide/http/testing + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [ + provideHttpClient(withFetch(), withInterceptors([mockInterceptor])), + TasksService, + // It is recommended to cancel the retries in the tests + provideTanStackQuery(new QueryClient({ + defaultOptions: { + queries: { + retry: false + } + } + })) + ] + }); + service = TestBed.inject(TasksService); + injector = TestBed.inject(Injector); + }); + + it('should get all the Tasks', () => { + let allTasks: any; + runInInjectionContext(injector, () => { + allTasks = injectQuery(() => service.allTasks()); + }); + expect(allTasks.status()).toEqual('pending'); + expect(allTasks.isFetching()).toEqual(true); + expect(allTasks.data()).toEqual(undefined); + // We await the first result from the query + await waitFor(() => expect(allTasks.isFetching()).toBe(false), {timeout: 10000}); + expect(allTasks.status()).toEqual('success'); + expect(allTasks.data()).toEqual([]); // Considering that the inteceptor is returning [] at the first query request. + // To have a more complete example have a look at "unit testing / jest" + }); +}); +``` + +```ts +// mock-api.interceptor.ts +/** + * MockApiInterceptor is used to simulate API responses for `/api/tasks` endpoints. + * It handles the following operations: + * - GET: Fetches all tasks from sessionStorage. + * - POST: Adds a new task to sessionStorage. + * Simulated responses include a delay to mimic network latency. + */ +import { HttpResponse } from '@angular/common/http' +import { delay, of, throwError } from 'rxjs' +import type { + HttpEvent, + HttpHandlerFn, + HttpInterceptorFn, + HttpRequest, +} from '@angular/common/http' +import type { Observable } from 'rxjs' + +export const mockInterceptor: HttpInterceptorFn = ( + req: HttpRequest, + next: HttpHandlerFn, +): Observable> => { + const respondWith = (status: number, body: any) => + of(new HttpResponse({ status, body })).pipe(delay(1000)) + if (req.url === '/api/tasks') { + switch (req.method) { + case 'GET': + return respondWith( + 200, + JSON.parse( + sessionStorage.getItem('unit-testing-tasks') || '[]', + ), + ) + case 'POST': + const tasks = JSON.parse( + sessionStorage.getItem('unit-testing-tasks') || '[]', + ) + tasks.push(req.body) + sessionStorage.setItem( + 'unit-testing-tasks', + JSON.stringify(tasks), + ) + return respondWith(201, { + status: 'success', + task: req.body, + }) + } + } + if (req.url === '/api/tasks-wrong-url') { + return throwError(() => new Error('error')).pipe(delay(1000)); + } + + return next(req) +} +``` + +## Turn off retries + +The library defaults to three retries with exponential backoff, which means that your tests are likely to timeout if you want to test an erroneous query. The easiest way to turn retries off is via the provideTanStackQuery during the TestBed setup as shown in the above example. + +## Testing Network Calls + +Instead of targetting a server for the data you should mock the requests. There are multiple way of handling the mocking, we recommend to use the Interceptor from Angular, see [here](https://angular.dev/guide/http/interceptors) for more details. +You can see the the Interceptor setup in the "Unit testing / Jest" examples. diff --git a/examples/angular/auto-refetching/src/app/services/tasks.service.ts b/examples/angular/auto-refetching/src/app/services/tasks.service.ts index 41d3dacb27..43cab7e3cc 100644 --- a/examples/angular/auto-refetching/src/app/services/tasks.service.ts +++ b/examples/angular/auto-refetching/src/app/services/tasks.service.ts @@ -38,7 +38,7 @@ export class TasksService { lastValueFrom(this.#http.post('/api/tasks', task)), mutationKey: ['tasks'], onSuccess: () => { - this.#queryClient.invalidateQueries({ queryKey: ['tasks'] }) + return this.#queryClient.invalidateQueries({ queryKey: ['tasks'] }) }, }) } @@ -52,7 +52,7 @@ export class TasksService { mutationFn: () => lastValueFrom(this.#http.delete('/api/tasks')), mutationKey: ['clearTasks'], onSuccess: () => { - this.#queryClient.invalidateQueries({ queryKey: ['tasks'] }) + return this.#queryClient.invalidateQueries({ queryKey: ['tasks'] }) }, }) } diff --git a/examples/angular/optimistic-updates/src/app/components/optimistic-updates.component.ts b/examples/angular/optimistic-updates/src/app/components/optimistic-updates.component.ts index 2b0b4cc1c4..9fd5add03f 100644 --- a/examples/angular/optimistic-updates/src/app/components/optimistic-updates.component.ts +++ b/examples/angular/optimistic-updates/src/app/components/optimistic-updates.component.ts @@ -55,7 +55,6 @@ export class OptimisticUpdatesComponent { #tasksService = inject(TasksService) tasks = injectQuery(() => this.#tasksService.allTasks()) - clearMutation = injectMutation(() => this.#tasksService.addTask()) addMutation = injectMutation(() => this.#tasksService.addTask()) newItem = '' diff --git a/examples/angular/optimistic-updates/src/app/interceptor/mock-api.interceptor.ts b/examples/angular/optimistic-updates/src/app/interceptor/mock-api.interceptor.ts index 9df0fb6e93..681b5e2873 100644 --- a/examples/angular/optimistic-updates/src/app/interceptor/mock-api.interceptor.ts +++ b/examples/angular/optimistic-updates/src/app/interceptor/mock-api.interceptor.ts @@ -6,7 +6,7 @@ * Simulated responses include a delay to mimic network latency. */ import { HttpResponse } from '@angular/common/http' -import { delay, of } from 'rxjs' +import { delay, of, throwError } from 'rxjs' import type { HttpEvent, HttpHandlerFn, @@ -46,9 +46,7 @@ export const mockInterceptor: HttpInterceptorFn = ( } } if (req.url === '/api/tasks-wrong-url') { - return respondWith(500, { - status: 'error', - }) + return throwError(() => new Error('error')).pipe(delay(1000)); } return next(req) diff --git a/examples/angular/optimistic-updates/src/app/services/tasks.service.ts b/examples/angular/optimistic-updates/src/app/services/tasks.service.ts index d9a2d62428..0536738b8f 100644 --- a/examples/angular/optimistic-updates/src/app/services/tasks.service.ts +++ b/examples/angular/optimistic-updates/src/app/services/tasks.service.ts @@ -47,10 +47,8 @@ export class TasksService { ), ), mutationKey: ['tasks'], - onSuccess: () => { - this.#queryClient.invalidateQueries({ queryKey: ['tasks'] }) - }, - onMutate: async ({ task }) => { + onSuccess: () => {}, + onMutate: async ({ task } : {task: string}) => { // Cancel any outgoing refetches // (so they don't overwrite our optimistic update) await this.#queryClient.cancelQueries({ queryKey: ['tasks'] }) @@ -70,14 +68,14 @@ export class TasksService { return previousTodos }, - onError: (err, variables, context) => { + onError: (_err: any, _variables: any, context: any) => { if (context) { this.#queryClient.setQueryData>(['tasks'], context) } }, // Always refetch after error or success: onSettled: () => { - this.#queryClient.invalidateQueries({ queryKey: ['tasks'] }) + return this.#queryClient.invalidateQueries({ queryKey: ['tasks'] }) }, }) } diff --git a/examples/angular/unit-testing/.devcontainer/devcontainer.json b/examples/angular/unit-testing/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..365adf8f4c --- /dev/null +++ b/examples/angular/unit-testing/.devcontainer/devcontainer.json @@ -0,0 +1,4 @@ +{ + "name": "Node.js", + "image": "mcr.microsoft.com/devcontainers/javascript-node:22" +} diff --git a/examples/angular/unit-testing/.eslintrc.cjs b/examples/angular/unit-testing/.eslintrc.cjs new file mode 100644 index 0000000000..cca134ce16 --- /dev/null +++ b/examples/angular/unit-testing/.eslintrc.cjs @@ -0,0 +1,6 @@ +// @ts-check + +/** @type {import('eslint').Linter.Config} */ +const config = {} + +module.exports = config diff --git a/examples/angular/unit-testing/README.md b/examples/angular/unit-testing/README.md new file mode 100644 index 0000000000..43bca605da --- /dev/null +++ b/examples/angular/unit-testing/README.md @@ -0,0 +1,7 @@ +# TanStack Query Angular unit-testing example + +To run this example: + +- `npm install` or `yarn` or `pnpm i` or `bun i` +- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `npm run test` to run the tests diff --git a/examples/angular/unit-testing/angular.json b/examples/angular/unit-testing/angular.json new file mode 100644 index 0000000000..1aff4b0e18 --- /dev/null +++ b/examples/angular/unit-testing/angular.json @@ -0,0 +1,112 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "cli": { + "packageManager": "pnpm", + "analytics": false, + "cache": { + "enabled": false + } + }, + "newProjectRoot": "projects", + "projects": { + "unit-testing": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "inlineTemplate": true, + "inlineStyle": true, + "skipTests": true + }, + "@schematics/angular:class": { + "skipTests": true + }, + "@schematics/angular:directive": { + "skipTests": true + }, + "@schematics/angular:guard": { + "skipTests": true + }, + "@schematics/angular:interceptor": { + "skipTests": true + }, + "@schematics/angular:pipe": { + "skipTests": true + }, + "@schematics/angular:resolver": { + "skipTests": true + }, + "@schematics/angular:service": { + "skipTests": true + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular/build:application", + "options": { + "outputPath": "dist/unit-testing", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": ["zone.js"], + "tsConfig": "tsconfig.app.json", + "assets": ["src/favicon.ico", "src/assets"], + "styles": [], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "1mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular/build:dev-server", + "configurations": { + "production": { + "buildTarget": "unit-testing:build:production" + }, + "development": { + "buildTarget": "unit-testing:build:development" + } + }, + "defaultConfiguration": "development" + }, + "test": { + "builder": "@angular-builders/jest:run", + "options": { + "tsConfig": "tsconfig.spec.json", + "configPath": "jest.config.ts", + "rootDir": "." + } + }, + "extract-i18n": { + "builder": "@angular/build:extract-i18n", + "options": { + "buildTarget": "unit-testing:build" + } + } + } + } + } +} diff --git a/examples/angular/unit-testing/jest.config.ts b/examples/angular/unit-testing/jest.config.ts new file mode 100644 index 0000000000..d8a1a93088 --- /dev/null +++ b/examples/angular/unit-testing/jest.config.ts @@ -0,0 +1,5 @@ +const config: import('jest').Config = { + roots: ['/src/'], + setupFilesAfterEnv: [] + }; + export default config; \ No newline at end of file diff --git a/examples/angular/unit-testing/package.json b/examples/angular/unit-testing/package.json new file mode 100644 index 0000000000..aab65bab9a --- /dev/null +++ b/examples/angular/unit-testing/package.json @@ -0,0 +1,37 @@ +{ + "name": "@tanstack/query-example-angular-unit-testing", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/common": "^19.2.4", + "@angular/compiler": "^19.2.4", + "@angular/core": "^19.2.4", + "@angular/forms": "^19.2.4", + "@angular/platform-browser": "^19.2.4", + "@angular/platform-browser-dynamic": "^19.2.4", + "@tanstack/angular-query-experimental": "^5.72.3", + "rxjs": "^7.8.2", + "tslib": "^2.8.1", + "zone.js": "0.15.0" + }, + "devDependencies": { + "@angular/build": "^19.2.5", + "@angular-builders/jest": "^19.0.0", + "@angular/cli": "^19.2.5", + "@angular/compiler-cli": "^19.2.4", + "@testing-library/angular": "17.3.7", + "@testing-library/dom": "^10.0.0", + "@testing-library/jest-dom": "^6.4.8", + "@types/jest": "^29.5.12", + "@types/node": "^12.11.1", + "jest": "^29.7.0", + "ts-node": "~10.8.1", + "typescript": "5.8.2" + } +} diff --git a/examples/angular/unit-testing/src/app/app.component.ts b/examples/angular/unit-testing/src/app/app.component.ts new file mode 100644 index 0000000000..d4c33bf2e4 --- /dev/null +++ b/examples/angular/unit-testing/src/app/app.component.ts @@ -0,0 +1,11 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core' +import { UnitTestingComponent } from './components/unit-testing.component' + +@Component({ + changeDetection: ChangeDetectionStrategy.OnPush, + selector: 'app-root', + standalone: true, + template: ``, + imports: [UnitTestingComponent], +}) +export class AppComponent {} diff --git a/examples/angular/unit-testing/src/app/app.config.ts b/examples/angular/unit-testing/src/app/app.config.ts new file mode 100644 index 0000000000..65a84a0c25 --- /dev/null +++ b/examples/angular/unit-testing/src/app/app.config.ts @@ -0,0 +1,28 @@ +import { + provideHttpClient, + withFetch, + withInterceptors, +} from '@angular/common/http' +import { + QueryClient, + provideTanStackQuery, + withDevtools, +} from '@tanstack/angular-query-experimental' +import { mockInterceptor } from './interceptor/mock-api.interceptor' +import type { ApplicationConfig } from '@angular/core' + +export const appConfig: ApplicationConfig = { + providers: [ + provideHttpClient(withFetch(), withInterceptors([mockInterceptor])), + provideTanStackQuery( + new QueryClient({ + defaultOptions: { + queries: { + gcTime: 1000 * 60 * 60 * 24, // 24 hours + }, + }, + }), + withDevtools(), + ), + ], +} diff --git a/examples/angular/unit-testing/src/app/components/unit-testing.component.ts b/examples/angular/unit-testing/src/app/components/unit-testing.component.ts new file mode 100644 index 0000000000..d471974b0c --- /dev/null +++ b/examples/angular/unit-testing/src/app/components/unit-testing.component.ts @@ -0,0 +1,67 @@ +import { ChangeDetectionStrategy, Component, inject } from '@angular/core' +import { + injectMutation, + injectQuery, +} from '@tanstack/angular-query-experimental' +import { FormsModule } from '@angular/forms' +import { DatePipe } from '@angular/common' +import { TasksService } from '../services/tasks.service' + +@Component({ + changeDetection: ChangeDetectionStrategy.OnPush, + selector: 'unit-testing', + imports: [FormsModule, DatePipe], + template: ` +

+ This example is the same as the optimistic-updates one but where we show how to test your service. +

+ +
+ @if (tasks.isLoading()) { +

Loading...

+ } + +
+ + +
+ + +
    + @for (task of tasks.data(); track task) { +
  • {{ task }}
  • + } +
+ +
+ Updated At: {{ tasks.dataUpdatedAt() | date: 'MMMM d, h:mm:ss a ' }} +
+
+ @if (!tasks.isLoading() && tasks.isFetching()) { +

Fetching in background

+ } +
+ `, +}) +export class UnitTestingComponent { + #tasksService = inject(TasksService) + + tasks = injectQuery(() => this.#tasksService.allTasks()) + addMutation = injectMutation(() => this.#tasksService.addTask()) + + newItem = '' + failMutation = false + + addItem() { + if (!this.newItem) return + + this.addMutation.mutate({ + task: this.newItem, + failMutation: this.failMutation, + }) + this.newItem = '' + } +} diff --git a/examples/angular/unit-testing/src/app/interceptor/mock-api.interceptor.ts b/examples/angular/unit-testing/src/app/interceptor/mock-api.interceptor.ts new file mode 100644 index 0000000000..fb34ac31c7 --- /dev/null +++ b/examples/angular/unit-testing/src/app/interceptor/mock-api.interceptor.ts @@ -0,0 +1,64 @@ +/** + * MockApiInterceptor is used to simulate API responses for `/api/tasks` endpoints. + * It handles the following operations: + * - GET: Fetches all tasks from sessionStorage. + * - POST: Adds a new task to sessionStorage. + * Simulated responses include a delay to mimic network latency. + */ +import { HttpResponse } from '@angular/common/http' +import { delay, of, throwError } from 'rxjs' +import type { + HttpEvent, + HttpHandlerFn, + HttpInterceptorFn, + HttpRequest, +} from '@angular/common/http' +import type { Observable } from 'rxjs' + +let callNumber = 0; + +export const mockInterceptor: HttpInterceptorFn = ( + req: HttpRequest, + next: HttpHandlerFn, +): Observable> => { + const respondWith = (status: number, body: any) => + of(new HttpResponse({ status, body })).pipe(delay(1000)) + if (req.url === '/api/tasks') { + switch (req.method) { + case 'GET': + callNumber++; + if (callNumber === 1) { + return respondWith( + 200, + JSON.parse( + sessionStorage.getItem('unit-testing-tasks') || '[]', + ), + ) } else { + return respondWith( + 200, + JSON.parse( + sessionStorage.getItem('unit-testing-tasks') || '[]', + ).concat([`CallNumber ${callNumber}`]), + ) + } + case 'POST': + const tasks = JSON.parse( + sessionStorage.getItem('unit-testing-tasks') || '[]', + ) + tasks.push(req.body) + sessionStorage.setItem( + 'unit-testing-tasks', + JSON.stringify(tasks), + ) + return respondWith(201, { + status: 'success', + task: req.body, + }) + } + } + if (req.url === '/api/tasks-wrong-url') { + return throwError(() => new Error('error')).pipe(delay(1000)); + } + + return next(req) +} diff --git a/examples/angular/unit-testing/src/app/services/tasks.service.spec.ts b/examples/angular/unit-testing/src/app/services/tasks.service.spec.ts new file mode 100644 index 0000000000..3a1588044c --- /dev/null +++ b/examples/angular/unit-testing/src/app/services/tasks.service.spec.ts @@ -0,0 +1,112 @@ +import { TestBed } from "@angular/core/testing"; +import { provideHttpClient, withFetch, withInterceptors } from "@angular/common/http"; +import { QueryClient, injectMutation, injectQuery, provideTanStackQuery } from "@tanstack/angular-query-experimental"; +import { Injector, inject, runInInjectionContext } from "@angular/core"; +import { waitFor } from '@testing-library/angular'; +import { mockInterceptor } from "../interceptor/mock-api.interceptor"; +import { TasksService } from "./tasks.service"; +import type { CreateQueryResult} from "@tanstack/angular-query-experimental"; + +describe('Test suite: TaskService', () => { + let service!: TasksService; + let injector!: Injector; + let allTasks: CreateQueryResult, Error>; + let addTask: any; + let queryClient: QueryClient; + + // https://angular.dev/guide/http/testing + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [ + provideHttpClient(withFetch(), withInterceptors([mockInterceptor])), + TasksService, + // It is recommended to cancel the retries in the tests + provideTanStackQuery(new QueryClient({ + defaultOptions: { + queries: { + retry: false + } + } + })) + ] + }); + service = TestBed.inject(TasksService); + injector = TestBed.inject(Injector); + + runInInjectionContext(injector, () => { + allTasks = injectQuery(() => service.allTasks()); + addTask = injectMutation(() => service.addTask()); + queryClient = inject(QueryClient); + }); + expect(allTasks.status()).toEqual('pending'); + expect(allTasks.isFetching()).toEqual(true); + expect(allTasks.data()).toEqual(undefined); + }); + + it('should create Task service', () => { + expect(service).toBeTruthy(); + }); + + + it('should manage all tasks, add task, remove task', async () => { + // We await the first result from the query + await waitFor(() => expect(allTasks.isFetching()).toBe(false), {timeout: 10000}); + expect(allTasks.status()).toEqual('success'); + expect(allTasks.data()).toEqual([]); + + // Add a task + const task = 'Task 1'; + const doneMutation = addTask.mutateAsync({ + task, + failMutation: false + }, { + onSuccess: (data: any, variables: any, _context: any) => { + expect(data).toEqual({ + status: 'success', + task: task + }); + }, + onError: () => { + } + }); + + expect(allTasks.data()).toEqual([]); + + await expect(doneMutation).resolves.toEqual({ + status: 'success', + task: 'Task 1' + }); + // With Optimistic update the value is already available even if all tasks has not been refetch yet. + expect(allTasks.data()).toEqual([task]); + + // We await the invalidation of the 'tasks' query cache to have worked + // We test here that the new cache is the one returned by the interceptor + // and no longer the optimistic cache. + await waitFor(() => expect(allTasks.data()).toEqual([task, 'CallNumber 2']), {timeout: 10000}); + + // Reset the mutation + addTask.reset(); + expect(addTask.isPending()).toBe(false); + + // Test a mutation error now + const taskError = 'Task 2'; + const doneMutationError = addTask.mutateAsync({ + task: taskError, + failMutation: true + }, { + onError: (data: any, _variables: any, _context: any) => { + expect(data).toEqual(new Error('error')); + } + }); + // To test the optimistic update we need to wait for the mutation to be in progress + expect(queryClient.getQueryData(['tasks'])).toEqual([task, 'CallNumber 2']); + await waitFor(() => expect(addTask.isIdle()).toBe(false), {timeout: 10000}); + await waitFor(() => expect(addTask.isPending()).toBe(false), {timeout: 10000}); + // Now we have finished the optimistic update but before the error + expect(queryClient.getQueryData(['tasks'])).toEqual([task, 'CallNumber 2', taskError]); + await expect(doneMutationError).rejects.toThrow('error'); + // We test here that the new cache is the one that was rolled back + // and no longer the optimistic cache. + expect(allTasks.data()).toEqual([task, 'CallNumber 2']) + }); +}); \ No newline at end of file diff --git a/examples/angular/unit-testing/src/app/services/tasks.service.ts b/examples/angular/unit-testing/src/app/services/tasks.service.ts new file mode 100644 index 0000000000..70774b061c --- /dev/null +++ b/examples/angular/unit-testing/src/app/services/tasks.service.ts @@ -0,0 +1,83 @@ +import { HttpClient } from '@angular/common/http' +import { Injectable, inject } from '@angular/core' +import { + QueryClient, + mutationOptions, + queryOptions, +} from '@tanstack/angular-query-experimental' + +import { lastValueFrom } from 'rxjs' + +@Injectable({ + providedIn: 'root', +}) +export class TasksService { + #queryClient = inject(QueryClient) // Manages query state and caching + #http = inject(HttpClient) // Handles HTTP requests + + /** + * Fetches all tasks from the API. + * Returns an observable containing an array of task strings. + */ + allTasks = () => + queryOptions({ + queryKey: ['tasks'], + queryFn: () => { + return lastValueFrom(this.#http.get>('/api/tasks')); + } + }) + + /** + * Creates a mutation for adding a task. + * On success, invalidates and refetch the "tasks" query cache to update the task list. + */ + addTask() { + return mutationOptions({ + mutationFn: ({ + task, + failMutation = false, + }: { + task: string + failMutation: boolean + }) => + lastValueFrom( + this.#http.post( + `/api/tasks${failMutation ? '-wrong-url' : ''}`, + task, + ), + ), + mutationKey: ['tasks'], + onSuccess: () => {}, + onMutate: async ({ task }) => { + // Cancel any outgoing refetch + // (so they don't overwrite our optimistic update) + await this.#queryClient.cancelQueries({ queryKey: ['tasks'] }) + + // Snapshot the previous value + const previousTodos = this.#queryClient.getQueryData>([ + 'tasks', + ]) + + // Optimistically update to the new value + if (previousTodos) { + this.#queryClient.setQueryData>( + ['tasks'], + [...previousTodos, task], + ) + } + + return previousTodos + }, + onError: (_err, _variables, context) => { + if (context) { + // Rollback the optimistic update + this.#queryClient.setQueryData>(['tasks'], context) + } + }, + // Always refetch after error or success: + onSettled: () => { + return this.#queryClient.invalidateQueries({ queryKey: ['tasks'] }) + }, + }) + } +} diff --git a/examples/angular/unit-testing/src/favicon.ico b/examples/angular/unit-testing/src/favicon.ico new file mode 100644 index 0000000000..57614f9c96 Binary files /dev/null and b/examples/angular/unit-testing/src/favicon.ico differ diff --git a/examples/angular/unit-testing/src/index.html b/examples/angular/unit-testing/src/index.html new file mode 100644 index 0000000000..8bf5b090a9 --- /dev/null +++ b/examples/angular/unit-testing/src/index.html @@ -0,0 +1,13 @@ + + + + + TanStack Query Unit Testing Example + + + + + + + + diff --git a/examples/angular/unit-testing/src/main.ts b/examples/angular/unit-testing/src/main.ts new file mode 100644 index 0000000000..c3d8f9af99 --- /dev/null +++ b/examples/angular/unit-testing/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/unit-testing/tsconfig.app.json b/examples/angular/unit-testing/tsconfig.app.json new file mode 100644 index 0000000000..5b9d3c5ecb --- /dev/null +++ b/examples/angular/unit-testing/tsconfig.app.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": ["src/main.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/examples/angular/unit-testing/tsconfig.json b/examples/angular/unit-testing/tsconfig.json new file mode 100644 index 0000000000..74c51525f8 --- /dev/null +++ b/examples/angular/unit-testing/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "isolatedModules": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "typeRoots": ["node_modules/@types"], + "useDefineForClassFields": false, + "lib": ["ES2022", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictStandalone": true, + "strictTemplates": true + } +} diff --git a/examples/angular/unit-testing/tsconfig.spec.json b/examples/angular/unit-testing/tsconfig.spec.json new file mode 100644 index 0000000000..82fb577616 --- /dev/null +++ b/examples/angular/unit-testing/tsconfig.spec.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": ["jest"] + }, + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] + } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9146119b77..4b0fe6f736 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -162,10 +162,10 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -205,10 +205,10 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -248,13 +248,13 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@angular/router': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-devtools-experimental': specifier: workspace:* version: link:../../../packages/angular-query-devtools-experimental @@ -297,10 +297,10 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -340,13 +340,13 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/forms': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -386,10 +386,10 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -429,13 +429,13 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@angular/router': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -475,13 +475,13 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@angular/router': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -521,13 +521,13 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/forms': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -567,10 +567,10 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -597,6 +597,128 @@ importers: specifier: 5.8.2 version: 5.8.2 + examples/angular/unit-testing: + dependencies: + '@angular/common': + specifier: ^19.2.4 + version: 19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/compiler': + specifier: ^19.2.4 + version: 19.2.4 + '@angular/core': + specifier: ^19.2.4 + version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/forms': + specifier: ^19.2.4 + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + '@angular/platform-browser': + specifier: ^19.2.4 + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/platform-browser-dynamic': + specifier: ^19.2.4 + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + '@tanstack/angular-query-experimental': + specifier: workspace:* + version: link:../../../packages/angular-query-experimental + rxjs: + specifier: ^7.8.2 + version: 7.8.2 + tslib: + specifier: ^2.8.1 + version: 2.8.1 + zone.js: + specifier: 0.15.0 + version: 0.15.0 + devDependencies: + '@angular/build': + specifier: ^19.2.5 + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@22.14.0)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1) + '@angular/cli': + specifier: ^19.2.5 + version: 19.2.5(@types/node@22.14.0)(chokidar@4.0.3) + '@angular/compiler-cli': + specifier: ^19.2.4 + version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2) + '@testing-library/angular': + specifier: 17.3.7 + version: 17.3.7(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/router@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2))(@testing-library/dom@10.4.0) + '@testing-library/dom': + specifier: ^10.0.0 + version: 10.4.0 + '@testing-library/jest-dom': + specifier: ^6.4.8 + version: 6.6.3 + typescript: + specifier: 5.8.2 + version: 5.8.2 + + examples/angular/unit-testing-old: + dependencies: + '@angular/common': + specifier: ^19.2.4 + version: 19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/compiler': + specifier: ^19.2.4 + version: 19.2.4 + '@angular/core': + specifier: ^19.2.4 + version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/forms': + specifier: ^19.2.4 + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + '@angular/platform-browser': + specifier: ^19.2.4 + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/platform-browser-dynamic': + specifier: ^19.2.4 + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + '@tanstack/angular-query-experimental': + specifier: workspace:* + version: link:../../../packages/angular-query-experimental + rxjs: + specifier: ^7.8.2 + version: 7.8.2 + tslib: + specifier: ^2.8.1 + version: 2.8.1 + zone.js: + specifier: 0.15.0 + version: 0.15.0 + devDependencies: + '@angular-builders/jest': + specifier: ^19.0.0 + version: 19.0.1(vo7myjvlub4ejctczkjlsw7awq) + '@angular-devkit/build-angular': + specifier: ^19.2.4 + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@12.20.55)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(jest-environment-jsdom@29.7.0)(jest@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.2)(vite@6.2.5(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1) + '@angular/build': + specifier: ^19.2.5 + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@12.20.55)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.2)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1) + '@angular/cli': + specifier: ^19.2.5 + version: 19.2.5(@types/node@12.20.55)(chokidar@4.0.3) + '@angular/compiler-cli': + specifier: ^19.2.4 + version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2) + '@hirez_io/observer-spy': + specifier: ^2.2.0 + version: 2.2.0(rxjs@7.8.2)(typescript@5.8.2) + '@types/jest': + specifier: ^29.5.12 + version: 29.5.14 + '@types/node': + specifier: ^12.11.1 + version: 12.20.55 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + ts-node: + specifier: ~10.8.1 + version: 10.8.2(@types/node@12.20.55)(typescript@5.8.2) + typescript: + specifier: 5.8.2 + version: 5.8.2 + examples/react/algolia: dependencies: '@algolia/client-search': @@ -1473,7 +1595,7 @@ importers: version: 5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(solid-js@1.9.5)(terser@5.39.0)(yaml@2.6.1) '@astrojs/tailwind': specifier: ^6.0.2 - version: 6.0.2(astro@5.5.6(@types/node@22.14.0)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1))(tailwindcss@3.4.7) + version: 6.0.2(astro@5.5.6(@types/node@22.14.0)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)) '@astrojs/vercel': specifier: ^8.1.3 version: 8.1.3(@sveltejs/kit@2.14.0(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.14.0)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1))(encoding@0.1.13)(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(rollup@4.39.0)(svelte@5.25.6)(vue@3.4.35(typescript@5.8.2)) @@ -1491,7 +1613,7 @@ importers: version: 1.9.5 tailwindcss: specifier: ^3.4.7 - version: 3.4.7 + version: 3.4.7(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)) typescript: specifier: 5.8.2 version: 5.8.2 @@ -1869,7 +1991,7 @@ importers: version: 4.0.0(picomatch@4.0.2)(svelte@5.25.6)(typescript@5.8.2) tailwindcss: specifier: ^3.4.7 - version: 3.4.7 + version: 3.4.7(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)) typescript: specifier: 5.8.2 version: 5.8.2 @@ -1984,10 +2106,10 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../packages/angular-query-experimental @@ -2003,7 +2125,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@22.14.0)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.2)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@22.14.0)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.2)))(jest-environment-jsdom@29.7.0)(jest@29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.2)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 version: 19.2.5(@types/node@22.14.0)(chokidar@4.0.3) @@ -2240,7 +2362,7 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../angular-query-experimental @@ -2271,10 +2393,10 @@ importers: version: 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + version: 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': specifier: ^19.2.4 - version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + version: 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) eslint-plugin-jsdoc: specifier: ^50.5.0 version: 50.5.0(eslint@9.15.0(jiti@2.4.2)) @@ -2610,7 +2732,7 @@ importers: version: 5.2.6(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.0)(typescript@5.8.2))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^2.46.0 - version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.25.6) + version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.25.6)(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)) svelte: specifier: ^5.0.0 version: 5.25.6 @@ -2638,7 +2760,7 @@ importers: version: link:../svelte-query eslint-plugin-svelte: specifier: ^2.46.0 - version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.25.6) + version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.25.6)(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)) svelte: specifier: ^5.0.0 version: 5.25.6 @@ -2666,7 +2788,7 @@ importers: version: 5.2.6(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.0)(typescript@5.8.2))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^2.46.0 - version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.25.6) + version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.25.6)(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)) svelte: specifier: ^5.0.0 version: 5.25.6 @@ -2776,6 +2898,20 @@ packages: '@andrewbranch/untar.js@1.0.3': resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} + '@angular-builders/common@3.0.1': + resolution: {integrity: sha512-AIIqWtlr3sc2+CTEOqbDsrpVvkT6ijfYzvzPk1HLFrcP9Y2tYLXVFc+gGThlE+e1Om0pKminXcINEqm3J/yY5g==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + + '@angular-builders/jest@19.0.1': + resolution: {integrity: sha512-mi4HMQkyb1Z+pPRIKt70Uk/EBoDUirPqhv3xlz1/WpPqpxXz8y+Y3ffutot4JJDmzJw2p4h3x2hh6D3Kbocraw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular-devkit/build-angular': ^19.0.0 + '@angular/compiler-cli': ^19.0.0 + '@angular/core': ^19.0.0 + '@angular/platform-browser-dynamic': ^19.0.0 + jest: '>=29' + '@angular-devkit/architect@0.1902.5': resolution: {integrity: sha512-GdcTqwCZT0CTagUoTmq799hpnbQeICx53+eHsfs+lyKjkojk1ahC6ZOi4nNLDl/J2DIMFPHIG1ZgHPuhjKItAw==} 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'} @@ -2844,6 +2980,12 @@ packages: resolution: {integrity: sha512-gfWnbwDOuKyRZK0biVyiNIhV6kmI1VmHg1LLbJm3QK6jDL0JgXD0NudgL8ILl5Ksd1sJOwQAuzTLM5iPfB3hDA==} 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.2.4': + resolution: {integrity: sha512-aoVgPGaB/M9OLGt9rMMYd8V9VNzVEFQHKpyuEl4FDBoeuIaFJcXFTfwY3+L5Ew6wcIErKH67rRYJsKv8r5Ou8w==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/core': 19.2.4 + '@angular/build@19.2.5': resolution: {integrity: sha512-WtgdBHxFVMtbLzEYf1dYJqtld282aXxEbefsRi3RZWnLya8qO33bKMxpcd0V2iLIuIc1v/sUXPIzbWLO10mvTg==} 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'} @@ -3753,6 +3895,9 @@ packages: resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@bundled-es-modules/cookie@2.0.1': resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} @@ -4003,6 +4148,10 @@ packages: resolution: {integrity: sha512-LMvReIndW1ckvemElfDgTt282fb2C3C/ZXfsm0pJsTV5ZmtdelCHwzmgSBmY5fDr7D66XDp8EurotSE0K6BTvw==} engines: {node: '>=18.0'} + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + '@deno/shim-deno-test@0.5.0': resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==} @@ -4864,6 +5013,12 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@hirez_io/observer-spy@2.2.0': + resolution: {integrity: sha512-G9nv87vjRILgB/X1AtKBv1DZX7yXSYAOCXon/f+QULKoXVhVehYUF5Lv0SQ97ebf1sA48Z2CyQ9h2v4Pz6DgaQ==} + peerDependencies: + rxjs: '>=6.0.0' + typescript: '>=2.8.1' + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -5161,6 +5316,19 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + '@jest/create-cache-key-function@29.7.0': resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5185,10 +5353,31 @@ packages: resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@29.7.0': resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5222,6 +5411,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@js-temporal/polyfill@0.4.4': resolution: {integrity: sha512-2X6bvghJ/JAoZO52lbgyAPFj8uCflhTo2g7nkFzEQdXd/D8rEeD4HtmTEpmtGCva260fcd66YNXBOYdnmHqSOg==} engines: {node: '>=12'} @@ -6644,6 +6836,16 @@ packages: resolution: {integrity: sha512-l4RonnJM8gOLeyzThSEd/ZTDhrMGQGm9ZdXtmoLPF17L6Z6neJkNmfYSvVXPPUpL9aQOVncAR0OWDgZgsxIjFw==} engines: {node: '>=12'} + '@testing-library/angular@17.3.7': + resolution: {integrity: sha512-99Wf/06CCyBP3rmIu+WacUTGZMDKTQR12phe1lUMrknwxHLFUf5jn230L/mW4XIZ+ThDJ/4D6OzhVskbOYDqig==} + peerDependencies: + '@angular/animations': '>= 17.0.0' + '@angular/common': '>= 17.0.0' + '@angular/core': '>= 17.0.0' + '@angular/platform-browser': '>= 17.0.0' + '@angular/router': '>= 17.0.0' + '@testing-library/dom': ^10.0.0 + '@testing-library/dom@10.4.0': resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} @@ -6688,6 +6890,22 @@ packages: vitest: optional: true + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@tsconfig/svelte@5.0.4': resolution: {integrity: sha512-BV9NplVgLmSi4mwKzD8BD/NQ8erOY/nUE/GpgWe2ckx+wIQF5RyRirn/QsSSCPeulVpc3RA/iJt6DpfTIZps0Q==} @@ -6795,9 +7013,15 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + '@types/jscodeshift@0.12.0': resolution: {integrity: sha512-Jr2fQbEoDmjwEa92TreR/mX2t9iAaY/l5P/GKezvK4BodXahex60PDLXaQR0vAgP0KfCzc1CivHusQB9NhzX8w==} + '@types/jsdom@20.0.1': + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -6819,6 +7043,9 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + '@types/node@22.14.0': resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==} @@ -7357,6 +7584,10 @@ packages: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -7373,6 +7604,9 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -7392,6 +7626,10 @@ packages: peerDependencies: acorn: '>=8.9.0' + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + acorn@6.4.2: resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} engines: {node: '>=0.4.0'} @@ -7406,6 +7644,10 @@ packages: resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} engines: {node: '>=8.9'} + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} @@ -7569,6 +7811,9 @@ packages: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -7976,6 +8221,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} @@ -8205,6 +8454,9 @@ packages: citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} engines: {node: '>=0.10.0'} @@ -8295,6 +8547,13 @@ packages: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} engines: {node: '>=0.10.0'} + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + collection-visit@1.0.0: resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} engines: {node: '>=0.10.0'} @@ -8562,6 +8821,14 @@ packages: create-hmac@1.1.7: resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + croner@9.0.0: resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==} engines: {node: '>=18.0'} @@ -8663,6 +8930,16 @@ packages: engines: {node: '>=4'} hasBin: true + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + cssstyle@4.1.0: resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} engines: {node: '>=18'} @@ -8676,6 +8953,10 @@ packages: cyclist@1.0.2: resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} + data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} @@ -8882,6 +9163,10 @@ packages: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} @@ -8902,6 +9187,10 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -8953,6 +9242,11 @@ packages: domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + domhandler@4.3.1: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} engines: {node: '>= 4'} @@ -9005,12 +9299,21 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + electron-to-chromium@1.5.84: resolution: {integrity: sha512-I+DQ8xgafao9Ha6y0qjHHvpZ9OfyA1qKlkHkjywxzniORU2awxyz7f/iVJcULmrF2yrM3nHQf+iDjJtbbexd/g==} elliptic@6.5.6: resolution: {integrity: sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==} + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + emmet@2.4.7: resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} @@ -9203,6 +9506,11 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + eslint-compat-utils@0.5.1: resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} engines: {node: '>=12'} @@ -9449,6 +9757,10 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + expand-brackets@2.1.4: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} @@ -9637,6 +9949,9 @@ packages: file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + fill-range@4.0.0: resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} engines: {node: '>=0.10.0'} @@ -10191,6 +10506,10 @@ packages: hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -10261,6 +10580,10 @@ packages: http-parser-js@0.5.8: resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -10289,6 +10612,10 @@ packages: https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -10569,6 +10896,10 @@ packages: resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} engines: {node: '>=18'} + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + is-git-repository@1.1.1: resolution: {integrity: sha512-hxLpJytJnIZ5Og5QsxSkzmb8Qx8rGau9bio1JN/QtXcGEFuSsQYau0IiqlsCwftsfVYjF1mOq6uLdmwNSspgpA==} @@ -10779,6 +11110,10 @@ packages: 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-lib-source-maps@5.0.6: resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} @@ -10790,10 +11125,62 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + jest-environment-node@29.7.0: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10806,6 +11193,10 @@ packages: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10818,10 +11209,49 @@ packages: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-preset-angular@14.5.4: + resolution: {integrity: sha512-vbil9qTrZljzVJNsDIxEhWVb4r6BQumXEgIHCAVkHJjpF1fYkIB4bczPAe58lBZH2gKeRHBSj8/IoGpGBI1qiQ==} + engines: {node: ^14.15.0 || >=16.10.0} + peerDependencies: + '@angular/compiler-cli': '>=15.0.0 <20.0.0' + '@angular/core': '>=15.0.0 <20.0.0' + '@angular/platform-browser-dynamic': '>=15.0.0 <20.0.0' + jest: ^29.0.0 + jsdom: '>=20.0.0' + typescript: '>=4.8' + peerDependenciesMeta: + jsdom: + optional: true + jest-regex-util@29.6.3: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-snapshot@29.7.0: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10834,6 +11264,10 @@ packages: resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -10842,6 +11276,16 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + jimp-compact@0.16.1: resolution: {integrity: sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==} @@ -10909,6 +11353,15 @@ packages: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} + jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + jsdom@25.0.1: resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} engines: {node: '>=18'} @@ -11325,6 +11778,9 @@ packages: lodash.isarguments@3.1.0: resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -11403,6 +11859,9 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + make-fetch-happen@13.0.1: resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -12983,6 +13442,9 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + qrcode-terminal@0.11.0: resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==} hasBin: true @@ -13968,6 +14430,9 @@ packages: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -14117,6 +14582,10 @@ packages: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + string-ts@2.2.0: resolution: {integrity: sha512-VTP0LLZo4Jp9Gz5IiDVMS9WyLx/3IeYh0PXUn0NdPqusUFNgkHPWiEdbB9TU2Iv3myUskraD5WtYEdHUrQEIlQ==} @@ -14172,6 +14641,10 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + strip-eof@1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} @@ -14541,6 +15014,10 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + tr46@5.0.0: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} @@ -14578,6 +15055,44 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-jest@29.3.1: + resolution: {integrity: sha512-FT2PIRtZABwl6+ZCry8IY7JZ3xMuppsEV9qFVHOVe8jDzggwUZ9TsM4chyJxL9yi6LvkqcZYU3LmapEE454zBQ==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/transform': ^29.0.0 + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/transform': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + + ts-node@10.8.2: + resolution: {integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + ts-pattern@5.6.0: resolution: {integrity: sha512-SL8u60X5+LoEy9tmQHWCdPc2hhb2pKI6I1tU5Jue3v8+iRqZdcT3mWPwKKJy1fMfky6uha82c8ByHAE8PMhKHw==} @@ -14669,6 +15184,10 @@ packages: resolution: {integrity: sha512-3Ta7CyV6daqpwuGJMJKABaUChZZejpzysZkQg1//bLRg2wKQ4duwsg3MMIsHuElq58iDqizg4DBUmK8H8wExJg==} engines: {node: '>=16'} + type-fest@4.39.1: + resolution: {integrity: sha512-uW9qzd66uyHYxwyVBYiwS4Oi0qZyUqwjU+Oevr6ZogYiXt99EOYtwvzMSLw1c3lYo2HzJsep/NB23iEVEgjG/w==} + engines: {node: '>=16'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -15087,6 +15606,13 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + v8flags@4.0.1: resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} engines: {node: '>= 10.13.0'} @@ -15479,6 +16005,10 @@ packages: typescript: optional: true + w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + w3c-xmlserializer@5.0.0: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} @@ -15647,6 +16177,10 @@ packages: resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} engines: {node: '>=0.8.0'} + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} @@ -15654,6 +16188,10 @@ packages: whatwg-fetch@3.6.20: resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} @@ -15662,6 +16200,10 @@ packages: resolution: {integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==} engines: {node: '>=10'} + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + whatwg-url@14.0.0: resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} engines: {node: '>=18'} @@ -15888,6 +16430,10 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -15982,6 +16528,46 @@ snapshots: '@andrewbranch/untar.js@1.0.3': {} + '@angular-builders/common@3.0.1(@types/node@12.20.55)(chokidar@4.0.3)(typescript@5.8.2)': + dependencies: + '@angular-devkit/core': 19.2.5(chokidar@4.0.3) + ts-node: 10.8.2(@types/node@12.20.55)(typescript@5.8.2) + tsconfig-paths: 4.2.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - chokidar + - typescript + + '@angular-builders/jest@19.0.1(vo7myjvlub4ejctczkjlsw7awq)': + dependencies: + '@angular-builders/common': 3.0.1(@types/node@12.20.55)(chokidar@4.0.3)(typescript@5.8.2) + '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) + '@angular-devkit/build-angular': 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@12.20.55)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(jest-environment-jsdom@29.7.0)(jest@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.2)(vite@6.2.5(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1) + '@angular-devkit/core': 19.2.5(chokidar@4.0.3) + '@angular/compiler-cli': 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2) + '@angular/core': 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser-dynamic': 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + jest: 29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + jest-preset-angular: 14.5.4(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser-dynamic@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))))(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)))(jsdom@25.0.1)(typescript@5.8.2) + lodash: 4.17.21 + transitivePeerDependencies: + - '@babel/core' + - '@jest/transform' + - '@jest/types' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - babel-jest + - bufferutil + - canvas + - chokidar + - jsdom + - supports-color + - typescript + - utf-8-validate + '@angular-devkit/architect@0.1902.5(chokidar@4.0.3)': dependencies: '@angular-devkit/core': 19.2.5(chokidar@4.0.3) @@ -15989,11 +16575,98 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@22.14.0)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.2)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1)': + '@angular-devkit/build-angular@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@12.20.55)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(jest-environment-jsdom@29.7.0)(jest@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.2)(vite@6.2.5(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) + '@angular-devkit/build-webpack': 0.1902.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.2)))(webpack@5.98.0(esbuild@0.25.2)) + '@angular-devkit/core': 19.2.5(chokidar@4.0.3) + '@angular/build': 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@12.20.55)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.2)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1) + '@angular/compiler-cli': 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2) + '@babel/core': 7.26.10 + '@babel/generator': 7.26.10 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.10) + '@babel/preset-env': 7.26.9(@babel/core@7.26.10) + '@babel/runtime': 7.26.10 + '@discoveryjs/json-ext': 0.6.3 + '@ngtools/webpack': 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.5(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1)) + ansi-colors: 4.1.3 + autoprefixer: 10.4.20(postcss@8.5.2) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.2)) + browserslist: 4.24.4 + copy-webpack-plugin: 12.0.2(webpack@5.98.0(esbuild@0.25.2)) + css-loader: 7.1.2(webpack@5.98.0(esbuild@0.25.2)) + esbuild-wasm: 0.25.1 + 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.2 + less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(esbuild@0.25.2)) + license-webpack-plugin: 4.0.2(webpack@5.98.0(esbuild@0.25.2)) + loader-utils: 3.3.1 + mini-css-extract-plugin: 2.9.2(webpack@5.98.0(esbuild@0.25.2)) + open: 10.1.0 + ora: 5.4.1 + picomatch: 4.0.2 + piscina: 4.8.0 + postcss: 8.5.2 + postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)) + resolve-url-loader: 5.0.0 + rxjs: 7.8.1 + sass: 1.85.0 + sass-loader: 16.0.5(sass@1.85.0)(webpack@5.98.0(esbuild@0.25.2)) + semver: 7.7.1 + source-map-loader: 5.0.0(webpack@5.98.0(esbuild@0.25.2)) + source-map-support: 0.5.21 + terser: 5.39.0 + tree-kill: 1.2.2 + tslib: 2.8.1 + typescript: 5.8.2 + webpack: 5.98.0(esbuild@0.25.1) + webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.2)) + webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.2)) + webpack-merge: 6.0.1 + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.2)))(webpack@5.98.0(esbuild@0.25.2)) + optionalDependencies: + esbuild: 0.25.1 + jest: 29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + jest-environment-jsdom: 29.7.0 + tailwindcss: 4.0.14 + transitivePeerDependencies: + - '@angular/compiler' + - '@rspack/core' + - '@swc/core' + - '@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 + + '@angular-devkit/build-angular@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@22.14.0)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.2)))(jest-environment-jsdom@29.7.0)(jest@29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.2)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.1902.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.1)))(webpack@5.98.0(esbuild@0.25.1)) + '@angular-devkit/build-webpack': 0.1902.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.2)))(webpack@5.98.0(esbuild@0.25.2)) '@angular-devkit/core': 19.2.5(chokidar@4.0.3) '@angular/build': 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@22.14.0)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.2)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1) '@angular/compiler-cli': 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2) @@ -16007,14 +16680,14 @@ snapshots: '@babel/preset-env': 7.26.9(@babel/core@7.26.10) '@babel/runtime': 7.26.10 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.1)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1)) + '@ngtools/webpack': 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.5.2) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.1)) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.2)) browserslist: 4.24.4 - copy-webpack-plugin: 12.0.2(webpack@5.98.0(esbuild@0.25.1)) - css-loader: 7.1.2(webpack@5.98.0(esbuild@0.25.1)) + copy-webpack-plugin: 12.0.2(webpack@5.98.0(esbuild@0.25.2)) + css-loader: 7.1.2(webpack@5.98.0(esbuild@0.25.2)) esbuild-wasm: 0.25.1 fast-glob: 3.3.3 http-proxy-middleware: 3.0.3 @@ -16022,34 +16695,36 @@ snapshots: jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.2.2 - less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(esbuild@0.25.1)) - license-webpack-plugin: 4.0.2(webpack@5.98.0(esbuild@0.25.1)) + less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(esbuild@0.25.2)) + license-webpack-plugin: 4.0.2(webpack@5.98.0(esbuild@0.25.2)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.98.0(esbuild@0.25.1)) + mini-css-extract-plugin: 2.9.2(webpack@5.98.0(esbuild@0.25.2)) open: 10.1.0 ora: 5.4.1 picomatch: 4.0.2 piscina: 4.8.0 postcss: 8.5.2 - postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.1)) + postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)) resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.85.0 - sass-loader: 16.0.5(sass@1.85.0)(webpack@5.98.0(esbuild@0.25.1)) + sass-loader: 16.0.5(sass@1.85.0)(webpack@5.98.0(esbuild@0.25.2)) semver: 7.7.1 - source-map-loader: 5.0.0(webpack@5.98.0(esbuild@0.25.1)) + source-map-loader: 5.0.0(webpack@5.98.0(esbuild@0.25.2)) source-map-support: 0.5.21 terser: 5.39.0 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.8.2 webpack: 5.98.0(esbuild@0.25.1) - webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.1)) - webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.1)) + webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.2)) + webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.2)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(webpack@5.98.0(esbuild@0.25.1)) + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.2)))(webpack@5.98.0(esbuild@0.25.2)) optionalDependencies: esbuild: 0.25.1 + jest: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) + jest-environment-jsdom: 29.7.0 tailwindcss: 4.0.14 transitivePeerDependencies: - '@angular/compiler' @@ -16074,12 +16749,12 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.1902.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.1)))(webpack@5.98.0(esbuild@0.25.1))': + '@angular-devkit/build-webpack@0.1902.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.2)))(webpack@5.98.0(esbuild@0.25.2))': dependencies: '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) rxjs: 7.8.1 webpack: 5.98.0(esbuild@0.25.1) - webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.1)) + webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.2)) transitivePeerDependencies: - chokidar @@ -16104,6 +16779,60 @@ snapshots: transitivePeerDependencies: - chokidar + '@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))': + dependencies: + '@angular/core': 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) + tslib: 2.8.1 + + '@angular/build@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@12.20.55)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.2)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) + '@angular/compiler': 19.2.4 + '@angular/compiler-cli': 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2) + '@babel/core': 7.26.10 + '@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.10) + '@inquirer/confirm': 5.1.6(@types/node@12.20.55) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.3(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1)) + beasties: 0.2.0 + browserslist: 4.24.4 + esbuild: 0.25.1 + 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.1 + parse5-html-rewriting-stream: 7.0.0 + picomatch: 4.0.2 + piscina: 4.8.0 + rollup: 4.34.8 + sass: 1.85.0 + semver: 7.7.1 + source-map-support: 0.5.21 + typescript: 5.8.2 + vite: 6.2.3(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) + watchpack: 2.4.2 + optionalDependencies: + less: 4.2.2 + lmdb: 3.2.6 + postcss: 8.5.2 + tailwindcss: 4.0.14 + transitivePeerDependencies: + - '@types/node' + - chokidar + - jiti + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + '@angular/build@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/compiler@19.2.4)(@types/node@22.14.0)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.2)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1)': dependencies: '@ampproject/remapping': 2.3.0 @@ -16202,6 +16931,31 @@ snapshots: - tsx - yaml + '@angular/cli@19.2.5(@types/node@12.20.55)(chokidar@4.0.3)': + dependencies: + '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) + '@angular-devkit/core': 19.2.5(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.5(chokidar@4.0.3) + '@inquirer/prompts': 7.3.2(@types/node@12.20.55) + '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.3.2(@types/node@12.20.55)) + '@schematics/angular': 19.2.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.2 + npm-pick-manifest: 10.0.0 + pacote: 20.0.0 + resolve: 1.22.10 + semver: 7.7.1 + symbol-observable: 4.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - bluebird + - chokidar + - supports-color + '@angular/cli@19.2.5(@types/node@22.14.0)(chokidar@4.0.3)': dependencies: '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) @@ -16258,33 +17012,35 @@ snapshots: tslib: 2.8.1 zone.js: 0.15.0 - '@angular/forms@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': + '@angular/forms@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': dependencies: '@angular/common': 19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/core': 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/platform-browser': 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/platform-browser-dynamic@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))': + '@angular/platform-browser-dynamic@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))': dependencies: '@angular/common': 19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': 19.2.4 '@angular/core': 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/platform-browser': 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) tslib: 2.8.1 - '@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))': + '@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))': dependencies: '@angular/common': 19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/core': 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 + optionalDependencies: + '@angular/animations': 19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/router@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': + '@angular/router@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': dependencies: '@angular/common': 19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/core': 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/platform-browser': 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) rxjs: 7.8.2 tslib: 2.8.1 @@ -16406,13 +17162,13 @@ snapshots: - tsx - yaml - '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.14.0)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1))(tailwindcss@3.4.7)': + '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.14.0)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)))(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2))': dependencies: astro: 5.5.6(@types/node@22.14.0)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.2)(yaml@2.6.1) autoprefixer: 10.4.21(postcss@8.5.3) postcss: 8.5.3 - postcss-load-config: 4.0.2(postcss@8.5.3) - tailwindcss: 3.4.7 + postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)) + tailwindcss: 3.4.7(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)) transitivePeerDependencies: - ts-node @@ -17398,6 +18154,8 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@bcoe/v8-coverage@0.2.3': {} + '@bundled-es-modules/cookie@2.0.1': dependencies: cookie: 0.7.2 @@ -17646,6 +18404,10 @@ snapshots: '@cspell/url@8.17.1': {} + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + '@deno/shim-deno-test@0.5.0': {} '@deno/shim-deno@0.19.2': @@ -18565,6 +19327,11 @@ snapshots: dependencies: graphql: 16.9.0 + '@hirez_io/observer-spy@2.2.0(rxjs@7.8.2)(typescript@5.8.2)': + dependencies: + rxjs: 7.8.2 + typescript: 5.8.2 + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -18663,6 +19430,16 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true + '@inquirer/checkbox@4.1.4(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@12.20.55) + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/checkbox@4.1.4(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18673,6 +19450,13 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/confirm@5.1.6(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/type': 3.0.5(@types/node@12.20.55) + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/confirm@5.1.6(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18680,6 +19464,13 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/confirm@5.1.8(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/type': 3.0.5(@types/node@12.20.55) + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/confirm@5.1.8(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18687,6 +19478,19 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/core@10.1.9(@types/node@12.20.55)': + dependencies: + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@12.20.55) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/core@10.1.9(@types/node@22.14.0)': dependencies: '@inquirer/figures': 1.0.11 @@ -18700,6 +19504,14 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/editor@4.2.9(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/type': 3.0.5(@types/node@12.20.55) + external-editor: 3.1.0 + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/editor@4.2.9(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18708,6 +19520,14 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/expand@4.0.11(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/type': 3.0.5(@types/node@12.20.55) + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/expand@4.0.11(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18718,6 +19538,13 @@ snapshots: '@inquirer/figures@1.0.11': {} + '@inquirer/input@4.1.8(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/type': 3.0.5(@types/node@12.20.55) + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/input@4.1.8(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18725,6 +19552,13 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/number@3.0.11(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/type': 3.0.5(@types/node@12.20.55) + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/number@3.0.11(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18732,6 +19566,14 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/password@4.0.11(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/type': 3.0.5(@types/node@12.20.55) + ansi-escapes: 4.3.2 + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/password@4.0.11(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18740,6 +19582,21 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/prompts@7.3.2(@types/node@12.20.55)': + dependencies: + '@inquirer/checkbox': 4.1.4(@types/node@12.20.55) + '@inquirer/confirm': 5.1.8(@types/node@12.20.55) + '@inquirer/editor': 4.2.9(@types/node@12.20.55) + '@inquirer/expand': 4.0.11(@types/node@12.20.55) + '@inquirer/input': 4.1.8(@types/node@12.20.55) + '@inquirer/number': 3.0.11(@types/node@12.20.55) + '@inquirer/password': 4.0.11(@types/node@12.20.55) + '@inquirer/rawlist': 4.0.11(@types/node@12.20.55) + '@inquirer/search': 3.0.11(@types/node@12.20.55) + '@inquirer/select': 4.1.0(@types/node@12.20.55) + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/prompts@7.3.2(@types/node@22.14.0)': dependencies: '@inquirer/checkbox': 4.1.4(@types/node@22.14.0) @@ -18755,6 +19612,14 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/rawlist@4.0.11(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/type': 3.0.5(@types/node@12.20.55) + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/rawlist@4.0.11(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18763,6 +19628,15 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/search@3.0.11(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@12.20.55) + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/search@3.0.11(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18772,6 +19646,16 @@ snapshots: optionalDependencies: '@types/node': 22.14.0 + '@inquirer/select@4.1.0(@types/node@12.20.55)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@12.20.55) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@12.20.55) + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/select@4.1.0(@types/node@22.14.0)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.14.0) @@ -18786,6 +19670,10 @@ snapshots: dependencies: mute-stream: 1.0.0 + '@inquirer/type@3.0.5(@types/node@12.20.55)': + optionalDependencies: + '@types/node': 12.20.55 + '@inquirer/type@3.0.5(@types/node@22.14.0)': optionalDependencies: '@types/node': 22.14.0 @@ -18825,6 +19713,50 @@ snapshots: '@istanbuljs/schema@0.1.3': {} + '@jest/console@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@types/node': 12.20.55 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2))': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 12.20.55 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + '@jest/create-cache-key-function@29.7.0': dependencies: '@jest/types': 29.6.3 @@ -18847,27 +19779,76 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/fake-timers@29.7.0': + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 22.14.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/globals@29.7.0': + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/reporters@29.7.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 12.20.55 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/source-map@29.6.3': dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.14.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 + '@jridgewell/trace-mapping': 0.3.25 + callsites: 3.1.0 + graceful-fs: 4.2.11 - '@jest/globals@29.7.0': + '@jest/test-result@29.7.0': dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 + '@jest/console': 29.7.0 '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 - '@jest/schemas@29.6.3': + '@jest/test-sequencer@29.7.0': dependencies: - '@sinclair/typebox': 0.27.8 + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 '@jest/transform@29.7.0': dependencies: @@ -18903,7 +19884,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -18929,6 +19910,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@js-temporal/polyfill@0.4.4': dependencies: jsbi: 4.3.0 @@ -18982,6 +19968,11 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} + '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@12.20.55))': + dependencies: + '@inquirer/prompts': 7.3.2(@types/node@12.20.55) + '@inquirer/type': 1.5.5 + '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@22.14.0))': dependencies: '@inquirer/prompts': 7.3.2(@types/node@22.14.0) @@ -19314,7 +20305,7 @@ snapshots: '@next/swc-win32-x64-msvc@15.1.2': optional: true - '@ngtools/webpack@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.1))': + '@ngtools/webpack@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2))': dependencies: '@angular/compiler-cli': 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2) typescript: 5.8.2 @@ -20521,6 +21512,16 @@ snapshots: - tsx - yaml + '@testing-library/angular@17.3.7(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/router@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2))(@testing-library/dom@10.4.0)': + dependencies: + '@angular/animations': 19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/common': 19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/core': 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser': 19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/router': 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + '@testing-library/dom': 10.4.0 + tslib: 2.8.1 + '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.26.2 @@ -20578,6 +21579,16 @@ snapshots: vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.0)(typescript@5.8.2))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + '@tootallnate/once@2.0.0': {} + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + '@tsconfig/svelte@5.0.4': {} '@tufjs/canonical-json@2.0.0': {} @@ -20619,22 +21630,22 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/braces@3.0.4': {} '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.5 - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/connect@3.4.38': dependencies: - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/conventional-commits-parser@5.0.0': dependencies: @@ -20664,7 +21675,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -20678,7 +21689,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/hammerjs@2.0.45': {} @@ -20694,7 +21705,7 @@ snapshots: '@types/http-proxy@1.17.15': dependencies: - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/istanbul-lib-coverage@2.0.6': {} @@ -20706,11 +21717,22 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 + '@types/jest@29.5.14': + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + '@types/jscodeshift@0.12.0': dependencies: ast-types: 0.14.2 recast: 0.20.5 + '@types/jsdom@20.0.1': + dependencies: + '@types/node': 12.20.55 + '@types/tough-cookie': 4.0.5 + parse5: 7.2.1 + '@types/json-schema@7.0.15': {} '@types/mdast@4.0.4': @@ -20731,7 +21753,9 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.14.0 + '@types/node': 12.20.55 + + '@types/node@12.20.55': {} '@types/node@22.14.0': dependencies: @@ -20766,7 +21790,7 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/serve-index@1.9.4': dependencies: @@ -20775,12 +21799,12 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/send': 0.17.4 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/sort-by@1.2.3': {} @@ -20817,7 +21841,7 @@ snapshots: '@types/ws@8.5.13': dependencies: - '@types/node': 22.14.0 + '@types/node': 12.20.55 '@types/yargs-parser@21.0.3': {} @@ -21014,13 +22038,21 @@ snapshots: recast: 0.23.9 vinxi: 0.5.3(@types/node@22.14.0)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.2.3(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))': + dependencies: + vite: 6.2.3(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.2.3(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: vite: 6.2.3(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) - '@vitejs/plugin-basic-ssl@1.2.0(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))': + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.2.5(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))': + dependencies: + vite: 6.2.5(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) + + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: - vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: @@ -21487,6 +22519,8 @@ snapshots: jsonparse: 1.3.1 through: 2.3.8 + abab@2.0.6: {} + abbrev@2.0.0: {} abbrev@3.0.0: {} @@ -21500,6 +22534,11 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 + acorn-globals@7.0.1: + dependencies: + acorn: 8.14.1 + acorn-walk: 8.3.4 + acorn-import-attributes@1.9.5(acorn@8.14.1): dependencies: acorn: 8.14.1 @@ -21516,6 +22555,10 @@ snapshots: dependencies: acorn: 8.14.1 + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.1 + acorn@6.4.2: {} acorn@8.14.1: {} @@ -21525,6 +22568,12 @@ snapshots: loader-utils: 2.0.4 regex-parser: 2.3.0 + agent-base@6.0.2: + dependencies: + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + agent-base@7.1.3: {} aggregate-error@3.1.0: @@ -21684,6 +22733,8 @@ snapshots: are-docs-informative@0.0.2: {} + arg@4.1.3: {} + arg@5.0.2: {} argparse@1.0.10: @@ -21960,7 +23011,7 @@ snapshots: schema-utils: 2.7.1 webpack: 4.44.2(webpack-cli@4.10.0) - babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.1)): + babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.2)): dependencies: '@babel/core': 7.26.10 find-cache-dir: 4.0.0 @@ -22312,6 +23363,10 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) + bs-logger@0.2.6: + dependencies: + fast-json-stable-stringify: 2.1.0 + bser@2.1.1: dependencies: node-int64: 0.4.0 @@ -22607,6 +23662,8 @@ snapshots: dependencies: consola: 3.4.2 + cjs-module-lexer@1.4.3: {} + class-utils@0.3.6: dependencies: arr-union: 3.1.0 @@ -22696,6 +23753,10 @@ snapshots: cluster-key-slot@1.1.2: {} + co@4.6.0: {} + + collect-v8-coverage@1.0.2: {} + collection-visit@1.0.0: dependencies: map-visit: 1.0.0 @@ -22891,7 +23952,7 @@ snapshots: copy-descriptor@0.1.1: {} - copy-webpack-plugin@12.0.2(webpack@5.98.0(esbuild@0.25.1)): + copy-webpack-plugin@12.0.2(webpack@5.98.0(esbuild@0.25.2)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -22982,6 +24043,39 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 + create-jest@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + create-jest@29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + optional: true + + create-require@1.1.1: {} + croner@9.0.0: {} cross-env@7.0.3: @@ -23101,7 +24195,7 @@ snapshots: dependencies: hyphenate-style-name: 1.1.0 - css-loader@7.1.2(webpack@5.98.0(esbuild@0.25.1)): + css-loader@7.1.2(webpack@5.98.0(esbuild@0.25.2)): dependencies: icss-utils: 5.1.0(postcss@8.5.3) postcss: 8.5.3 @@ -23141,6 +24235,14 @@ snapshots: cssesc@3.0.0: {} + cssom@0.3.8: {} + + cssom@0.5.0: {} + + cssstyle@2.3.0: + dependencies: + cssom: 0.3.8 + cssstyle@4.1.0: dependencies: rrweb-cssom: 0.7.1 @@ -23155,6 +24257,12 @@ snapshots: cyclist@1.0.2: {} + data-urls@3.0.2: + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 @@ -23308,6 +24416,8 @@ snapshots: detect-libc@2.0.3: {} + detect-newline@3.1.0: {} + detect-node@2.1.0: {} deterministic-object-hash@2.0.2: @@ -23324,6 +24434,8 @@ snapshots: diff-sequences@29.6.3: {} + diff@4.0.2: {} + diff@5.2.0: {} diff@7.0.0: {} @@ -23377,6 +24489,10 @@ snapshots: domelementtype@2.3.0: {} + domexception@4.0.0: + dependencies: + webidl-conversions: 7.0.0 + domhandler@4.3.1: dependencies: domelementtype: 2.3.0 @@ -23437,6 +24553,10 @@ snapshots: ee-first@1.1.1: {} + ejs@3.1.10: + dependencies: + jake: 10.9.2 + electron-to-chromium@1.5.84: {} elliptic@6.5.6: @@ -23449,6 +24569,8 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + emittery@0.13.1: {} + emmet@2.4.7: dependencies: '@emmetio/abbreviation': 2.3.3 @@ -23750,6 +24872,14 @@ snapshots: escape-string-regexp@5.0.0: {} + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + eslint-compat-utils@0.5.1(eslint@9.15.0(jiti@2.4.2)): dependencies: eslint: 9.15.0(jiti@2.4.2) @@ -23957,7 +25087,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-svelte@2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.25.6): + eslint-plugin-svelte@2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.25.6)(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) '@jridgewell/sourcemap-codec': 1.5.0 @@ -23966,7 +25096,7 @@ snapshots: esutils: 2.0.3 known-css-properties: 0.35.0 postcss: 8.5.3 - postcss-load-config: 3.1.4(postcss@8.5.3) + postcss-load-config: 3.1.4(postcss@8.5.3)(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)) postcss-safe-parser: 6.0.0(postcss@8.5.3) postcss-selector-parser: 6.1.1 semver: 7.7.1 @@ -24199,6 +25329,8 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + exit@0.1.2: {} + expand-brackets@2.1.4: dependencies: debug: 2.6.9 @@ -24466,6 +25598,10 @@ snapshots: file-uri-to-path@1.0.0: {} + filelist@1.0.4: + dependencies: + minimatch: 5.1.6 + fill-range@4.0.0: dependencies: extend-shallow: 2.0.1 @@ -25141,6 +26277,10 @@ snapshots: readable-stream: 2.3.8 wbuf: 1.7.3 + html-encoding-sniffer@3.0.0: + dependencies: + whatwg-encoding: 2.0.0 + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -25188,7 +26328,7 @@ snapshots: util.promisify: 1.0.0 webpack: 4.44.2(webpack-cli@4.10.0) - html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)): + html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.2)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -25244,6 +26384,14 @@ snapshots: http-parser-js@0.5.8: {} + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 @@ -25286,6 +26434,13 @@ snapshots: https-browserify@1.0.0: {} + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 @@ -25525,6 +26680,8 @@ snapshots: dependencies: get-east-asian-width: 1.3.0 + is-generator-fn@2.1.0: {} + is-git-repository@1.1.1: dependencies: execa: 0.6.3 @@ -25704,38 +26861,213 @@ snapshots: 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@5.0.6: + 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-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.4.0 + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jake@10.9.2: + dependencies: + async: 3.2.5 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + + jest-changed-files@29.7.0: + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + + jest-circus@29.7.0(babel-plugin-macros@3.1.0): + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 12.20.55 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.3(babel-plugin-macros@3.1.0) + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.1.0 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-cli@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-cli@29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + optional: true + + jest-config@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)): + dependencies: + '@babel/core': 7.26.10 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.10) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 12.20.55 + ts-node: 10.8.2(@types/node@12.20.55)(typescript@5.8.2) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0): dependencies: - '@jridgewell/trace-mapping': 0.3.25 - debug: 4.4.0 - istanbul-lib-coverage: 3.2.2 + '@babel/core': 7.26.10 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.10) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.14.0 transitivePeerDependencies: + - babel-plugin-macros - supports-color + optional: true - istanbul-reports@3.1.7: + jest-diff@29.7.0: dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 - jackspeak@3.4.3: + jest-docblock@29.7.0: dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + detect-newline: 3.1.0 - jest-diff@29.7.0: + jest-each@29.7.0: dependencies: + '@jest/types': 29.6.3 chalk: 4.1.2 - diff-sequences: 29.6.3 jest-get-type: 29.6.3 + jest-util: 29.7.0 pretty-format: 29.7.0 + jest-environment-jsdom@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/jsdom': 20.0.1 + '@types/node': 12.20.55 + jest-mock: 29.7.0 + jest-util: 29.7.0 + jsdom: 20.0.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jest-environment-node@29.7.0: dependencies: '@jest/environment': 29.7.0 @@ -25751,7 +27083,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.14.0 + '@types/node': 12.20.55 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -25763,6 +27095,11 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + jest-leak-detector@29.7.0: + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + jest-matcher-utils@29.7.0: dependencies: chalk: 4.1.2 @@ -25788,8 +27125,110 @@ snapshots: '@types/node': 22.14.0 jest-util: 29.7.0 + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + optionalDependencies: + jest-resolve: 29.7.0 + + jest-preset-angular@14.5.4(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser-dynamic@19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))))(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)))(jsdom@25.0.1)(typescript@5.8.2): + dependencies: + '@angular/compiler-cli': 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.2) + '@angular/core': 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser-dynamic': 19.2.4(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@19.2.4)(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@19.2.4(@angular/animations@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@19.2.4(rxjs@7.8.2)(zone.js@0.15.0))) + bs-logger: 0.2.6 + esbuild-wasm: 0.25.1 + jest: 29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + jest-environment-jsdom: 29.7.0 + jest-util: 29.7.0 + pretty-format: 29.7.0 + ts-jest: 29.3.1(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(esbuild@0.25.2)(jest@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)))(typescript@5.8.2) + typescript: 5.8.2 + optionalDependencies: + esbuild: 0.25.2 + jsdom: 25.0.1 + transitivePeerDependencies: + - '@babel/core' + - '@jest/transform' + - '@jest/types' + - babel-jest + - bufferutil + - canvas + - supports-color + - utf-8-validate + jest-regex-util@29.6.3: {} + jest-resolve-dependencies@29.7.0: + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + jest-resolve@29.7.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.10 + resolve.exports: 2.0.3 + slash: 3.0.0 + + jest-runner@29.7.0: + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 12.20.55 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 12.20.55 + chalk: 4.1.2 + cjs-module-lexer: 1.4.3 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + jest-snapshot@29.7.0: dependencies: '@babel/core': 7.26.10 @@ -25818,7 +27257,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.14.0 + '@types/node': 12.20.55 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -25833,6 +27272,17 @@ snapshots: leven: 3.1.0 pretty-format: 29.7.0 + jest-watcher@29.7.0: + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 12.20.55 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + jest-worker@27.5.1: dependencies: '@types/node': 22.14.0 @@ -25841,11 +27291,36 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.14.0 + '@types/node': 12.20.55 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 + jest@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest@29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + optional: true + jimp-compact@0.16.1: {} jiti@1.21.6: {} @@ -25931,6 +27406,39 @@ snapshots: jsdoc-type-pratt-parser@4.1.0: {} + jsdom@20.0.3: + dependencies: + abab: 2.0.6 + acorn: 8.14.1 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.13 + parse5: 7.2.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.18.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jsdom@25.0.1: dependencies: cssstyle: 4.1.0 @@ -26109,7 +27617,7 @@ snapshots: dependencies: readable-stream: 2.3.8 - less-loader@12.2.0(less@4.2.2)(webpack@5.98.0(esbuild@0.25.1)): + less-loader@12.2.0(less@4.2.2)(webpack@5.98.0(esbuild@0.25.2)): dependencies: less: 4.2.2 optionalDependencies: @@ -26136,7 +27644,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - license-webpack-plugin@4.0.2(webpack@5.98.0(esbuild@0.25.1)): + license-webpack-plugin@4.0.2(webpack@5.98.0(esbuild@0.25.2)): dependencies: webpack-sources: 3.2.3 optionalDependencies: @@ -26371,6 +27879,8 @@ snapshots: lodash.isarguments@3.1.0: {} + lodash.memoize@4.1.2: {} + lodash.merge@4.6.2: {} lodash.sortby@4.7.0: {} @@ -26456,6 +27966,8 @@ snapshots: dependencies: semver: 7.7.1 + make-error@1.3.6: {} + make-fetch-happen@13.0.1: dependencies: '@npmcli/agent': 2.2.2 @@ -27135,7 +28647,7 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.2(webpack@5.98.0(esbuild@0.25.1)): + mini-css-extract-plugin@2.9.2(webpack@5.98.0(esbuild@0.25.2)): dependencies: schema-utils: 4.3.0 tapable: 2.2.1 @@ -28347,19 +29859,21 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.3 - postcss-load-config@3.1.4(postcss@8.5.3): + postcss-load-config@3.1.4(postcss@8.5.3)(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: postcss: 8.5.3 + ts-node: 10.8.2(@types/node@22.14.0)(typescript@5.8.2) - postcss-load-config@4.0.2(postcss@8.5.3): + postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)): dependencies: lilconfig: 3.1.2 yaml: 2.6.1 optionalDependencies: postcss: 8.5.3 + ts-node: 10.8.2(@types/node@22.14.0)(typescript@5.8.2) postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.6.1): dependencies: @@ -28369,7 +29883,7 @@ snapshots: postcss: 8.5.3 yaml: 2.6.1 - postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.1)): + postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.8.2)(webpack@5.98.0(esbuild@0.25.2)): dependencies: cosmiconfig: 9.0.0(typescript@5.8.2) jiti: 1.21.6 @@ -28601,6 +30115,8 @@ snapshots: punycode@2.3.1: {} + pure-rand@6.1.0: {} + qrcode-terminal@0.11.0: {} qs@6.13.0: @@ -29386,7 +30902,7 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@16.0.5(sass@1.85.0)(webpack@5.98.0(esbuild@0.25.1)): + sass-loader@16.0.5(sass@1.85.0)(webpack@5.98.0(esbuild@0.25.2)): dependencies: neo-async: 2.6.2 optionalDependencies: @@ -29856,7 +31372,7 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@5.0.0(webpack@5.98.0(esbuild@0.25.1)): + source-map-loader@5.0.0(webpack@5.98.0(esbuild@0.25.2)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 @@ -29870,6 +31386,11 @@ snapshots: source-map-url: 0.4.1 urix: 0.1.0 + source-map-support@0.5.13: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -30022,6 +31543,11 @@ snapshots: string-argv@0.3.2: {} + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + string-ts@2.2.0: {} string-width@4.2.3: @@ -30092,6 +31618,8 @@ snapshots: strip-bom@3.0.0: {} + strip-bom@4.0.0: {} + strip-eof@1.0.0: {} strip-final-newline@2.0.0: {} @@ -30234,7 +31762,7 @@ snapshots: system-architecture@0.1.0: {} - tailwindcss@3.4.7: + tailwindcss@3.4.7(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -30253,7 +31781,7 @@ snapshots: postcss: 8.5.3 postcss-import: 15.1.0(postcss@8.5.3) postcss-js: 4.0.1(postcss@8.5.3) - postcss-load-config: 4.0.2(postcss@8.5.3) + postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2)) postcss-nested: 6.2.0(postcss@8.5.3) postcss-selector-parser: 6.1.1 resolve: 1.22.10 @@ -30500,6 +32028,10 @@ snapshots: dependencies: punycode: 2.3.1 + tr46@3.0.0: + dependencies: + punycode: 2.3.1 + tr46@5.0.0: dependencies: punycode: 2.3.1 @@ -30527,6 +32059,64 @@ snapshots: ts-interface-checker@0.1.13: {} + ts-jest@29.3.1(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(esbuild@0.25.2)(jest@29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)))(typescript@5.8.2): + dependencies: + bs-logger: 0.2.6 + ejs: 3.1.10 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@12.20.55)(babel-plugin-macros@3.1.0)(ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2)) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.1 + type-fest: 4.39.1 + typescript: 5.8.2 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.26.10 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.10) + esbuild: 0.25.2 + + ts-node@10.8.2(@types/node@12.20.55)(typescript@5.8.2): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 12.20.55 + acorn: 8.14.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.8.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + ts-node@10.8.2(@types/node@22.14.0)(typescript@5.8.2): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.14.0 + acorn: 8.14.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.8.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optional: true + ts-pattern@5.6.0: {} tsconfck@3.1.5(typescript@5.8.2): @@ -30610,6 +32200,8 @@ snapshots: type-fest@4.27.1: {} + type-fest@4.39.1: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -31008,6 +32600,14 @@ snapshots: uuid@8.3.2: {} + v8-compile-cache-lib@3.0.1: {} + + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + v8flags@4.0.1: {} validate-html-nesting@1.2.2: {} @@ -31206,6 +32806,21 @@ snapshots: terser: 5.39.0 yaml: 2.6.1 + vite@6.2.3(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1): + dependencies: + esbuild: 0.25.2 + postcss: 8.5.3 + rollup: 4.39.0 + optionalDependencies: + '@types/node': 12.20.55 + fsevents: 2.3.3 + jiti: 2.4.2 + less: 4.2.2 + lightningcss: 1.29.2 + sass: 1.85.0 + terser: 5.39.0 + yaml: 2.6.1 + vite@6.2.3(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1): dependencies: esbuild: 0.25.2 @@ -31221,13 +32836,13 @@ snapshots: terser: 5.39.0 yaml: 2.6.1 - vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1): + vite@6.2.5(@types/node@12.20.55)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1): dependencies: esbuild: 0.25.2 postcss: 8.5.3 rollup: 4.39.0 optionalDependencies: - '@types/node': 22.14.0 + '@types/node': 12.20.55 fsevents: 2.3.3 jiti: 2.4.2 less: 4.2.2 @@ -31460,6 +33075,10 @@ snapshots: optionalDependencies: typescript: 5.8.2 + w3c-xmlserializer@4.0.0: + dependencies: + xml-name-validator: 4.0.0 + w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 @@ -31548,7 +33167,7 @@ snapshots: webpack: 5.98.0(esbuild@0.25.2)(webpack-cli@5.1.4) webpack-merge: 5.10.0 - webpack-dev-middleware@7.4.2(webpack@5.98.0(esbuild@0.25.1)): + webpack-dev-middleware@7.4.2(webpack@5.98.0(esbuild@0.25.2)): dependencies: colorette: 2.0.20 memfs: 4.17.0 @@ -31559,7 +33178,7 @@ snapshots: optionalDependencies: webpack: 5.98.0(esbuild@0.25.1) - webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.1)): + webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.2)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -31586,7 +33205,7 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.1)) + webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.2)) ws: 8.18.0 optionalDependencies: webpack: 5.98.0(esbuild@0.25.1) @@ -31615,12 +33234,12 @@ snapshots: webpack-sources@3.2.3: {} - webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(webpack@5.98.0(esbuild@0.25.1)): + webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.2)))(webpack@5.98.0(esbuild@0.25.2)): dependencies: typed-assert: 1.0.9 webpack: 5.98.0(esbuild@0.25.1) optionalDependencies: - html-webpack-plugin: 5.6.3(webpack@5.98.0(esbuild@0.25.1)) + html-webpack-plugin: 5.6.3(webpack@5.98.0(esbuild@0.25.2)) webpack-virtual-modules@0.6.2: {} @@ -31724,12 +33343,18 @@ snapshots: websocket-extensions@0.1.4: {} + whatwg-encoding@2.0.0: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 whatwg-fetch@3.6.20: {} + whatwg-mimetype@3.0.0: {} + whatwg-mimetype@4.0.0: {} whatwg-url-without-unicode@8.0.0-3: @@ -31738,6 +33363,11 @@ snapshots: punycode: 2.3.1 webidl-conversions: 5.0.0 + whatwg-url@11.0.0: + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + whatwg-url@14.0.0: dependencies: tr46: 5.0.0 @@ -31946,6 +33576,8 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yn@3.1.1: {} + yocto-queue@0.1.0: {} yocto-queue@1.1.1: {}