diff --git a/backend/.gitattributes b/.gitattributes
similarity index 100%
rename from backend/.gitattributes
rename to .gitattributes
diff --git a/.github/workflows/testing.yaml b/.github/workflows/testing.yaml
new file mode 100644
index 0000000..d891e8e
--- /dev/null
+++ b/.github/workflows/testing.yaml
@@ -0,0 +1,47 @@
+name: Tests
+
+on:
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ testing:
+ name: Run tests
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Setup JDK 21
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'temurin'
+ java-version: '21'
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v4
+ with:
+ version: 10
+
+ - name: Set up Node.js 22.x
+ uses: actions/setup-node@v4
+ with:
+ node-version: 22.x
+ cache: 'pnpm'
+ cache-dependency-path: '**/pnpm-lock.yaml'
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+ working-directory: src/main/frontend
+
+ - name: Build Application
+ run: ./mvnw clean test -B
+
+ - name: Store Cypress Results
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: cypress-test-results
+ path: ${{ github.workspace }}/*/target/test-classes/e2e/cypress/test-results
diff --git a/.gitignore b/.gitignore
index 667aaef..047af88 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,10 @@
HELP.md
target/
-.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
+**/node_modules/
+
### STS ###
.apt_generated
.classpath
diff --git a/backend/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
similarity index 100%
rename from backend/.mvn/wrapper/maven-wrapper.properties
rename to .mvn/wrapper/maven-wrapper.properties
diff --git a/README.md b/README.md
index fa8cc7d..c7ce4ae 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,41 @@
-# Multi Module Template
+# WebApp Template
-This project is a setup for multimodule repositories, specifically for at least a SpringBoot Backend and an Angular Frontend.
+This project is a setup for a web application, specifically for a SpringBoot application with an Angular frontend.
-# How to build
-By running maven build from the builder module, it builds the frontend and backend and then adds the frontend files to the backend where it serves them on the root /.
-It also has a builtin retry for index.html, so a custom nginx config to retry index.html if it does not find the html file is not needed.
+## Build from source
+
+Building the project requires Java, Maven, NodeJS, PNPM and Docker installed on your system.
+
+To build the project from source, run this command:
+
+```bash
+mvn clean install
+```
+
+## Development
+
+To run the application in development mode, you can use the following commands:
+
+1. Start the backend server:
+ ```bash
+ mvn spring-boot:run
+ ```
+2. Start the frontend server:
+ ```bash
+ cd src/main/frontend
+ pnpm install
+ pnpm start
+ ```
+
+### E2e Testing
+
+For e2e testing, you can use Cypress. To run the e2e tests, follow these steps:
+
+1. Navigate to the frontend directory:
+ ```bash
+ cd src/main/frontend
+ ```
+2. Run the e2e tests:
+ ```bash
+ pnpm e2e
+ ```
\ No newline at end of file
diff --git a/backend/.gitignore b/backend/.gitignore
deleted file mode 100644
index ab718db..0000000
--- a/backend/.gitignore
+++ /dev/null
@@ -1,35 +0,0 @@
-HELP.md
-target/
-.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-build/
-!**/src/main/**/build/
-!**/src/test/**/build/
-
-### VS Code ###
-.vscode/
-
-src/main/resources/frontend
\ No newline at end of file
diff --git a/backend/pom.xml b/backend/pom.xml
deleted file mode 100644
index 9d24af1..0000000
--- a/backend/pom.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
- 4.0.0
-
- org.frankframework
- multi-module-template
- ${revision}
- ../pom.xml
-
-
- backend
- ${revision}
- backend
- backend
-
-
- 21
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
- 3.7.1
-
-
- unpack-frontend-into-classes
- process-resources
- unpack
-
-
-
- org.frankframework
- frontend
- ${project.version}
- dist
- jar
- true
-
- ${project.build.outputDirectory}/frontend
-
-
-
-
-
-
-
-
-
-
diff --git a/backend/src/main/java/org/frankframework/backend/BackendApplication.java b/backend/src/main/java/org/frankframework/backend/BackendApplication.java
deleted file mode 100644
index eb76c57..0000000
--- a/backend/src/main/java/org/frankframework/backend/BackendApplication.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.frankframework.backend;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class BackendApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(BackendApplication.class, args);
- }
-
-}
diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties
deleted file mode 100644
index 0fc26fb..0000000
--- a/backend/src/main/resources/application.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-spring.application.name=backend
-spring.web.resources.static-locations=classpath:/frontend/
\ No newline at end of file
diff --git a/builder/pom.xml b/builder/pom.xml
deleted file mode 100644
index 10f43ab..0000000
--- a/builder/pom.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
- 4.0.0
-
-
- org.frankframework
- multi-module-template
- ${revision}
- ../pom.xml
-
-
- builder
- ${revision}
-
- pom
- builder
-
-
- ../frontend
- ../backend
-
-
-
\ No newline at end of file
diff --git a/docker-compose.yaml b/docker-compose.yaml
new file mode 100644
index 0000000..690996c
--- /dev/null
+++ b/docker-compose.yaml
@@ -0,0 +1,8 @@
+services:
+ webapp:
+ image: webapp-template:latest
+ build:
+ dockerfile: ./docker/Dockerfile
+ context: .
+ ports:
+ - "8080:8080"
\ No newline at end of file
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000..bf24b87
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,25 @@
+FROM eclipse-temurin:21-jdk-jammy AS builder
+WORKDIR /workspace
+
+COPY . .
+
+RUN ./mvnw -B -q -DskipTests clean package
+
+FROM eclipse-temurin:21-jre-jammy AS runner
+ARG GID=2000
+ARG UID=2000
+WORKDIR /app
+
+ENV SPRING_PROFILES_ACTIVE=prod
+
+RUN addgroup --gid ${GID} spring && \
+ adduser --uid ${UID} --gid ${GID} --shell /usr/sbin/nologin spring
+
+USER spring
+
+COPY --chown=spring ./docker/scripts/ /scripts/
+COPY --chown=spring --from=builder /workspace/target/webapp-template*.jar /app/webapp.jar
+
+EXPOSE 8080
+
+CMD ["java","-jar","/app/app.jar"]
diff --git a/docker/scripts/entrypoint.sh b/docker/scripts/entrypoint.sh
new file mode 100644
index 0000000..126e0f4
--- /dev/null
+++ b/docker/scripts/entrypoint.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -e
+
+export JAVA_OPTS="\
+ -XX:MaxRAMPercentage=75 \
+ -XX:+ExitOnOutOfMemoryError
+ -XX:+HeapDumpOnOutOfMemoryError \
+ $JAVA_OPTS"
+
+exec "$@"
diff --git a/frontend/.vscode/extensions.json b/frontend/.vscode/extensions.json
deleted file mode 100644
index 77b3745..0000000
--- a/frontend/.vscode/extensions.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
- "recommendations": ["angular.ng-template"]
-}
diff --git a/frontend/.vscode/launch.json b/frontend/.vscode/launch.json
deleted file mode 100644
index 925af83..0000000
--- a/frontend/.vscode/launch.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "name": "ng serve",
- "type": "chrome",
- "request": "launch",
- "preLaunchTask": "npm: start",
- "url": "http://localhost:4200/"
- },
- {
- "name": "ng test",
- "type": "chrome",
- "request": "launch",
- "preLaunchTask": "npm: test",
- "url": "http://localhost:9876/debug.html"
- }
- ]
-}
diff --git a/frontend/.vscode/tasks.json b/frontend/.vscode/tasks.json
deleted file mode 100644
index a298b5b..0000000
--- a/frontend/.vscode/tasks.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
- "version": "2.0.0",
- "tasks": [
- {
- "type": "npm",
- "script": "start",
- "isBackground": true,
- "problemMatcher": {
- "owner": "typescript",
- "pattern": "$tsc",
- "background": {
- "activeOnStart": true,
- "beginsPattern": {
- "regexp": "(.*?)"
- },
- "endsPattern": {
- "regexp": "bundle generation complete"
- }
- }
- }
- },
- {
- "type": "npm",
- "script": "test",
- "isBackground": true,
- "problemMatcher": {
- "owner": "typescript",
- "pattern": "$tsc",
- "background": {
- "activeOnStart": true,
- "beginsPattern": {
- "regexp": "(.*?)"
- },
- "endsPattern": {
- "regexp": "bundle generation complete"
- }
- }
- }
- }
- ]
-}
diff --git a/frontend/pom.xml b/frontend/pom.xml
deleted file mode 100644
index 6ecf1a9..0000000
--- a/frontend/pom.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
- 4.0.0
-
-
-
- org.frankframework
- multi-module-template
- ${revision}
- ../pom.xml
-
-
- frontend
- ${revision}
-
-
- ${project.basedir}/dist/browser
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
- true
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- 3.5.1
-
-
- pnpm install
-
- exec
-
- prepare-package
-
- pnpm
-
- i
- --frozen-lockfile
-
-
-
-
- pnpm build
-
- exec
-
- prepare-package
-
- pnpm
-
- run
- build
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.4.2
-
-
- package-frontend-dist
- prepare-package
-
- jar
-
-
- ${frontend.dist.dir}
-
- **/*
-
- dist
-
-
-
-
-
-
-
-
-
diff --git a/frontend/src/app/app.html b/frontend/src/app/app.html
deleted file mode 100644
index dd60957..0000000
--- a/frontend/src/app/app.html
+++ /dev/null
@@ -1 +0,0 @@
-
It works!
diff --git a/frontend/src/app/app.ts b/frontend/src/app/app.ts
deleted file mode 100644
index 2239426..0000000
--- a/frontend/src/app/app.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import {Component, signal} from '@angular/core';
-import { RouterOutlet } from '@angular/router';
-
-@Component({
- selector: 'app-root',
- imports: [
- RouterOutlet
- ],
- templateUrl: './app.html',
- styleUrl: './app.css'
-})
-export class App {
- protected readonly title = signal('angular-demo-project');
-}
diff --git a/frontend/src/main.ts b/frontend/src/main.ts
deleted file mode 100644
index 4175c3f..0000000
--- a/frontend/src/main.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { bootstrapApplication, provideProtractorTestingSupport } from '@angular/platform-browser';
-import { App } from './app/app';
-import { provideRouter } from '@angular/router';
-import { routes } from './app/app.routes';
-
-
-bootstrapApplication(App, {
- providers: [provideProtractorTestingSupport(), provideRouter(routes)],
-}).catch((err) => console.error(err));
diff --git a/backend/mvnw b/mvnw
similarity index 100%
rename from backend/mvnw
rename to mvnw
diff --git a/backend/mvnw.cmd b/mvnw.cmd
similarity index 100%
rename from backend/mvnw.cmd
rename to mvnw.cmd
diff --git a/frontend/pnpm-lock.yaml b/pnpm-lock.yaml
similarity index 76%
rename from frontend/pnpm-lock.yaml
rename to pnpm-lock.yaml
index 1fa3544..b53e4a9 100644
--- a/frontend/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -6,26 +6,26 @@ settings:
importers:
- .:
+ src/main/frontend:
dependencies:
'@angular/common':
specifier: ^20.2.0
- version: 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ version: 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
'@angular/compiler':
specifier: ^20.2.0
- version: 20.2.2
+ version: 20.2.4
'@angular/core':
specifier: ^20.2.0
- version: 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)
+ version: 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)
'@angular/forms':
specifier: ^20.2.0
- version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
+ version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
'@angular/platform-browser':
specifier: ^20.2.0
- version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))
+ version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))
'@angular/router':
specifier: ^20.2.0
- version: 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
+ version: 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)
rxjs:
specifier: ~7.8.0
version: 7.8.2
@@ -36,38 +36,35 @@ importers:
specifier: ~0.15.0
version: 0.15.1
devDependencies:
- '@angular-eslint/eslint-plugin':
- specifier: ^20.2.0
- version: 20.2.0(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
- '@angular-eslint/eslint-plugin-template':
- specifier: ^20.2.0
- version: 20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.41.0)(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
- '@angular-eslint/template-parser':
- specifier: ^20.2.0
- version: 20.2.0(eslint@9.34.0)(typescript@5.9.2)
+ '@angular-eslint/builder':
+ specifier: 20.2.0
+ version: 20.2.0(chokidar@4.0.3)(eslint@9.34.0)(typescript@5.9.2)
'@angular/build':
specifier: ^20.2.1
- version: 20.2.1(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2))(@angular/compiler@20.2.2)(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@24.3.0)(chokidar@4.0.3)(karma@6.4.4)(postcss@8.5.6)(tslib@2.8.1)(typescript@5.9.2)
+ version: 20.2.2(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.9.2))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@24.3.0)(chokidar@4.0.3)(karma@6.4.4)(postcss@8.5.6)(tslib@2.8.1)(typescript@5.9.2)
'@angular/cli':
specifier: ^20.2.1
- version: 20.2.1(@types/node@24.3.0)(chokidar@4.0.3)
+ version: 20.2.2(@types/node@24.3.0)(chokidar@4.0.3)
'@angular/compiler-cli':
specifier: ^20.2.1
- version: 20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2)
+ version: 20.2.4(@angular/compiler@20.2.4)(typescript@5.9.2)
+ '@cypress/schematic':
+ specifier: 4.1.2
+ version: 4.1.2(@angular/cli@20.2.2(@types/node@24.3.0)(chokidar@4.0.3))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))
'@eslint/eslintrc':
specifier: ^3.3.0
version: 3.3.1
'@eslint/js':
- specifier: ^9.34.0
+ specifier: ^9.33.0
version: 9.34.0
'@types/jasmine':
specifier: ~5.1.0
version: 5.1.9
angular-eslint:
- specifier: ^20.2.0
- version: 20.2.0(chokidar@4.0.3)(eslint@9.34.0)(typescript-eslint@8.41.0(eslint@9.34.0)(typescript@5.9.2))(typescript@5.9.2)
+ specifier: 20.2.0
+ version: 20.2.0(chokidar@4.0.3)(eslint@9.34.0)(typescript-eslint@8.40.0(eslint@9.34.0)(typescript@5.9.2))(typescript@5.9.2)
eslint:
- specifier: ^9.34.0
+ specifier: ^9.33.0
version: 9.34.0
eslint-config-prettier:
specifier: ^10.1.1
@@ -106,8 +103,23 @@ importers:
specifier: ~5.9.2
version: 5.9.2
typescript-eslint:
- specifier: ^8.40.0
- version: 8.41.0(eslint@9.34.0)(typescript@5.9.2)
+ specifier: 8.40.0
+ version: 8.40.0(eslint@9.34.0)(typescript@5.9.2)
+
+ src/main/frontend/cypress:
+ devDependencies:
+ cypress:
+ specifier: ^15.0.0
+ version: 15.1.0
+ cypress-multi-reporters:
+ specifier: ^2.0.5
+ version: 2.0.5(mocha@11.7.2)
+ mocha:
+ specifier: ^11.7.2
+ version: 11.7.2
+ mochawesome:
+ specifier: ^7.1.3
+ version: 7.1.3(mocha@11.7.2)
packages:
@@ -171,12 +183,12 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
- '@angular-devkit/architect@0.2002.1':
- resolution: {integrity: sha512-8jotVFz+83avTdeRoLe7wn/F+nnbjywuVHqZ/shDGRHssOtR8fkSCjSsKwPZejU6wsgTxAKFylWRIxydZE8Hzw==}
+ '@angular-devkit/architect@0.2002.2':
+ resolution: {integrity: sha512-amppp/UqKyj+B8hYFU16j4t6SVN+SS0AEnHivDjKy41NNJgXv+5Sm2Q2jaMHviCT3rclyT0wqwNAi0RDjyLx5Q==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
- '@angular-devkit/core@20.2.1':
- resolution: {integrity: sha512-07xiRltPA1X+C0AQo/glI0in+bpwGW1cgOen2pp0MhXVlawW1M9cKZFb/35uvYUEWJUxLwBB3ZKJXBmpWWw0Rg==}
+ '@angular-devkit/core@20.2.2':
+ resolution: {integrity: sha512-SC+f5isSWJBpEgR+R7jP++2Z14WExNWLAdKpIickLWjuL8FlGkj+kaF3dWXhh0KcXo+r6kKb4pWUptSaqer5gA==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
peerDependencies:
chokidar: ^4.0.0
@@ -184,8 +196,8 @@ packages:
chokidar:
optional: true
- '@angular-devkit/schematics@20.2.1':
- resolution: {integrity: sha512-hxQQhlOKLjj4+fJrvMFWnVA6vwewwtkEGneolY+aMb8dUAEE7sw1FLo02pPdIBIXLWIYIcGVRI0E5iCTcLq9zw==}
+ '@angular-devkit/schematics@20.2.2':
+ resolution: {integrity: sha512-rtL7slZjzdChQoiADKZv/Ra8D3C3tIw/WcVxd2stiLHdK/Oaf9ejx5m/X9o0QMEbNsy2Fy/RKodNqmz1CjzpCg==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
'@angular-eslint/builder@20.2.0':
@@ -229,8 +241,8 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '*'
- '@angular/build@20.2.1':
- resolution: {integrity: sha512-FLiNDUhqCkU7EyODwPl8EZMubWdQG62ynczeLcHGtHOA2/Wiv+CvCP58GbuznZSslEcyyyE7MsEy3ZvsjxZuIA==}
+ '@angular/build@20.2.2':
+ resolution: {integrity: sha512-rvlKMt3OmeenHOwejRpI4OLcyERQn6Hl4ODRWlYfNX70Ki1zu6eAD0pWULzcD+HSQd0a26Xzt3gcpEy2vOEAzg==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
peerDependencies:
'@angular/compiler': ^20.0.0
@@ -240,7 +252,7 @@ packages:
'@angular/platform-browser': ^20.0.0
'@angular/platform-server': ^20.0.0
'@angular/service-worker': ^20.0.0
- '@angular/ssr': ^20.2.1
+ '@angular/ssr': ^20.2.2
karma: ^6.4.0
less: ^4.2.0
ng-packagr: ^20.0.0
@@ -275,38 +287,38 @@ packages:
vitest:
optional: true
- '@angular/cli@20.2.1':
- resolution: {integrity: sha512-uKuq4+7EcEer7ixe6cYAAe8/WOvDIbLd/F7ZCMCb5dCGkGRoQKgodo6sorwZUpGvyuXO+mCYarTXzrBrY2b/Cg==}
+ '@angular/cli@20.2.2':
+ resolution: {integrity: sha512-0K8cmuHzRTpPzy/w0+S5o3s0JPV++9/s2JhK4aw/+OnQRpUbodoqjm1ur5k5DUBQfIHi7aM73ZIW3G43lv4F0g==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
hasBin: true
- '@angular/common@20.2.2':
- resolution: {integrity: sha512-8i7cytly2h1sgoaEx3+H7/Xrq2KEBnAi0nDG1URv0esmyeMYJ2kycBXF2EDbnbzBhZAPw7++kTf5jng+bhTsiw==}
+ '@angular/common@20.2.4':
+ resolution: {integrity: sha512-mc6Sq1cYjaPJYThnvG6x0f/E27pWksqwaNJxT1RtwhAGc1i2jsc0su6b7e5NnXEgVbdPqu1MZHAEFdXZ5+/MwQ==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/core': 20.2.2
+ '@angular/core': 20.2.4
rxjs: ^6.5.3 || ^7.4.0
- '@angular/compiler-cli@20.2.2':
- resolution: {integrity: sha512-4amAz9/GeYPGBeNGnelxPllQZXG/ttj+t1dwZ7AODXkxipR6P26Vg3Qma90bxsjUmgl5Mfcijy4bUh/isBGi5g==}
+ '@angular/compiler-cli@20.2.4':
+ resolution: {integrity: sha512-II2hEpfbo73dL12D42DoIHYGiTYAiO9cpwh29BIo8VD054ei4cm0oK+jCyryDQH5T3+wyCWlj0OFjcZ/GmO7HQ==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
hasBin: true
peerDependencies:
- '@angular/compiler': 20.2.2
+ '@angular/compiler': 20.2.4
typescript: '>=5.8 <6.0'
peerDependenciesMeta:
typescript:
optional: true
- '@angular/compiler@20.2.2':
- resolution: {integrity: sha512-gHZFSAVVzH/rOvZGglf5AGkk6iQgZXqgFzoThSXe+Do4XIkdeaZPVgc/3AmoHk50gAD85C90eXSjlvp/N1djRg==}
+ '@angular/compiler@20.2.4':
+ resolution: {integrity: sha512-LQzf+Azb/Ms+BavpCFIat+f1C0gUJpby2RW4yebF3JkBFKfJ7M8d49TQpF8rSnGxMRTf49mln7laz4nBYTLDGA==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
- '@angular/core@20.2.2':
- resolution: {integrity: sha512-FZFVh2pI4mI7rr8tTVfrC2c1yOjgTrZy3BFaLSTArS4TgNxy30fLKQ9w3JkuxfllDSckPLyft/EaKcW1pxgHAw==}
+ '@angular/core@20.2.4':
+ resolution: {integrity: sha512-8yvfvPDWX8M7o82GBl5P1nlvm1ywQ2XZi5HWj3llKpSJE2XjzhATgPrpKwiNVnpgjZWTOwM11fpoAaRKqQjxTA==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/compiler': 20.2.2
+ '@angular/compiler': 20.2.4
rxjs: ^6.5.3 || ^7.4.0
zone.js: ~0.15.0
peerDependenciesMeta:
@@ -315,33 +327,33 @@ packages:
zone.js:
optional: true
- '@angular/forms@20.2.2':
- resolution: {integrity: sha512-61xMJfKql9F2q+8bm+AlIPy36ETyYuBIxGwP7q/w5Rjv+GlfXVVddq4DI2RiaK/MwgYljtuwf1+aoXz4dlNriw==}
+ '@angular/forms@20.2.4':
+ resolution: {integrity: sha512-wbgnW+GALVAmK6hgFegkwlHKw35onvh9Z5A236HCyUySEAOiaD/3CoDg5Hw4iHQAiSU6Fn2NwDiv+W0xki6WDw==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/common': 20.2.2
- '@angular/core': 20.2.2
- '@angular/platform-browser': 20.2.2
+ '@angular/common': 20.2.4
+ '@angular/core': 20.2.4
+ '@angular/platform-browser': 20.2.4
rxjs: ^6.5.3 || ^7.4.0
- '@angular/platform-browser@20.2.2':
- resolution: {integrity: sha512-Il0AibFdZPK4PRhnMomURld/9k0+lJElO1/+lSeYqlOYFcIV8BUrsBsWcDYgDMs71eJiw63EReffADvpEQI4WA==}
+ '@angular/platform-browser@20.2.4':
+ resolution: {integrity: sha512-81vzW8xhnJU7AiYJKXLR2MuvawzhRDgwyNkPEep58wty5zNuIUCXdUERJSsXo7m/U2Dg1FUFfqLm4RC2UkqLzA==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/animations': 20.2.2
- '@angular/common': 20.2.2
- '@angular/core': 20.2.2
+ '@angular/animations': 20.2.4
+ '@angular/common': 20.2.4
+ '@angular/core': 20.2.4
peerDependenciesMeta:
'@angular/animations':
optional: true
- '@angular/router@20.2.2':
- resolution: {integrity: sha512-Bi+HS8x6eOTLSt6gt+o+llcACwXc0abnc52gamCPr0oWC+Z/fTWDZDPnkCqdxQkscJO6uoB16BRuG6Cfgvuarg==}
+ '@angular/router@20.2.4':
+ resolution: {integrity: sha512-KoduI1o+iBfCBGtXMvmy/qncDIwGxd2hNt2hDkkiYZTftmSg/XUJDxJqN84ckm2WLkdJpR9EirrwfHapJBIZOQ==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
peerDependencies:
- '@angular/common': 20.2.2
- '@angular/core': 20.2.2
- '@angular/platform-browser': 20.2.2
+ '@angular/common': 20.2.4
+ '@angular/core': 20.2.4
+ '@angular/platform-browser': 20.2.4
rxjs: ^6.5.3 || ^7.4.0
'@babel/code-frame@7.27.1':
@@ -423,14 +435,27 @@ packages:
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'}
- '@emnapi/core@1.4.5':
- resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==}
+ '@cypress/request@3.0.9':
+ resolution: {integrity: sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw==}
+ engines: {node: '>= 6'}
+
+ '@cypress/schematic@4.1.2':
+ resolution: {integrity: sha512-sp7LaT4nNjfLnL/DB3+zJzrxDU0H9A57/DlwnZyZZLiyjwYODZi+eGaQZKXpmTx72VBORrhdm8471xF7xLD6qg==}
+ peerDependencies:
+ '@angular/cli': '>=18.0.0'
+ '@angular/core': '>=18.0.0'
+
+ '@cypress/xvfb@1.2.4':
+ resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==}
- '@emnapi/runtime@1.4.5':
- resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==}
+ '@emnapi/core@1.5.0':
+ resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==}
- '@emnapi/wasi-threads@1.0.4':
- resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==}
+ '@emnapi/runtime@1.5.0':
+ resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
+
+ '@emnapi/wasi-threads@1.1.0':
+ resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
'@esbuild/aix-ppc64@0.25.9':
resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==}
@@ -588,8 +613,8 @@ packages:
cpu: [x64]
os: [win32]
- '@eslint-community/eslint-utils@4.7.0':
- resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
+ '@eslint-community/eslint-utils@4.8.0':
+ resolution: {integrity: sha512-MJQFqrZgcW0UNYLGOuQpey/oTN59vyWwplvCGZztn1cKz9agZPPYpJB7h2OMmuu7VLqkvEjN8feFZJmxNF9D+Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
@@ -630,18 +655,14 @@ packages:
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
engines: {node: '>=18.18.0'}
- '@humanfs/node@0.16.6':
- resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
+ '@humanfs/node@0.16.7':
+ resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
engines: {node: '>=18.18.0'}
'@humanwhocodes/module-importer@1.0.1':
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
- '@humanwhocodes/retry@0.3.1':
- resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
- engines: {node: '>=18.18'}
-
'@humanwhocodes/retry@0.4.3':
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
@@ -1040,8 +1061,8 @@ packages:
resolution: {integrity: sha512-rCNLSB/JzNvot0SEyXqWZ7tX2B5dD2a1br2Dp0vSYVo5jh8Z0EZ7lS9TsZ1UtziddB1UfNUaMCc538/HztnJGA==}
engines: {node: ^18.17.0 || >=20.5.0}
- '@npmcli/promise-spawn@8.0.2':
- resolution: {integrity: sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==}
+ '@npmcli/promise-spawn@8.0.3':
+ resolution: {integrity: sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==}
engines: {node: ^18.17.0 || >=20.5.0}
'@npmcli/redact@3.2.2':
@@ -1222,108 +1243,113 @@ packages:
'@rolldown/pluginutils@1.0.0-beta.32':
resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==}
- '@rollup/rollup-android-arm-eabi@4.49.0':
- resolution: {integrity: sha512-rlKIeL854Ed0e09QGYFlmDNbka6I3EQFw7iZuugQjMb11KMpJCLPFL4ZPbMfaEhLADEL1yx0oujGkBQ7+qW3eA==}
+ '@rollup/rollup-android-arm-eabi@4.50.0':
+ resolution: {integrity: sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.49.0':
- resolution: {integrity: sha512-cqPpZdKUSQYRtLLr6R4X3sD4jCBO1zUmeo3qrWBCqYIeH8Q3KRL4F3V7XJ2Rm8/RJOQBZuqzQGWPjjvFUcYa/w==}
+ '@rollup/rollup-android-arm64@4.50.0':
+ resolution: {integrity: sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.49.0':
- resolution: {integrity: sha512-99kMMSMQT7got6iYX3yyIiJfFndpojBmkHfTc1rIje8VbjhmqBXE+nb7ZZP3A5skLyujvT0eIUCUsxAe6NjWbw==}
+ '@rollup/rollup-darwin-arm64@4.50.0':
+ resolution: {integrity: sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.49.0':
- resolution: {integrity: sha512-y8cXoD3wdWUDpjOLMKLx6l+NFz3NlkWKcBCBfttUn+VGSfgsQ5o/yDUGtzE9HvsodkP0+16N0P4Ty1VuhtRUGg==}
+ '@rollup/rollup-darwin-x64@4.50.0':
+ resolution: {integrity: sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.49.0':
- resolution: {integrity: sha512-3mY5Pr7qv4GS4ZvWoSP8zha8YoiqrU+e0ViPvB549jvliBbdNLrg2ywPGkgLC3cmvN8ya3za+Q2xVyT6z+vZqA==}
+ '@rollup/rollup-freebsd-arm64@4.50.0':
+ resolution: {integrity: sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.49.0':
- resolution: {integrity: sha512-C9KzzOAQU5gU4kG8DTk+tjdKjpWhVWd5uVkinCwwFub2m7cDYLOdtXoMrExfeBmeRy9kBQMkiyJ+HULyF1yj9w==}
+ '@rollup/rollup-freebsd-x64@4.50.0':
+ resolution: {integrity: sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.49.0':
- resolution: {integrity: sha512-OVSQgEZDVLnTbMq5NBs6xkmz3AADByCWI4RdKSFNlDsYXdFtlxS59J+w+LippJe8KcmeSSM3ba+GlsM9+WwC1w==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.50.0':
+ resolution: {integrity: sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.49.0':
- resolution: {integrity: sha512-ZnfSFA7fDUHNa4P3VwAcfaBLakCbYaxCk0jUnS3dTou9P95kwoOLAMlT3WmEJDBCSrOEFFV0Y1HXiwfLYJuLlA==}
+ '@rollup/rollup-linux-arm-musleabihf@4.50.0':
+ resolution: {integrity: sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.49.0':
- resolution: {integrity: sha512-Z81u+gfrobVK2iV7GqZCBfEB1y6+I61AH466lNK+xy1jfqFLiQ9Qv716WUM5fxFrYxwC7ziVdZRU9qvGHkYIJg==}
+ '@rollup/rollup-linux-arm64-gnu@4.50.0':
+ resolution: {integrity: sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.49.0':
- resolution: {integrity: sha512-zoAwS0KCXSnTp9NH/h9aamBAIve0DXeYpll85shf9NJ0URjSTzzS+Z9evmolN+ICfD3v8skKUPyk2PO0uGdFqg==}
+ '@rollup/rollup-linux-arm64-musl@4.50.0':
+ resolution: {integrity: sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-loongarch64-gnu@4.49.0':
- resolution: {integrity: sha512-2QyUyQQ1ZtwZGiq0nvODL+vLJBtciItC3/5cYN8ncDQcv5avrt2MbKt1XU/vFAJlLta5KujqyHdYtdag4YEjYQ==}
+ '@rollup/rollup-linux-loongarch64-gnu@4.50.0':
+ resolution: {integrity: sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==}
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-ppc64-gnu@4.49.0':
- resolution: {integrity: sha512-k9aEmOWt+mrMuD3skjVJSSxHckJp+SiFzFG+v8JLXbc/xi9hv2icSkR3U7uQzqy+/QbbYY7iNB9eDTwrELo14g==}
+ '@rollup/rollup-linux-ppc64-gnu@4.50.0':
+ resolution: {integrity: sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.49.0':
- resolution: {integrity: sha512-rDKRFFIWJ/zJn6uk2IdYLc09Z7zkE5IFIOWqpuU0o6ZpHcdniAyWkwSUWE/Z25N/wNDmFHHMzin84qW7Wzkjsw==}
+ '@rollup/rollup-linux-riscv64-gnu@4.50.0':
+ resolution: {integrity: sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-musl@4.49.0':
- resolution: {integrity: sha512-FkkhIY/hYFVnOzz1WeV3S9Bd1h0hda/gRqvZCMpHWDHdiIHn6pqsY3b5eSbvGccWHMQ1uUzgZTKS4oGpykf8Tw==}
+ '@rollup/rollup-linux-riscv64-musl@4.50.0':
+ resolution: {integrity: sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.49.0':
- resolution: {integrity: sha512-gRf5c+A7QiOG3UwLyOOtyJMD31JJhMjBvpfhAitPAoqZFcOeK3Kc1Veg1z/trmt+2P6F/biT02fU19GGTS529A==}
+ '@rollup/rollup-linux-s390x-gnu@4.50.0':
+ resolution: {integrity: sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.49.0':
- resolution: {integrity: sha512-BR7+blScdLW1h/2hB/2oXM+dhTmpW3rQt1DeSiCP9mc2NMMkqVgjIN3DDsNpKmezffGC9R8XKVOLmBkRUcK/sA==}
+ '@rollup/rollup-linux-x64-gnu@4.50.0':
+ resolution: {integrity: sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.49.0':
- resolution: {integrity: sha512-hDMOAe+6nX3V5ei1I7Au3wcr9h3ktKzDvF2ne5ovX8RZiAHEtX1A5SNNk4zt1Qt77CmnbqT+upb/umzoPMWiPg==}
+ '@rollup/rollup-linux-x64-musl@4.50.0':
+ resolution: {integrity: sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-win32-arm64-msvc@4.49.0':
- resolution: {integrity: sha512-wkNRzfiIGaElC9kXUT+HLx17z7D0jl+9tGYRKwd8r7cUqTL7GYAvgUY++U2hK6Ar7z5Z6IRRoWC8kQxpmM7TDA==}
+ '@rollup/rollup-openharmony-arm64@4.50.0':
+ resolution: {integrity: sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@rollup/rollup-win32-arm64-msvc@4.50.0':
+ resolution: {integrity: sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.49.0':
- resolution: {integrity: sha512-gq5aW/SyNpjp71AAzroH37DtINDcX1Qw2iv9Chyz49ZgdOP3NV8QCyKZUrGsYX9Yyggj5soFiRCgsL3HwD8TdA==}
+ '@rollup/rollup-win32-ia32-msvc@4.50.0':
+ resolution: {integrity: sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.49.0':
- resolution: {integrity: sha512-gEtqFbzmZLFk2xKh7g0Rlo8xzho8KrEFEkzvHbfUGkrgXOpZ4XagQ6n+wIZFNh1nTb8UD16J4nFSFKXYgnbdBg==}
+ '@rollup/rollup-win32-x64-msvc@4.50.0':
+ resolution: {integrity: sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==}
cpu: [x64]
os: [win32]
- '@schematics/angular@20.2.1':
- resolution: {integrity: sha512-7Vx11KWooiqxP206JEVgz3cp0rRv31PYnocNoPM6UqLhGtlvL9GdgaZHzDhGFEm0hv6DUFrbTGIzB89gXc54Xg==}
+ '@schematics/angular@20.2.2':
+ resolution: {integrity: sha512-VzJsEIiBmHzJAOVaKHn1CwTuOqvI1GwZuneUk/tmyYKkKdWEgxnoNBvz1ql6eHstkLz3S9yt6aUuAgjQC+J2Xw==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
'@sigstore/bundle@3.1.0':
@@ -1382,63 +1408,109 @@ packages:
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
- '@typescript-eslint/eslint-plugin@8.41.0':
- resolution: {integrity: sha512-8fz6oa6wEKZrhXWro/S3n2eRJqlRcIa6SlDh59FXJ5Wp5XRZ8B9ixpJDcjadHq47hMx0u+HW6SNa6LjJQ6NLtw==}
+ '@types/sinonjs__fake-timers@8.1.1':
+ resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==}
+
+ '@types/sizzle@2.3.10':
+ resolution: {integrity: sha512-TC0dmN0K8YcWEAEfiPi5gJP14eJe30TTGjkvek3iM/1NdHHsdCA/Td6GvNndMOo/iSnIsZ4HuuhrYPDAmbxzww==}
+
+ '@types/yauzl@2.10.3':
+ resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
+
+ '@typescript-eslint/eslint-plugin@8.40.0':
+ resolution: {integrity: sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.41.0
+ '@typescript-eslint/parser': ^8.40.0
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/parser@8.41.0':
- resolution: {integrity: sha512-gTtSdWX9xiMPA/7MV9STjJOOYtWwIJIYxkQxnSV1U3xcE+mnJSH3f6zI0RYP+ew66WSlZ5ed+h0VCxsvdC1jJg==}
+ '@typescript-eslint/parser@8.40.0':
+ resolution: {integrity: sha512-jCNyAuXx8dr5KJMkecGmZ8KI61KBUhkCob+SD+C+I5+Y1FWI2Y3QmY4/cxMCC5WAsZqoEtEETVhUiUMIGCf6Bw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/project-service@8.41.0':
- resolution: {integrity: sha512-b8V9SdGBQzQdjJ/IO3eDifGpDBJfvrNTp2QD9P2BeqWTGrRibgfgIlBSw6z3b6R7dPzg752tOs4u/7yCLxksSQ==}
+ '@typescript-eslint/project-service@8.40.0':
+ resolution: {integrity: sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/project-service@8.42.0':
+ resolution: {integrity: sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/scope-manager@8.41.0':
- resolution: {integrity: sha512-n6m05bXn/Cd6DZDGyrpXrELCPVaTnLdPToyhBoFkLIMznRUQUEQdSp96s/pcWSQdqOhrgR1mzJ+yItK7T+WPMQ==}
+ '@typescript-eslint/scope-manager@8.40.0':
+ resolution: {integrity: sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/scope-manager@8.42.0':
+ resolution: {integrity: sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/tsconfig-utils@8.40.0':
+ resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/tsconfig-utils@8.41.0':
- resolution: {integrity: sha512-TDhxYFPUYRFxFhuU5hTIJk+auzM/wKvWgoNYOPcOf6i4ReYlOoYN8q1dV5kOTjNQNJgzWN3TUUQMtlLOcUgdUw==}
+ '@typescript-eslint/tsconfig-utils@8.42.0':
+ resolution: {integrity: sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/type-utils@8.41.0':
- resolution: {integrity: sha512-63qt1h91vg3KsjVVonFJWjgSK7pZHSQFKH6uwqxAH9bBrsyRhO6ONoKyXxyVBzG1lJnFAJcKAcxLS54N1ee1OQ==}
+ '@typescript-eslint/type-utils@8.40.0':
+ resolution: {integrity: sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/types@8.41.0':
- resolution: {integrity: sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==}
+ '@typescript-eslint/types@8.40.0':
+ resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/types@8.42.0':
+ resolution: {integrity: sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/typescript-estree@8.40.0':
+ resolution: {integrity: sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/typescript-estree@8.42.0':
+ resolution: {integrity: sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/typescript-estree@8.41.0':
- resolution: {integrity: sha512-D43UwUYJmGhuwHfY7MtNKRZMmfd8+p/eNSfFe6tH5mbVDto+VQCayeAt35rOx3Cs6wxD16DQtIKw/YXxt5E0UQ==}
+ '@typescript-eslint/utils@8.40.0':
+ resolution: {integrity: sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/utils@8.41.0':
- resolution: {integrity: sha512-udbCVstxZ5jiPIXrdH+BZWnPatjlYwJuJkDA4Tbo3WyYLh8NvB+h/bKeSZHDOFKfphsZYJQqaFtLeXEqurQn1A==}
+ '@typescript-eslint/utils@8.42.0':
+ resolution: {integrity: sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/visitor-keys@8.41.0':
- resolution: {integrity: sha512-+GeGMebMCy0elMNg67LRNoVnUFPIm37iu5CmHESVx56/9Jsfdpsvbv605DQ81Pi/x11IdKUsS5nzgTYbCQU9fg==}
+ '@typescript-eslint/visitor-keys@8.40.0':
+ resolution: {integrity: sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/visitor-keys@8.42.0':
+ resolution: {integrity: sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@vitejs/plugin-basic-ssl@2.1.0':
@@ -1476,6 +1548,10 @@ packages:
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines: {node: '>= 14'}
+ aggregate-error@3.1.0:
+ resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
+ engines: {node: '>=8'}
+
ajv-formats@3.0.1:
resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==}
peerDependencies:
@@ -1501,6 +1577,10 @@ packages:
typescript: '*'
typescript-eslint: ^8.0.0
+ ansi-colors@4.1.3:
+ resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
+ engines: {node: '>=6'}
+
ansi-escapes@4.3.2:
resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
engines: {node: '>=8'}
@@ -1533,6 +1613,9 @@ packages:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
+ arch@2.2.0:
+ resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==}
+
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@@ -1540,6 +1623,30 @@ packages:
resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
engines: {node: '>= 0.4'}
+ asn1@0.2.6:
+ resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==}
+
+ assert-plus@1.0.0:
+ resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==}
+ engines: {node: '>=0.8'}
+
+ astral-regex@2.0.0:
+ resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
+ engines: {node: '>=8'}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ at-least-node@1.0.0:
+ resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
+ engines: {node: '>= 4.0.0'}
+
+ aws-sign2@0.7.0:
+ resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==}
+
+ aws4@1.13.2:
+ resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==}
+
axobject-query@4.1.0:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
@@ -1547,10 +1654,16 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
base64id@2.0.0:
resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==}
engines: {node: ^4.5.0 || >= 5.9}
+ bcrypt-pbkdf@1.0.2:
+ resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==}
+
beasties@0.3.5:
resolution: {integrity: sha512-NaWu+f4YrJxEttJSm16AzMIFtVldCvaJ68b1L098KpqXmxt9xOLtKoLkKxb8ekhOrLqEJAbvT6n6SEvB/sac7A==}
engines: {node: '>=14.0.0'}
@@ -1559,6 +1672,12 @@ packages:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
+ blob-util@2.0.2:
+ resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==}
+
+ bluebird@3.7.2:
+ resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
+
body-parser@1.20.3:
resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@@ -1580,14 +1699,23 @@ packages:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
- browserslist@4.25.3:
- resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==}
+ browser-stdout@1.3.1:
+ resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
+
+ browserslist@4.25.4:
+ resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
+ buffer-crc32@0.2.13:
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+ buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+
builtin-modules@3.3.0:
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
engines: {node: '>=6'}
@@ -1604,6 +1732,10 @@ packages:
resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==}
engines: {node: ^18.17.0 || >=20.5.0}
+ cachedir@2.4.0:
+ resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==}
+ engines: {node: '>=6'}
+
call-bind-apply-helpers@1.0.2:
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: '>= 0.4'}
@@ -1616,8 +1748,15 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- caniuse-lite@1.0.30001737:
- resolution: {integrity: sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==}
+ camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ caniuse-lite@1.0.30001739:
+ resolution: {integrity: sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==}
+
+ caseless@0.12.0:
+ resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
@@ -1630,6 +1769,10 @@ packages:
chardet@2.1.0:
resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==}
+ check-more-types@2.24.0:
+ resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==}
+ engines: {node: '>= 0.8.0'}
+
chokidar@3.6.0:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
@@ -1654,6 +1797,14 @@ packages:
resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
engines: {node: '>=4'}
+ clean-stack@2.2.0:
+ resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
+ engines: {node: '>=6'}
+
+ cli-cursor@3.1.0:
+ resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
+ engines: {node: '>=8'}
+
cli-cursor@5.0.0:
resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
engines: {node: '>=18'}
@@ -1662,6 +1813,14 @@ packages:
resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
engines: {node: '>=6'}
+ cli-table3@0.6.1:
+ resolution: {integrity: sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==}
+ engines: {node: 10.* || >= 12.*}
+
+ cli-truncate@2.1.0:
+ resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}
+ engines: {node: '>=8'}
+
cli-truncate@4.0.0:
resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
engines: {node: '>=18'}
@@ -1673,6 +1832,10 @@ packages:
cliui@7.0.4:
resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+
cliui@9.0.1:
resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==}
engines: {node: '>=20'}
@@ -1687,6 +1850,22 @@ packages:
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+ colors@1.4.0:
+ resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==}
+ engines: {node: '>=0.1.90'}
+
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
+ commander@6.2.1:
+ resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==}
+ engines: {node: '>= 6'}
+
+ common-tags@1.8.2:
+ resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==}
+ engines: {node: '>=4.0.0'}
+
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
@@ -1719,6 +1898,9 @@ packages:
core-js-compat@3.45.1:
resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==}
+ core-util-is@1.0.2:
+ resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
+
cors@2.8.5:
resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
engines: {node: '>= 0.10'}
@@ -1737,10 +1919,31 @@ packages:
custom-event@1.0.1:
resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==}
+ cypress-multi-reporters@2.0.5:
+ resolution: {integrity: sha512-5ReXlNE7C/9/rpDI3z0tAJbPXsTHK7P3ogvUtBntQlmctRQ+sSMts7dIQY5MTb0XfBSge3CuwvNvaoqtw90KSQ==}
+ engines: {node: '>=6.0.0'}
+ peerDependencies:
+ mocha: '>=3.1.2'
+
+ cypress@15.1.0:
+ resolution: {integrity: sha512-jS4EfyOa2W5KXCN02WBdmy4bpBBmLGe+INhZeCvzRksfJuzBSYp3rNg2G+hfOwPzM+wwMwOYCo/kEnH+5RsSjA==}
+ engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
+ hasBin: true
+
+ dashdash@1.14.1:
+ resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==}
+ engines: {node: '>=0.10'}
+
date-format@4.0.14:
resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==}
engines: {node: '>=4.0'}
+ dateformat@4.6.3:
+ resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
+
+ dayjs@1.11.18:
+ resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==}
+
debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
@@ -1749,6 +1952,14 @@ packages:
supports-color:
optional: true
+ debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
debug@4.3.7:
resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
engines: {node: '>=6.0'}
@@ -1767,9 +1978,17 @@ packages:
supports-color:
optional: true
+ decamelize@4.0.0:
+ resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
+ engines: {node: '>=10'}
+
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
depd@2.0.0:
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
engines: {node: '>= 0.8'}
@@ -1790,6 +2009,14 @@ packages:
di@0.0.1:
resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==}
+ diff@5.2.0:
+ resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
+ engines: {node: '>=0.3.1'}
+
+ diff@7.0.0:
+ resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==}
+ engines: {node: '>=0.3.1'}
+
dom-serialize@2.2.1:
resolution: {integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==}
@@ -1813,14 +2040,17 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ ecc-jsbn@0.1.2:
+ resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==}
+
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- electron-to-chromium@1.5.211:
- resolution: {integrity: sha512-IGBvimJkotaLzFnwIVgW9/UD/AOJ2tByUmeOrtqBfACSbAw5b1G0XpvdaieKyc7ULmbwXVx+4e4Be8pOPBrYkw==}
+ electron-to-chromium@1.5.214:
+ resolution: {integrity: sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==}
- emoji-regex@10.4.0:
- resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==}
+ emoji-regex@10.5.0:
+ resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==}
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -1839,6 +2069,9 @@ packages:
encoding@0.1.13:
resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
+ end-of-stream@1.4.5:
+ resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
+
engine.io-parser@5.2.3:
resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
engines: {node: '>=10.0.0'}
@@ -1847,6 +2080,10 @@ packages:
resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==}
engines: {node: '>=10.2.0'}
+ enquirer@2.4.1:
+ resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
+ engines: {node: '>=8.6'}
+
ent@2.2.2:
resolution: {integrity: sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==}
engines: {node: '>= 0.4'}
@@ -1882,6 +2119,10 @@ packages:
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
engines: {node: '>= 0.4'}
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
esbuild@0.25.9:
resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==}
engines: {node: '>=18'}
@@ -1979,20 +2220,31 @@ packages:
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
engines: {node: '>= 0.6'}
+ eventemitter2@6.4.7:
+ resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==}
+
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
eventemitter3@5.0.1:
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
- eventsource-parser@3.0.5:
- resolution: {integrity: sha512-bSRG85ZrMdmWtm7qkF9He9TNRzc/Bm99gEJMaQoHJ9E6Kv9QBbsldh2oMj7iXmYNEAVvNgvv5vPorG6W+XtBhQ==}
- engines: {node: '>=20.0.0'}
+ eventsource-parser@3.0.6:
+ resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==}
+ engines: {node: '>=18.0.0'}
eventsource@3.0.7:
resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==}
engines: {node: '>=18.0.0'}
+ execa@4.1.0:
+ resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==}
+ engines: {node: '>=10'}
+
+ executable@4.1.1:
+ resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==}
+ engines: {node: '>=4'}
+
exponential-backoff@3.1.2:
resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==}
@@ -2009,6 +2261,15 @@ packages:
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+ extract-zip@2.0.1:
+ resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
+ engines: {node: '>= 10.17.0'}
+ hasBin: true
+
+ extsprintf@1.3.0:
+ resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==}
+ engines: {'0': node >=0.6.0}
+
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -2031,6 +2292,9 @@ packages:
fastq@1.19.1:
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
+ fd-slicer@1.1.0:
+ resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
+
fdir@6.5.0:
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
engines: {node: '>=12.0.0'}
@@ -2040,6 +2304,10 @@ packages:
picomatch:
optional: true
+ figures@3.2.0:
+ resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
+ engines: {node: '>=8'}
+
file-entry-cache@8.0.0:
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
engines: {node: '>=16.0.0'}
@@ -2068,6 +2336,10 @@ packages:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
+ flat@5.0.2:
+ resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
+ hasBin: true
+
flatted@3.3.3:
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
@@ -2084,6 +2356,13 @@ packages:
resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'}
+ forever-agent@0.6.1:
+ resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==}
+
+ form-data@4.0.4:
+ resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
+ engines: {node: '>= 6'}
+
forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
@@ -2092,10 +2371,18 @@ packages:
resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
engines: {node: '>= 0.8'}
+ fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+
fs-extra@8.1.0:
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
engines: {node: '>=6 <7 || >=8'}
+ fs-extra@9.1.0:
+ resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
+ engines: {node: '>=10'}
+
fs-minipass@2.1.0:
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
engines: {node: '>= 8'}
@@ -2112,6 +2399,9 @@ packages:
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
+ fsu@1.1.1:
+ resolution: {integrity: sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A==}
+
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
@@ -2126,8 +2416,8 @@ packages:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
- get-east-asian-width@1.3.0:
- resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==}
+ get-east-asian-width@1.3.1:
+ resolution: {integrity: sha512-R1QfovbPsKmosqTnPoRFiJ7CF9MLRgb53ChvMZm+r4p76/+8yKDy17qLL2PKInORy2RkZZekuK0efYgmzTkXyQ==}
engines: {node: '>=18'}
get-intrinsic@1.3.0:
@@ -2138,6 +2428,13 @@ packages:
resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
engines: {node: '>= 0.4'}
+ get-stream@5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+
+ getpass@0.1.7:
+ resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==}
+
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -2157,6 +2454,10 @@ packages:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
+ global-dirs@3.0.1:
+ resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
+ engines: {node: '>=10'}
+
globals@14.0.0:
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines: {node: '>=18'}
@@ -2187,10 +2488,18 @@ packages:
resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
engines: {node: '>= 0.4'}
+ hasha@5.2.2:
+ resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==}
+ engines: {node: '>=8'}
+
hasown@2.0.2:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
+ he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+
hosted-git-info@7.0.2:
resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
engines: {node: ^16.14.0 || >=18.0.0}
@@ -2224,10 +2533,18 @@ packages:
resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
engines: {node: '>=8.0.0'}
+ http-signature@1.4.0:
+ resolution: {integrity: sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==}
+ engines: {node: '>=0.10'}
+
https-proxy-agent@7.0.6:
resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
engines: {node: '>= 14'}
+ human-signals@1.1.1:
+ resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
+ engines: {node: '>=8.12.0'}
+
iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
@@ -2236,6 +2553,13 @@ packages:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'}
+ iconv-lite@0.7.0:
+ resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==}
+ engines: {node: '>=0.10.0'}
+
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
ignore-walk@8.0.0:
resolution: {integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==}
engines: {node: ^20.17.0 || >=22.9.0}
@@ -2259,6 +2583,10 @@ packages:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
+ indent-string@4.0.0:
+ resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
+ engines: {node: '>=8'}
+
indent-string@5.0.0:
resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
engines: {node: '>=12'}
@@ -2274,6 +2602,10 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ ini@2.0.0:
+ resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
+ engines: {node: '>=10'}
+
ini@5.0.0:
resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==}
engines: {node: ^18.17.0 || >=20.5.0}
@@ -2310,14 +2642,18 @@ packages:
resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
engines: {node: '>=12'}
- is-fullwidth-code-point@5.0.0:
- resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
+ is-fullwidth-code-point@5.1.0:
+ resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==}
engines: {node: '>=18'}
is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
+ is-installed-globally@0.4.0:
+ resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
+ engines: {node: '>=10'}
+
is-interactive@2.0.0:
resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}
engines: {node: '>=12'}
@@ -2326,6 +2662,14 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
+ is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+
+ is-plain-obj@2.1.0:
+ resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
+ engines: {node: '>=8'}
+
is-promise@4.0.0:
resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
@@ -2333,6 +2677,17 @@ packages:
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines: {node: '>= 0.4'}
+ is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
+ is-typedarray@1.0.0:
+ resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
+
+ is-unicode-supported@0.1.0:
+ resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
+ engines: {node: '>=10'}
+
is-unicode-supported@1.3.0:
resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==}
engines: {node: '>=12'}
@@ -2352,6 +2707,9 @@ packages:
resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
engines: {node: '>=16'}
+ isstream@0.1.2:
+ resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
+
istanbul-lib-coverage@3.2.2:
resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
engines: {node: '>=8'}
@@ -2392,6 +2750,9 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
+ jsbn@0.1.1:
+ resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
+
jsesc@3.0.2:
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
engines: {node: '>=6'}
@@ -2415,9 +2776,15 @@ packages:
json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ json-schema@0.4.0:
+ resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
+
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+ json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+
json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
@@ -2429,10 +2796,17 @@ packages:
jsonfile@4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+ jsonfile@6.2.0:
+ resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==}
+
jsonparse@1.3.1:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ jsprim@2.0.2:
+ resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==}
+ engines: {'0': node >=0.6.0}
+
jsx-ast-utils-x@0.1.0:
resolution: {integrity: sha512-eQQBjBnsVtGacsG9uJNB8qOr3yA8rga4wAaGG1qRcBzSIvfhERLrWxMAM1hp5fcS6Abo8M4+bUBTekYR0qTPQw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2465,10 +2839,23 @@ packages:
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+ lazy-ass@1.6.0:
+ resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==}
+ engines: {node: '> 0.8'}
+
levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
+ listr2@3.14.0:
+ resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ enquirer: '>= 2.3.0 < 3'
+ peerDependenciesMeta:
+ enquirer:
+ optional: true
+
listr2@9.0.1:
resolution: {integrity: sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==}
engines: {node: '>=20.0.0'}
@@ -2481,16 +2868,39 @@ packages:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
+ lodash.isempty@4.4.0:
+ resolution: {integrity: sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==}
+
+ lodash.isfunction@3.0.9:
+ resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==}
+
+ lodash.isobject@3.0.2:
+ resolution: {integrity: sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==}
+
+ lodash.isstring@4.0.1:
+ resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
+
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ lodash.once@4.1.1:
+ resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
+
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+
log-symbols@6.0.0:
resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==}
engines: {node: '>=18'}
+ log-update@4.0.0:
+ resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==}
+ engines: {node: '>=10'}
+
log-update@6.1.0:
resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
engines: {node: '>=18'}
@@ -2499,11 +2909,15 @@ packages:
resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==}
engines: {node: '>=8.0'}
+ loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
- lru-cache@11.1.0:
- resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==}
+ lru-cache@11.2.1:
+ resolution: {integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==}
engines: {node: 20 || >=22}
lru-cache@5.1.1:
@@ -2536,6 +2950,9 @@ packages:
resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==}
engines: {node: '>=18'}
+ merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
@@ -2565,6 +2982,10 @@ packages:
engines: {node: '>=4.0.0'}
hasBin: true
+ mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+
mimic-function@5.0.1:
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
engines: {node: '>=18'}
@@ -2641,6 +3062,20 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ mocha@11.7.2:
+ resolution: {integrity: sha512-lkqVJPmqqG/w5jmmFtiRvtA2jkDyNVUcefFJKb2uyX4dekk8Okgqop3cgbFiaIvj8uCRJVTP5x9dfxGyXm2jvQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+
+ mochawesome-report-generator@6.2.0:
+ resolution: {integrity: sha512-Ghw8JhQFizF0Vjbtp9B0i//+BOkV5OWcQCPpbO0NGOoxV33o+gKDYU0Pr2pGxkIHnqZ+g5mYiXF7GMNgAcDpSg==}
+ hasBin: true
+
+ mochawesome@7.1.3:
+ resolution: {integrity: sha512-Vkb3jR5GZ1cXohMQQ73H3cZz7RoxGjjUo0G5hu0jLaW+0FdUxUwg3Cj29bqQdh0rFcnyV06pWmqmi5eBPnEuNQ==}
+ peerDependencies:
+ mocha: '>=7'
+
mrmime@2.0.1:
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
engines: {node: '>=10'}
@@ -2741,6 +3176,10 @@ packages:
resolution: {integrity: sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==}
engines: {node: ^18.17.0 || >=20.5.0}
+ npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
@@ -2763,10 +3202,18 @@ packages:
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+
onetime@7.0.0:
resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
engines: {node: '>=18'}
+ opener@1.5.2:
+ resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
+ hasBin: true
+
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
@@ -2778,6 +3225,9 @@ packages:
ordered-binary@1.6.0:
resolution: {integrity: sha512-IQh2aMfMIDbPjI/8a3Edr+PiOpcsB7yo8NdW7aHWVaoR/pcDldunMvnnwbk/auPGqmKeAdxtZl7MHX/QmPwhvQ==}
+ ospath@1.2.2:
+ resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==}
+
p-limit@3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
@@ -2786,6 +3236,10 @@ packages:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
+ p-map@4.0.0:
+ resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
+ engines: {node: '>=10'}
+
p-map@7.0.3:
resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==}
engines: {node: '>=18'}
@@ -2838,9 +3292,14 @@ packages:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
- path-to-regexp@8.2.0:
- resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==}
- engines: {node: '>=16'}
+ path-to-regexp@8.3.0:
+ resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==}
+
+ pend@1.2.0:
+ resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
+
+ performance-now@2.1.0:
+ resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -2853,6 +3312,10 @@ packages:
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
engines: {node: '>=12'}
+ pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+
piscina@5.1.3:
resolution: {integrity: sha512-0u3N7H4+hbr40KjuVn2uNhOcthu/9usKhnw5vT3J7ply79v3D3M8naI00el9Klcy16x557VsEkkUQaHCWFXC/g==}
engines: {node: '>=20.x'}
@@ -2885,18 +3348,35 @@ packages:
engines: {node: '>=14'}
hasBin: true
+ pretty-bytes@5.6.0:
+ resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
+ engines: {node: '>=6'}
+
proc-log@5.0.0:
resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==}
engines: {node: ^18.17.0 || >=20.5.0}
+ process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+
promise-retry@2.0.1:
resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
engines: {node: '>=10'}
+ prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+
proxy-addr@2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
+ proxy-from-env@1.0.0:
+ resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==}
+
+ pump@3.0.3:
+ resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
+
punycode@1.4.1:
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
@@ -2919,6 +3399,9 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
range-parser@1.2.1:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
@@ -2927,9 +3410,12 @@ packages:
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
engines: {node: '>= 0.8'}
- raw-body@3.0.0:
- resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==}
- engines: {node: '>= 0.8'}
+ raw-body@3.0.1:
+ resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==}
+ engines: {node: '>= 0.10'}
+
+ react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
read-package-up@11.0.0:
resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==}
@@ -2966,6 +3452,9 @@ packages:
resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==}
hasBin: true
+ request-progress@3.0.0:
+ resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==}
+
require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@@ -2986,6 +3475,10 @@ packages:
engines: {node: '>= 0.4'}
hasBin: true
+ restore-cursor@3.1.0:
+ resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
+ engines: {node: '>=8'}
+
restore-cursor@5.1.0:
resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
engines: {node: '>=18'}
@@ -3010,8 +3503,8 @@ packages:
resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==}
hasBin: true
- rollup@4.49.0:
- resolution: {integrity: sha512-3IVq0cGJ6H7fKXXEdVt+RcYvRCt8beYY9K1760wGQwSAHZcS9eot1zDG5axUbcp/kWRi5zKIIDX8MoKv/TzvZA==}
+ rollup@4.50.0:
+ resolution: {integrity: sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -3057,6 +3550,9 @@ packages:
resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==}
engines: {node: '>= 18'}
+ serialize-javascript@6.0.2:
+ resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+
serve-static@2.2.0:
resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==}
engines: {node: '>= 18'}
@@ -3088,6 +3584,9 @@ packages:
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
engines: {node: '>= 0.4'}
+ signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
@@ -3096,6 +3595,14 @@ packages:
resolution: {integrity: sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==}
engines: {node: ^18.17.0 || >=20.5.0}
+ slice-ansi@3.0.0:
+ resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
+ engines: {node: '>=8'}
+
+ slice-ansi@4.0.0:
+ resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
+ engines: {node: '>=10'}
+
slice-ansi@5.0.0:
resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
engines: {node: '>=12'}
@@ -3154,6 +3661,11 @@ packages:
spdx-license-ids@3.0.22:
resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==}
+ sshpk@1.18.0:
+ resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+
ssri@12.0.0:
resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==}
engines: {node: ^18.17.0 || >=20.5.0}
@@ -3198,6 +3710,10 @@ packages:
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
engines: {node: '>=12'}
+ strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+
strip-indent@4.0.0:
resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
engines: {node: '>=12'}
@@ -3210,6 +3726,10 @@ packages:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
+ supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+
supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
@@ -3218,6 +3738,12 @@ packages:
resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
engines: {node: ^14.18.0 || >=16.0.0}
+ systeminformation@5.27.7:
+ resolution: {integrity: sha512-saaqOoVEEFaux4v0K8Q7caiauRwjXC4XbD2eH60dxHXbpKxQ8kH9Rf7Jh+nryKpOUSEFxtCdBlSUx0/lO6rwRg==}
+ engines: {node: '>=8.0.0'}
+ os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
+ hasBin: true
+
tar@6.2.1:
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
engines: {node: '>=10'}
@@ -3226,10 +3752,29 @@ packages:
resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==}
engines: {node: '>=18'}
+ tcomb-validation@3.4.1:
+ resolution: {integrity: sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA==}
+
+ tcomb@3.2.29:
+ resolution: {integrity: sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==}
+
+ throttleit@1.0.1:
+ resolution: {integrity: sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==}
+
+ through@2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+
tinyglobby@0.2.14:
resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
engines: {node: '>=12.0.0'}
+ tldts-core@6.1.86:
+ resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
+
+ tldts@6.1.86:
+ resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==}
+ hasBin: true
+
tmp@0.2.5:
resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==}
engines: {node: '>=14.14'}
@@ -3242,6 +3787,14 @@ packages:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
+ tough-cookie@5.1.2:
+ resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==}
+ engines: {node: '>=16'}
+
+ tree-kill@1.2.2:
+ resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
+ hasBin: true
+
ts-api-utils@2.1.0:
resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
engines: {node: '>=18.12'}
@@ -3255,7 +3808,13 @@ packages:
resolution: {integrity: sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==}
engines: {node: ^18.17.0 || >=20.5.0}
- type-check@0.4.0:
+ tunnel-agent@0.6.0:
+ resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
+
+ tweetnacl@0.14.5:
+ resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==}
+
+ type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
@@ -3263,6 +3822,10 @@ packages:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
+ type-fest@0.8.1:
+ resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
+ engines: {node: '>=8'}
+
type-fest@4.41.0:
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
engines: {node: '>=16'}
@@ -3275,8 +3838,8 @@ packages:
resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==}
engines: {node: '>= 0.6'}
- typescript-eslint@8.41.0:
- resolution: {integrity: sha512-n66rzs5OBXW3SFSnZHr2T685q1i4ODm2nulFJhMZBotaTavsS8TrI3d7bDlRSs9yWo7HmyWrN9qDu14Qv7Y0Dw==}
+ typescript-eslint@8.40.0:
+ resolution: {integrity: sha512-Xvd2l+ZmFDPEt4oj1QEXzA4A2uUK6opvKu3eGN9aGjB8au02lIVcLyi375w94hHyejTOmzIU77L8ol2sRg9n7Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -3310,10 +3873,18 @@ packages:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
unpipe@1.0.0:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
+ untildify@4.0.0:
+ resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
+ engines: {node: '>=8'}
+
update-browserslist-db@1.1.3:
resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
hasBin: true
@@ -3327,6 +3898,10 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
+ uuid@8.3.2:
+ resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
+ hasBin: true
+
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
@@ -3334,10 +3909,18 @@ packages:
resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==}
engines: {node: ^18.17.0 || >=20.5.0}
+ validator@13.15.15:
+ resolution: {integrity: sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A==}
+ engines: {node: '>= 0.10'}
+
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
+ verror@1.10.0:
+ resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==}
+ engines: {'0': node >=0.6.0}
+
vite@7.1.2:
resolution: {integrity: sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -3407,6 +3990,9 @@ packages:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
+ workerpool@9.3.3:
+ resolution: {integrity: sha512-slxCaKbYjEdFT/o2rH9xS1hf4uRDch1w7Uo+apxhZ+sf/1d9e0ZVkn42kPNGP2dgjIx6YFvSevj0zHvbWe2jdw==}
+
wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
@@ -3456,18 +4042,33 @@ packages:
resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
engines: {node: '>=10'}
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
yargs-parser@22.0.0:
resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==}
engines: {node: ^20.19.0 || ^22.12.0 || >=23}
+ yargs-unparser@2.0.0:
+ resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
+ engines: {node: '>=10'}
+
yargs@16.2.0:
resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
engines: {node: '>=10'}
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+
yargs@18.0.0:
resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==}
engines: {node: ^20.19.0 || ^22.12.0 || >=23}
+ yauzl@2.10.0:
+ resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
+
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
@@ -3578,14 +4179,14 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.13
'@jridgewell/trace-mapping': 0.3.30
- '@angular-devkit/architect@0.2002.1(chokidar@4.0.3)':
+ '@angular-devkit/architect@0.2002.2(chokidar@4.0.3)':
dependencies:
- '@angular-devkit/core': 20.2.1(chokidar@4.0.3)
+ '@angular-devkit/core': 20.2.2(chokidar@4.0.3)
rxjs: 7.8.2
transitivePeerDependencies:
- chokidar
- '@angular-devkit/core@20.2.1(chokidar@4.0.3)':
+ '@angular-devkit/core@20.2.2(chokidar@4.0.3)':
dependencies:
ajv: 8.17.1
ajv-formats: 3.0.1(ajv@8.17.1)
@@ -3596,9 +4197,9 @@ snapshots:
optionalDependencies:
chokidar: 4.0.3
- '@angular-devkit/schematics@20.2.1(chokidar@4.0.3)':
+ '@angular-devkit/schematics@20.2.2(chokidar@4.0.3)':
dependencies:
- '@angular-devkit/core': 20.2.1(chokidar@4.0.3)
+ '@angular-devkit/core': 20.2.2(chokidar@4.0.3)
jsonc-parser: 3.3.1
magic-string: 0.30.17
ora: 8.2.0
@@ -3608,8 +4209,8 @@ snapshots:
'@angular-eslint/builder@20.2.0(chokidar@4.0.3)(eslint@9.34.0)(typescript@5.9.2)':
dependencies:
- '@angular-devkit/architect': 0.2002.1(chokidar@4.0.3)
- '@angular-devkit/core': 20.2.1(chokidar@4.0.3)
+ '@angular-devkit/architect': 0.2002.2(chokidar@4.0.3)
+ '@angular-devkit/core': 20.2.2(chokidar@4.0.3)
eslint: 9.34.0
typescript: 5.9.2
transitivePeerDependencies:
@@ -3617,33 +4218,33 @@ snapshots:
'@angular-eslint/bundled-angular-compiler@20.2.0': {}
- '@angular-eslint/eslint-plugin-template@20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.41.0)(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)':
+ '@angular-eslint/eslint-plugin-template@20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.42.0)(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)':
dependencies:
'@angular-eslint/bundled-angular-compiler': 20.2.0
'@angular-eslint/template-parser': 20.2.0(eslint@9.34.0)(typescript@5.9.2)
- '@angular-eslint/utils': 20.2.0(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
- '@typescript-eslint/types': 8.41.0
- '@typescript-eslint/utils': 8.41.0(eslint@9.34.0)(typescript@5.9.2)
+ '@angular-eslint/utils': 20.2.0(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
+ '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/utils': 8.42.0(eslint@9.34.0)(typescript@5.9.2)
aria-query: 5.3.2
axobject-query: 4.1.0
eslint: 9.34.0
typescript: 5.9.2
- '@angular-eslint/eslint-plugin@20.2.0(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)':
+ '@angular-eslint/eslint-plugin@20.2.0(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)':
dependencies:
'@angular-eslint/bundled-angular-compiler': 20.2.0
- '@angular-eslint/utils': 20.2.0(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
- '@typescript-eslint/utils': 8.41.0(eslint@9.34.0)(typescript@5.9.2)
+ '@angular-eslint/utils': 20.2.0(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.42.0(eslint@9.34.0)(typescript@5.9.2)
eslint: 9.34.0
ts-api-utils: 2.1.0(typescript@5.9.2)
typescript: 5.9.2
- '@angular-eslint/schematics@20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.41.0)(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(chokidar@4.0.3)(eslint@9.34.0)(typescript@5.9.2)':
+ '@angular-eslint/schematics@20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.42.0)(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(chokidar@4.0.3)(eslint@9.34.0)(typescript@5.9.2)':
dependencies:
- '@angular-devkit/core': 20.2.1(chokidar@4.0.3)
- '@angular-devkit/schematics': 20.2.1(chokidar@4.0.3)
- '@angular-eslint/eslint-plugin': 20.2.0(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
- '@angular-eslint/eslint-plugin-template': 20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.41.0)(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
+ '@angular-devkit/core': 20.2.2(chokidar@4.0.3)
+ '@angular-devkit/schematics': 20.2.2(chokidar@4.0.3)
+ '@angular-eslint/eslint-plugin': 20.2.0(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
+ '@angular-eslint/eslint-plugin-template': 20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.42.0)(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
ignore: 7.0.5
semver: 7.7.2
strip-json-comments: 3.1.1
@@ -3662,26 +4263,26 @@ snapshots:
eslint-scope: 8.4.0
typescript: 5.9.2
- '@angular-eslint/utils@20.2.0(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)':
+ '@angular-eslint/utils@20.2.0(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)':
dependencies:
'@angular-eslint/bundled-angular-compiler': 20.2.0
- '@typescript-eslint/utils': 8.41.0(eslint@9.34.0)(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.42.0(eslint@9.34.0)(typescript@5.9.2)
eslint: 9.34.0
typescript: 5.9.2
- '@angular/build@20.2.1(@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2))(@angular/compiler@20.2.2)(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@24.3.0)(chokidar@4.0.3)(karma@6.4.4)(postcss@8.5.6)(tslib@2.8.1)(typescript@5.9.2)':
+ '@angular/build@20.2.2(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.9.2))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@24.3.0)(chokidar@4.0.3)(karma@6.4.4)(postcss@8.5.6)(tslib@2.8.1)(typescript@5.9.2)':
dependencies:
'@ampproject/remapping': 2.3.0
- '@angular-devkit/architect': 0.2002.1(chokidar@4.0.3)
- '@angular/compiler': 20.2.2
- '@angular/compiler-cli': 20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2)
+ '@angular-devkit/architect': 0.2002.2(chokidar@4.0.3)
+ '@angular/compiler': 20.2.4
+ '@angular/compiler-cli': 20.2.4(@angular/compiler@20.2.4)(typescript@5.9.2)
'@babel/core': 7.28.3
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-split-export-declaration': 7.24.7
'@inquirer/confirm': 5.1.14(@types/node@24.3.0)
'@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.2(@types/node@24.3.0)(sass@1.90.0))
beasties: 0.3.5
- browserslist: 4.25.3
+ browserslist: 4.25.4
esbuild: 0.25.9
https-proxy-agent: 7.0.6
istanbul-lib-instrument: 6.0.3
@@ -3702,8 +4303,8 @@ snapshots:
vite: 7.1.2(@types/node@24.3.0)(sass@1.90.0)
watchpack: 2.4.4
optionalDependencies:
- '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)
- '@angular/platform-browser': 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))
+ '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/platform-browser': 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))
karma: 6.4.4
lmdb: 3.4.2
postcss: 8.5.6
@@ -3720,15 +4321,15 @@ snapshots:
- tsx
- yaml
- '@angular/cli@20.2.1(@types/node@24.3.0)(chokidar@4.0.3)':
+ '@angular/cli@20.2.2(@types/node@24.3.0)(chokidar@4.0.3)':
dependencies:
- '@angular-devkit/architect': 0.2002.1(chokidar@4.0.3)
- '@angular-devkit/core': 20.2.1(chokidar@4.0.3)
- '@angular-devkit/schematics': 20.2.1(chokidar@4.0.3)
+ '@angular-devkit/architect': 0.2002.2(chokidar@4.0.3)
+ '@angular-devkit/core': 20.2.2(chokidar@4.0.3)
+ '@angular-devkit/schematics': 20.2.2(chokidar@4.0.3)
'@inquirer/prompts': 7.8.2(@types/node@24.3.0)
'@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.0))(@types/node@24.3.0)(listr2@9.0.1)
'@modelcontextprotocol/sdk': 1.17.3
- '@schematics/angular': 20.2.1(chokidar@4.0.3)
+ '@schematics/angular': 20.2.2(chokidar@4.0.3)
'@yarnpkg/lockfile': 1.1.0
algoliasearch: 5.35.0
ini: 5.0.0
@@ -3745,15 +4346,15 @@ snapshots:
- chokidar
- supports-color
- '@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)':
+ '@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)':
dependencies:
- '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)
rxjs: 7.8.2
tslib: 2.8.1
- '@angular/compiler-cli@20.2.2(@angular/compiler@20.2.2)(typescript@5.9.2)':
+ '@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.9.2)':
dependencies:
- '@angular/compiler': 20.2.2
+ '@angular/compiler': 20.2.4
'@babel/core': 7.28.3
'@jridgewell/sourcemap-codec': 1.5.5
chokidar: 4.0.3
@@ -3767,37 +4368,37 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@angular/compiler@20.2.2':
+ '@angular/compiler@20.2.4':
dependencies:
tslib: 2.8.1
- '@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)':
+ '@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)':
dependencies:
rxjs: 7.8.2
tslib: 2.8.1
optionalDependencies:
- '@angular/compiler': 20.2.2
+ '@angular/compiler': 20.2.4
zone.js: 0.15.1
- '@angular/forms@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)':
+ '@angular/forms@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)':
dependencies:
- '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)
- '@angular/platform-browser': 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))
+ '@angular/common': 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/platform-browser': 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))
rxjs: 7.8.2
tslib: 2.8.1
- '@angular/platform-browser@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))':
+ '@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))':
dependencies:
- '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/common': 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)
tslib: 2.8.1
- '@angular/router@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)':
+ '@angular/router@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)':
dependencies:
- '@angular/common': 20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
- '@angular/core': 20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1)
- '@angular/platform-browser': 20.2.2(@angular/common@20.2.2(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.2(@angular/compiler@20.2.2)(rxjs@7.8.2)(zone.js@0.15.1))
+ '@angular/common': 20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)
+ '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)
+ '@angular/platform-browser': 20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))
rxjs: 7.8.2
tslib: 2.8.1
@@ -3822,7 +4423,7 @@ snapshots:
'@babel/traverse': 7.28.3
'@babel/types': 7.28.2
convert-source-map: 2.0.0
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -3845,7 +4446,7 @@ snapshots:
dependencies:
'@babel/compat-data': 7.28.0
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.25.3
+ browserslist: 4.25.4
lru-cache: 5.1.1
semver: 6.3.1
@@ -3900,7 +4501,7 @@ snapshots:
'@babel/parser': 7.28.3
'@babel/template': 7.27.2
'@babel/types': 7.28.2
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -3911,18 +4512,53 @@ snapshots:
'@colors/colors@1.5.0': {}
- '@emnapi/core@1.4.5':
+ '@cypress/request@3.0.9':
dependencies:
- '@emnapi/wasi-threads': 1.0.4
+ aws-sign2: 0.7.0
+ aws4: 1.13.2
+ caseless: 0.12.0
+ combined-stream: 1.0.8
+ extend: 3.0.2
+ forever-agent: 0.6.1
+ form-data: 4.0.4
+ http-signature: 1.4.0
+ is-typedarray: 1.0.0
+ isstream: 0.1.2
+ json-stringify-safe: 5.0.1
+ mime-types: 2.1.35
+ performance-now: 2.1.0
+ qs: 6.14.0
+ safe-buffer: 5.2.1
+ tough-cookie: 5.1.2
+ tunnel-agent: 0.6.0
+ uuid: 8.3.2
+
+ '@cypress/schematic@4.1.2(@angular/cli@20.2.2(@types/node@24.3.0)(chokidar@4.0.3))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))':
+ dependencies:
+ '@angular/cli': 20.2.2(@types/node@24.3.0)(chokidar@4.0.3)
+ '@angular/core': 20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)
+ jsonc-parser: 3.3.1
+ rxjs: 7.8.2
+
+ '@cypress/xvfb@1.2.4(supports-color@8.1.1)':
+ dependencies:
+ debug: 3.2.7(supports-color@8.1.1)
+ lodash.once: 4.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@emnapi/core@1.5.0':
+ dependencies:
+ '@emnapi/wasi-threads': 1.1.0
tslib: 2.8.1
optional: true
- '@emnapi/runtime@1.4.5':
+ '@emnapi/runtime@1.5.0':
dependencies:
tslib: 2.8.1
optional: true
- '@emnapi/wasi-threads@1.0.4':
+ '@emnapi/wasi-threads@1.1.0':
dependencies:
tslib: 2.8.1
optional: true
@@ -4005,7 +4641,7 @@ snapshots:
'@esbuild/win32-x64@0.25.9':
optional: true
- '@eslint-community/eslint-utils@4.7.0(eslint@9.34.0)':
+ '@eslint-community/eslint-utils@4.8.0(eslint@9.34.0)':
dependencies:
eslint: 9.34.0
eslint-visitor-keys: 3.4.3
@@ -4015,7 +4651,7 @@ snapshots:
'@eslint/config-array@0.21.0':
dependencies:
'@eslint/object-schema': 2.1.6
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -4029,7 +4665,7 @@ snapshots:
'@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
espree: 10.4.0
globals: 14.0.0
ignore: 5.3.2
@@ -4051,15 +4687,13 @@ snapshots:
'@humanfs/core@0.19.1': {}
- '@humanfs/node@0.16.6':
+ '@humanfs/node@0.16.7':
dependencies:
'@humanfs/core': 0.19.1
- '@humanwhocodes/retry': 0.3.1
+ '@humanwhocodes/retry': 0.4.3
'@humanwhocodes/module-importer@1.0.1': {}
- '@humanwhocodes/retry@0.3.1': {}
-
'@humanwhocodes/retry@0.4.3': {}
'@inquirer/checkbox@4.2.2(@types/node@24.3.0)':
@@ -4263,11 +4897,11 @@ snapshots:
cors: 2.8.5
cross-spawn: 7.0.6
eventsource: 3.0.7
- eventsource-parser: 3.0.5
+ eventsource-parser: 3.0.6
express: 5.1.0
express-rate-limit: 7.5.1(express@5.1.0)
pkce-challenge: 5.0.0
- raw-body: 3.0.0
+ raw-body: 3.0.1
zod: 3.25.76
zod-to-json-schema: 3.24.6(zod@3.25.76)
transitivePeerDependencies:
@@ -4365,8 +4999,8 @@ snapshots:
'@napi-rs/wasm-runtime@1.0.3':
dependencies:
- '@emnapi/core': 1.4.5
- '@emnapi/runtime': 1.4.5
+ '@emnapi/core': 1.5.0
+ '@emnapi/runtime': 1.5.0
'@tybys/wasm-util': 0.10.0
optional: true
@@ -4398,7 +5032,7 @@ snapshots:
'@npmcli/git@6.0.3':
dependencies:
- '@npmcli/promise-spawn': 8.0.2
+ '@npmcli/promise-spawn': 8.0.3
ini: 5.0.0
lru-cache: 10.4.3
npm-pick-manifest: 10.0.0
@@ -4424,7 +5058,7 @@ snapshots:
semver: 7.7.2
validate-npm-package-license: 3.0.4
- '@npmcli/promise-spawn@8.0.2':
+ '@npmcli/promise-spawn@8.0.3':
dependencies:
which: 5.0.0
@@ -4434,7 +5068,7 @@ snapshots:
dependencies:
'@npmcli/node-gyp': 4.0.0
'@npmcli/package-json': 6.2.0
- '@npmcli/promise-spawn': 8.0.2
+ '@npmcli/promise-spawn': 8.0.3
node-gyp: 11.4.2
proc-log: 5.0.0
which: 5.0.0
@@ -4557,70 +5191,73 @@ snapshots:
'@rolldown/pluginutils@1.0.0-beta.32': {}
- '@rollup/rollup-android-arm-eabi@4.49.0':
+ '@rollup/rollup-android-arm-eabi@4.50.0':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.50.0':
optional: true
- '@rollup/rollup-android-arm64@4.49.0':
+ '@rollup/rollup-darwin-arm64@4.50.0':
optional: true
- '@rollup/rollup-darwin-arm64@4.49.0':
+ '@rollup/rollup-darwin-x64@4.50.0':
optional: true
- '@rollup/rollup-darwin-x64@4.49.0':
+ '@rollup/rollup-freebsd-arm64@4.50.0':
optional: true
- '@rollup/rollup-freebsd-arm64@4.49.0':
+ '@rollup/rollup-freebsd-x64@4.50.0':
optional: true
- '@rollup/rollup-freebsd-x64@4.49.0':
+ '@rollup/rollup-linux-arm-gnueabihf@4.50.0':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.49.0':
+ '@rollup/rollup-linux-arm-musleabihf@4.50.0':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.49.0':
+ '@rollup/rollup-linux-arm64-gnu@4.50.0':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.49.0':
+ '@rollup/rollup-linux-arm64-musl@4.50.0':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.49.0':
+ '@rollup/rollup-linux-loongarch64-gnu@4.50.0':
optional: true
- '@rollup/rollup-linux-loongarch64-gnu@4.49.0':
+ '@rollup/rollup-linux-ppc64-gnu@4.50.0':
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.49.0':
+ '@rollup/rollup-linux-riscv64-gnu@4.50.0':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.49.0':
+ '@rollup/rollup-linux-riscv64-musl@4.50.0':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.49.0':
+ '@rollup/rollup-linux-s390x-gnu@4.50.0':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.49.0':
+ '@rollup/rollup-linux-x64-gnu@4.50.0':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.49.0':
+ '@rollup/rollup-linux-x64-musl@4.50.0':
optional: true
- '@rollup/rollup-linux-x64-musl@4.49.0':
+ '@rollup/rollup-openharmony-arm64@4.50.0':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.49.0':
+ '@rollup/rollup-win32-arm64-msvc@4.50.0':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.49.0':
+ '@rollup/rollup-win32-ia32-msvc@4.50.0':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.49.0':
+ '@rollup/rollup-win32-x64-msvc@4.50.0':
optional: true
- '@schematics/angular@20.2.1(chokidar@4.0.3)':
+ '@schematics/angular@20.2.2(chokidar@4.0.3)':
dependencies:
- '@angular-devkit/core': 20.2.1(chokidar@4.0.3)
- '@angular-devkit/schematics': 20.2.1(chokidar@4.0.3)
+ '@angular-devkit/core': 20.2.2(chokidar@4.0.3)
+ '@angular-devkit/schematics': 20.2.2(chokidar@4.0.3)
jsonc-parser: 3.3.1
transitivePeerDependencies:
- chokidar
@@ -4687,14 +5324,23 @@ snapshots:
'@types/normalize-package-data@2.4.4': {}
- '@typescript-eslint/eslint-plugin@8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)':
+ '@types/sinonjs__fake-timers@8.1.1': {}
+
+ '@types/sizzle@2.3.10': {}
+
+ '@types/yauzl@2.10.3':
+ dependencies:
+ '@types/node': 24.3.0
+ optional: true
+
+ '@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.41.0(eslint@9.34.0)(typescript@5.9.2)
- '@typescript-eslint/scope-manager': 8.41.0
- '@typescript-eslint/type-utils': 8.41.0(eslint@9.34.0)(typescript@5.9.2)
- '@typescript-eslint/utils': 8.41.0(eslint@9.34.0)(typescript@5.9.2)
- '@typescript-eslint/visitor-keys': 8.41.0
+ '@typescript-eslint/parser': 8.40.0(eslint@9.34.0)(typescript@5.9.2)
+ '@typescript-eslint/scope-manager': 8.40.0
+ '@typescript-eslint/type-utils': 8.40.0(eslint@9.34.0)(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.40.0(eslint@9.34.0)(typescript@5.9.2)
+ '@typescript-eslint/visitor-keys': 8.40.0
eslint: 9.34.0
graphemer: 1.4.0
ignore: 7.0.5
@@ -4704,57 +5350,77 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.41.0(eslint@9.34.0)(typescript@5.9.2)':
+ '@typescript-eslint/parser@8.40.0(eslint@9.34.0)(typescript@5.9.2)':
dependencies:
- '@typescript-eslint/scope-manager': 8.41.0
- '@typescript-eslint/types': 8.41.0
- '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2)
- '@typescript-eslint/visitor-keys': 8.41.0
- debug: 4.4.1
+ '@typescript-eslint/scope-manager': 8.40.0
+ '@typescript-eslint/types': 8.40.0
+ '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2)
+ '@typescript-eslint/visitor-keys': 8.40.0
+ debug: 4.4.1(supports-color@8.1.1)
eslint: 9.34.0
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.41.0(typescript@5.9.2)':
+ '@typescript-eslint/project-service@8.40.0(typescript@5.9.2)':
+ dependencies:
+ '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2)
+ '@typescript-eslint/types': 8.40.0
+ debug: 4.4.1(supports-color@8.1.1)
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/project-service@8.42.0(typescript@5.9.2)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.41.0(typescript@5.9.2)
- '@typescript-eslint/types': 8.41.0
- debug: 4.4.1
+ '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2)
+ '@typescript-eslint/types': 8.42.0
+ debug: 4.4.1(supports-color@8.1.1)
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.41.0':
+ '@typescript-eslint/scope-manager@8.40.0':
dependencies:
- '@typescript-eslint/types': 8.41.0
- '@typescript-eslint/visitor-keys': 8.41.0
+ '@typescript-eslint/types': 8.40.0
+ '@typescript-eslint/visitor-keys': 8.40.0
- '@typescript-eslint/tsconfig-utils@8.41.0(typescript@5.9.2)':
+ '@typescript-eslint/scope-manager@8.42.0':
+ dependencies:
+ '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/visitor-keys': 8.42.0
+
+ '@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2)':
+ dependencies:
+ typescript: 5.9.2
+
+ '@typescript-eslint/tsconfig-utils@8.42.0(typescript@5.9.2)':
dependencies:
typescript: 5.9.2
- '@typescript-eslint/type-utils@8.41.0(eslint@9.34.0)(typescript@5.9.2)':
+ '@typescript-eslint/type-utils@8.40.0(eslint@9.34.0)(typescript@5.9.2)':
dependencies:
- '@typescript-eslint/types': 8.41.0
- '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2)
- '@typescript-eslint/utils': 8.41.0(eslint@9.34.0)(typescript@5.9.2)
- debug: 4.4.1
+ '@typescript-eslint/types': 8.40.0
+ '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.40.0(eslint@9.34.0)(typescript@5.9.2)
+ debug: 4.4.1(supports-color@8.1.1)
eslint: 9.34.0
ts-api-utils: 2.1.0(typescript@5.9.2)
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.41.0': {}
+ '@typescript-eslint/types@8.40.0': {}
+
+ '@typescript-eslint/types@8.42.0': {}
- '@typescript-eslint/typescript-estree@8.41.0(typescript@5.9.2)':
+ '@typescript-eslint/typescript-estree@8.40.0(typescript@5.9.2)':
dependencies:
- '@typescript-eslint/project-service': 8.41.0(typescript@5.9.2)
- '@typescript-eslint/tsconfig-utils': 8.41.0(typescript@5.9.2)
- '@typescript-eslint/types': 8.41.0
- '@typescript-eslint/visitor-keys': 8.41.0
- debug: 4.4.1
+ '@typescript-eslint/project-service': 8.40.0(typescript@5.9.2)
+ '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2)
+ '@typescript-eslint/types': 8.40.0
+ '@typescript-eslint/visitor-keys': 8.40.0
+ debug: 4.4.1(supports-color@8.1.1)
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
@@ -4764,20 +5430,52 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2)':
+ '@typescript-eslint/typescript-estree@8.42.0(typescript@5.9.2)':
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0)
- '@typescript-eslint/scope-manager': 8.41.0
- '@typescript-eslint/types': 8.41.0
- '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2)
+ '@typescript-eslint/project-service': 8.42.0(typescript@5.9.2)
+ '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2)
+ '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/visitor-keys': 8.42.0
+ debug: 4.4.1(supports-color@8.1.1)
+ fast-glob: 3.3.3
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.7.2
+ ts-api-utils: 2.1.0(typescript@5.9.2)
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.40.0(eslint@9.34.0)(typescript@5.9.2)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.34.0)
+ '@typescript-eslint/scope-manager': 8.40.0
+ '@typescript-eslint/types': 8.40.0
+ '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2)
eslint: 9.34.0
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.41.0':
+ '@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2)':
dependencies:
- '@typescript-eslint/types': 8.41.0
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.34.0)
+ '@typescript-eslint/scope-manager': 8.42.0
+ '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2)
+ eslint: 9.34.0
+ typescript: 5.9.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/visitor-keys@8.40.0':
+ dependencies:
+ '@typescript-eslint/types': 8.40.0
+ eslint-visitor-keys: 4.2.1
+
+ '@typescript-eslint/visitor-keys@8.42.0':
+ dependencies:
+ '@typescript-eslint/types': 8.42.0
eslint-visitor-keys: 4.2.1
'@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.2(@types/node@24.3.0)(sass@1.90.0))':
@@ -4806,6 +5504,11 @@ snapshots:
agent-base@7.1.4: {}
+ aggregate-error@3.1.0:
+ dependencies:
+ clean-stack: 2.2.0
+ indent-string: 4.0.0
+
ajv-formats@3.0.1(ajv@8.17.1):
optionalDependencies:
ajv: 8.17.1
@@ -4841,24 +5544,26 @@ snapshots:
'@algolia/requester-fetch': 5.35.0
'@algolia/requester-node-http': 5.35.0
- angular-eslint@20.2.0(chokidar@4.0.3)(eslint@9.34.0)(typescript-eslint@8.41.0(eslint@9.34.0)(typescript@5.9.2))(typescript@5.9.2):
+ angular-eslint@20.2.0(chokidar@4.0.3)(eslint@9.34.0)(typescript-eslint@8.40.0(eslint@9.34.0)(typescript@5.9.2))(typescript@5.9.2):
dependencies:
- '@angular-devkit/core': 20.2.1(chokidar@4.0.3)
- '@angular-devkit/schematics': 20.2.1(chokidar@4.0.3)
+ '@angular-devkit/core': 20.2.2(chokidar@4.0.3)
+ '@angular-devkit/schematics': 20.2.2(chokidar@4.0.3)
'@angular-eslint/builder': 20.2.0(chokidar@4.0.3)(eslint@9.34.0)(typescript@5.9.2)
- '@angular-eslint/eslint-plugin': 20.2.0(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
- '@angular-eslint/eslint-plugin-template': 20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.41.0)(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
- '@angular-eslint/schematics': 20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.41.0)(@typescript-eslint/utils@8.41.0(eslint@9.34.0)(typescript@5.9.2))(chokidar@4.0.3)(eslint@9.34.0)(typescript@5.9.2)
+ '@angular-eslint/eslint-plugin': 20.2.0(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
+ '@angular-eslint/eslint-plugin-template': 20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.42.0)(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
+ '@angular-eslint/schematics': 20.2.0(@angular-eslint/template-parser@20.2.0(eslint@9.34.0)(typescript@5.9.2))(@typescript-eslint/types@8.42.0)(@typescript-eslint/utils@8.42.0(eslint@9.34.0)(typescript@5.9.2))(chokidar@4.0.3)(eslint@9.34.0)(typescript@5.9.2)
'@angular-eslint/template-parser': 20.2.0(eslint@9.34.0)(typescript@5.9.2)
- '@typescript-eslint/types': 8.41.0
- '@typescript-eslint/utils': 8.41.0(eslint@9.34.0)(typescript@5.9.2)
+ '@typescript-eslint/types': 8.42.0
+ '@typescript-eslint/utils': 8.42.0(eslint@9.34.0)(typescript@5.9.2)
eslint: 9.34.0
typescript: 5.9.2
- typescript-eslint: 8.41.0(eslint@9.34.0)(typescript@5.9.2)
+ typescript-eslint: 8.40.0(eslint@9.34.0)(typescript@5.9.2)
transitivePeerDependencies:
- chokidar
- supports-color
+ ansi-colors@4.1.3: {}
+
ansi-escapes@4.3.2:
dependencies:
type-fest: 0.21.3
@@ -4884,16 +5589,40 @@ snapshots:
normalize-path: 3.0.0
picomatch: 2.3.1
+ arch@2.2.0: {}
+
argparse@2.0.1: {}
aria-query@5.3.2: {}
+ asn1@0.2.6:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ assert-plus@1.0.0: {}
+
+ astral-regex@2.0.0: {}
+
+ asynckit@0.4.0: {}
+
+ at-least-node@1.0.0: {}
+
+ aws-sign2@0.7.0: {}
+
+ aws4@1.13.2: {}
+
axobject-query@4.1.0: {}
balanced-match@1.0.2: {}
+ base64-js@1.5.1: {}
+
base64id@2.0.0: {}
+ bcrypt-pbkdf@1.0.2:
+ dependencies:
+ tweetnacl: 0.14.5
+
beasties@0.3.5:
dependencies:
css-select: 6.0.0
@@ -4907,6 +5636,10 @@ snapshots:
binary-extensions@2.3.0: {}
+ blob-util@2.0.2: {}
+
+ bluebird@3.7.2: {}
+
body-parser@1.20.3:
dependencies:
bytes: 3.1.2
@@ -4928,12 +5661,12 @@ snapshots:
dependencies:
bytes: 3.1.2
content-type: 1.0.5
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
http-errors: 2.0.0
iconv-lite: 0.6.3
on-finished: 2.4.1
qs: 6.14.0
- raw-body: 3.0.0
+ raw-body: 3.0.1
type-is: 2.0.1
transitivePeerDependencies:
- supports-color
@@ -4953,15 +5686,24 @@ snapshots:
dependencies:
fill-range: 7.1.1
- browserslist@4.25.3:
+ browser-stdout@1.3.1: {}
+
+ browserslist@4.25.4:
dependencies:
- caniuse-lite: 1.0.30001737
- electron-to-chromium: 1.5.211
+ caniuse-lite: 1.0.30001739
+ electron-to-chromium: 1.5.214
node-releases: 2.0.19
- update-browserslist-db: 1.1.3(browserslist@4.25.3)
+ update-browserslist-db: 1.1.3(browserslist@4.25.4)
+
+ buffer-crc32@0.2.13: {}
buffer-from@1.1.2: {}
+ buffer@5.7.1:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
builtin-modules@3.3.0: {}
builtin-modules@4.0.0: {}
@@ -4983,6 +5725,8 @@ snapshots:
tar: 7.4.3
unique-filename: 4.0.0
+ cachedir@2.4.0: {}
+
call-bind-apply-helpers@1.0.2:
dependencies:
es-errors: 1.3.0
@@ -4995,7 +5739,11 @@ snapshots:
callsites@3.1.0: {}
- caniuse-lite@1.0.30001737: {}
+ camelcase@6.3.0: {}
+
+ caniuse-lite@1.0.30001739: {}
+
+ caseless@0.12.0: {}
chalk@4.1.2:
dependencies:
@@ -5006,6 +5754,8 @@ snapshots:
chardet@2.1.0: {}
+ check-more-types@2.24.0: {}
+
chokidar@3.6.0:
dependencies:
anymatch: 3.1.3
@@ -5032,12 +5782,29 @@ snapshots:
dependencies:
escape-string-regexp: 1.0.5
+ clean-stack@2.2.0: {}
+
+ cli-cursor@3.1.0:
+ dependencies:
+ restore-cursor: 3.1.0
+
cli-cursor@5.0.0:
dependencies:
restore-cursor: 5.1.0
cli-spinners@2.9.2: {}
+ cli-table3@0.6.1:
+ dependencies:
+ string-width: 4.2.3
+ optionalDependencies:
+ colors: 1.4.0
+
+ cli-truncate@2.1.0:
+ dependencies:
+ slice-ansi: 3.0.0
+ string-width: 4.2.3
+
cli-truncate@4.0.0:
dependencies:
slice-ansi: 5.0.0
@@ -5051,6 +5818,12 @@ snapshots:
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
cliui@9.0.1:
dependencies:
string-width: 7.2.0
@@ -5065,6 +5838,17 @@ snapshots:
colorette@2.0.20: {}
+ colors@1.4.0:
+ optional: true
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@6.2.1: {}
+
+ common-tags@1.8.2: {}
+
concat-map@0.0.1: {}
connect@3.7.0:
@@ -5092,7 +5876,9 @@ snapshots:
core-js-compat@3.45.1:
dependencies:
- browserslist: 4.25.3
+ browserslist: 4.25.4
+
+ core-util-is@1.0.2: {}
cors@2.8.5:
dependencies:
@@ -5117,22 +5903,98 @@ snapshots:
custom-event@1.0.1: {}
+ cypress-multi-reporters@2.0.5(mocha@11.7.2):
+ dependencies:
+ debug: 4.4.1(supports-color@8.1.1)
+ lodash: 4.17.21
+ mocha: 11.7.2
+ semver: 7.7.2
+ transitivePeerDependencies:
+ - supports-color
+
+ cypress@15.1.0:
+ dependencies:
+ '@cypress/request': 3.0.9
+ '@cypress/xvfb': 1.2.4(supports-color@8.1.1)
+ '@types/sinonjs__fake-timers': 8.1.1
+ '@types/sizzle': 2.3.10
+ arch: 2.2.0
+ blob-util: 2.0.2
+ bluebird: 3.7.2
+ buffer: 5.7.1
+ cachedir: 2.4.0
+ chalk: 4.1.2
+ check-more-types: 2.24.0
+ ci-info: 4.3.0
+ cli-cursor: 3.1.0
+ cli-table3: 0.6.1
+ commander: 6.2.1
+ common-tags: 1.8.2
+ dayjs: 1.11.18
+ debug: 4.4.1(supports-color@8.1.1)
+ enquirer: 2.4.1
+ eventemitter2: 6.4.7
+ execa: 4.1.0
+ executable: 4.1.1
+ extract-zip: 2.0.1(supports-color@8.1.1)
+ figures: 3.2.0
+ fs-extra: 9.1.0
+ hasha: 5.2.2
+ is-installed-globally: 0.4.0
+ lazy-ass: 1.6.0
+ listr2: 3.14.0(enquirer@2.4.1)
+ lodash: 4.17.21
+ log-symbols: 4.1.0
+ minimist: 1.2.8
+ ospath: 1.2.2
+ pretty-bytes: 5.6.0
+ process: 0.11.10
+ proxy-from-env: 1.0.0
+ request-progress: 3.0.0
+ semver: 7.7.2
+ supports-color: 8.1.1
+ systeminformation: 5.27.7
+ tmp: 0.2.5
+ tree-kill: 1.2.2
+ untildify: 4.0.0
+ yauzl: 2.10.0
+
+ dashdash@1.14.1:
+ dependencies:
+ assert-plus: 1.0.0
+
date-format@4.0.14: {}
+ dateformat@4.6.3: {}
+
+ dayjs@1.11.18: {}
+
debug@2.6.9:
dependencies:
ms: 2.0.0
+ debug@3.2.7(supports-color@8.1.1):
+ dependencies:
+ ms: 2.1.3
+ optionalDependencies:
+ supports-color: 8.1.1
+
debug@4.3.7:
dependencies:
ms: 2.1.3
- debug@4.4.1:
+ debug@4.4.1(supports-color@8.1.1):
dependencies:
ms: 2.1.3
+ optionalDependencies:
+ supports-color: 8.1.1
+
+ decamelize@4.0.0: {}
deep-is@0.1.4: {}
+ delayed-stream@1.0.0: {}
+
depd@2.0.0: {}
destroy@1.2.0: {}
@@ -5145,6 +6007,10 @@ snapshots:
di@0.0.1: {}
+ diff@5.2.0: {}
+
+ diff@7.0.0: {}
+
dom-serialize@2.2.1:
dependencies:
custom-event: 1.0.1
@@ -5178,11 +6044,16 @@ snapshots:
eastasianwidth@0.2.0: {}
+ ecc-jsbn@0.1.2:
+ dependencies:
+ jsbn: 0.1.1
+ safer-buffer: 2.1.2
+
ee-first@1.1.1: {}
- electron-to-chromium@1.5.211: {}
+ electron-to-chromium@1.5.214: {}
- emoji-regex@10.4.0: {}
+ emoji-regex@10.5.0: {}
emoji-regex@8.0.0: {}
@@ -5197,6 +6068,10 @@ snapshots:
iconv-lite: 0.6.3
optional: true
+ end-of-stream@1.4.5:
+ dependencies:
+ once: 1.4.0
+
engine.io-parser@5.2.3: {}
engine.io@6.6.4:
@@ -5215,6 +6090,11 @@ snapshots:
- supports-color
- utf-8-validate
+ enquirer@2.4.1:
+ dependencies:
+ ansi-colors: 4.1.3
+ strip-ansi: 6.0.1
+
ent@2.2.2:
dependencies:
call-bound: 1.0.4
@@ -5240,6 +6120,13 @@ snapshots:
dependencies:
es-errors: 1.3.0
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
esbuild@0.25.9:
optionalDependencies:
'@esbuild/aix-ppc64': 0.25.9
@@ -5307,7 +6194,7 @@ snapshots:
eslint-plugin-unicorn@57.0.0(eslint@9.34.0):
dependencies:
'@babel/helper-validator-identifier': 7.27.1
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0)
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.34.0)
ci-info: 4.3.0
clean-regexp: 1.0.0
core-js-compat: 3.45.1
@@ -5335,7 +6222,7 @@ snapshots:
eslint@9.34.0:
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0)
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.34.0)
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.21.0
'@eslint/config-helpers': 0.3.1
@@ -5343,7 +6230,7 @@ snapshots:
'@eslint/eslintrc': 3.3.1
'@eslint/js': 9.34.0
'@eslint/plugin-kit': 0.3.5
- '@humanfs/node': 0.16.6
+ '@humanfs/node': 0.16.7
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
'@types/estree': 1.0.8
@@ -5351,7 +6238,7 @@ snapshots:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
escape-string-regexp: 4.0.0
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
@@ -5393,15 +6280,33 @@ snapshots:
etag@1.8.1: {}
+ eventemitter2@6.4.7: {}
+
eventemitter3@4.0.7: {}
eventemitter3@5.0.1: {}
- eventsource-parser@3.0.5: {}
+ eventsource-parser@3.0.6: {}
eventsource@3.0.7:
dependencies:
- eventsource-parser: 3.0.5
+ eventsource-parser: 3.0.6
+
+ execa@4.1.0:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 5.2.0
+ human-signals: 1.1.1
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ executable@4.1.1:
+ dependencies:
+ pify: 2.3.0
exponential-backoff@3.1.2: {}
@@ -5417,7 +6322,7 @@ snapshots:
content-type: 1.0.5
cookie: 0.7.2
cookie-signature: 1.2.2
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
@@ -5443,6 +6348,18 @@ snapshots:
extend@3.0.2: {}
+ extract-zip@2.0.1(supports-color@8.1.1):
+ dependencies:
+ debug: 4.4.1(supports-color@8.1.1)
+ get-stream: 5.2.0
+ yauzl: 2.10.0
+ optionalDependencies:
+ '@types/yauzl': 2.10.3
+ transitivePeerDependencies:
+ - supports-color
+
+ extsprintf@1.3.0: {}
+
fast-deep-equal@3.1.3: {}
fast-diff@1.3.0: {}
@@ -5465,10 +6382,18 @@ snapshots:
dependencies:
reusify: 1.1.0
+ fd-slicer@1.1.0:
+ dependencies:
+ pend: 1.2.0
+
fdir@6.5.0(picomatch@4.0.3):
optionalDependencies:
picomatch: 4.0.3
+ figures@3.2.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
file-entry-cache@8.0.0:
dependencies:
flat-cache: 4.0.1
@@ -5491,7 +6416,7 @@ snapshots:
finalhandler@2.1.0:
dependencies:
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
encodeurl: 2.0.0
escape-html: 1.0.3
on-finished: 2.4.1
@@ -5512,6 +6437,8 @@ snapshots:
flatted: 3.3.3
keyv: 4.5.4
+ flat@5.0.2: {}
+
flatted@3.3.3: {}
follow-redirects@1.15.11: {}
@@ -5521,16 +6448,39 @@ snapshots:
cross-spawn: 7.0.6
signal-exit: 4.1.0
+ forever-agent@0.6.1: {}
+
+ form-data@4.0.4:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ hasown: 2.0.2
+ mime-types: 2.1.35
+
forwarded@0.2.0: {}
fresh@2.0.0: {}
+ fs-extra@10.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.2.0
+ universalify: 2.0.1
+
fs-extra@8.1.0:
dependencies:
graceful-fs: 4.2.11
jsonfile: 4.0.0
universalify: 0.1.2
+ fs-extra@9.1.0:
+ dependencies:
+ at-least-node: 1.0.0
+ graceful-fs: 4.2.11
+ jsonfile: 6.2.0
+ universalify: 2.0.1
+
fs-minipass@2.1.0:
dependencies:
minipass: 3.3.6
@@ -5544,6 +6494,8 @@ snapshots:
fsevents@2.3.3:
optional: true
+ fsu@1.1.1: {}
+
function-bind@1.1.2: {}
functional-red-black-tree@1.0.1: {}
@@ -5552,7 +6504,7 @@ snapshots:
get-caller-file@2.0.5: {}
- get-east-asian-width@1.3.0: {}
+ get-east-asian-width@1.3.1: {}
get-intrinsic@1.3.0:
dependencies:
@@ -5572,6 +6524,14 @@ snapshots:
dunder-proto: 1.0.1
es-object-atoms: 1.1.1
+ get-stream@5.2.0:
+ dependencies:
+ pump: 3.0.3
+
+ getpass@0.1.7:
+ dependencies:
+ assert-plus: 1.0.0
+
glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
@@ -5600,6 +6560,10 @@ snapshots:
once: 1.4.0
path-is-absolute: 1.0.1
+ global-dirs@3.0.1:
+ dependencies:
+ ini: 2.0.0
+
globals@14.0.0: {}
globals@15.15.0: {}
@@ -5618,10 +6582,17 @@ snapshots:
dependencies:
has-symbols: 1.1.0
+ hasha@5.2.2:
+ dependencies:
+ is-stream: 2.0.1
+ type-fest: 0.8.1
+
hasown@2.0.2:
dependencies:
function-bind: 1.1.2
+ he@1.2.0: {}
+
hosted-git-info@7.0.2:
dependencies:
lru-cache: 10.4.3
@@ -5632,7 +6603,7 @@ snapshots:
hosted-git-info@9.0.0:
dependencies:
- lru-cache: 11.1.0
+ lru-cache: 11.2.1
html-escaper@2.0.2: {}
@@ -5656,7 +6627,7 @@ snapshots:
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.4
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -5668,13 +6639,21 @@ snapshots:
transitivePeerDependencies:
- debug
+ http-signature@1.4.0:
+ dependencies:
+ assert-plus: 1.0.0
+ jsprim: 2.0.2
+ sshpk: 1.18.0
+
https-proxy-agent@7.0.6:
dependencies:
agent-base: 7.1.4
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
+ human-signals@1.1.1: {}
+
iconv-lite@0.4.24:
dependencies:
safer-buffer: 2.1.2
@@ -5683,6 +6662,12 @@ snapshots:
dependencies:
safer-buffer: 2.1.2
+ iconv-lite@0.7.0:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ieee754@1.2.1: {}
+
ignore-walk@8.0.0:
dependencies:
minimatch: 10.0.3
@@ -5700,6 +6685,8 @@ snapshots:
imurmurhash@0.1.4: {}
+ indent-string@4.0.0: {}
+
indent-string@5.0.0: {}
index-to-position@1.1.0: {}
@@ -5711,6 +6698,8 @@ snapshots:
inherits@2.0.4: {}
+ ini@2.0.0: {}
+
ini@5.0.0: {}
ip-address@10.0.1: {}
@@ -5735,18 +6724,27 @@ snapshots:
is-fullwidth-code-point@4.0.0: {}
- is-fullwidth-code-point@5.0.0:
+ is-fullwidth-code-point@5.1.0:
dependencies:
- get-east-asian-width: 1.3.0
+ get-east-asian-width: 1.3.1
is-glob@4.0.3:
dependencies:
is-extglob: 2.1.1
+ is-installed-globally@0.4.0:
+ dependencies:
+ global-dirs: 3.0.1
+ is-path-inside: 3.0.3
+
is-interactive@2.0.0: {}
is-number@7.0.0: {}
+ is-path-inside@3.0.3: {}
+
+ is-plain-obj@2.1.0: {}
+
is-promise@4.0.0: {}
is-regex@1.2.1:
@@ -5756,6 +6754,12 @@ snapshots:
has-tostringtag: 1.0.2
hasown: 2.0.2
+ is-stream@2.0.1: {}
+
+ is-typedarray@1.0.0: {}
+
+ is-unicode-supported@0.1.0: {}
+
is-unicode-supported@1.3.0: {}
is-unicode-supported@2.1.0: {}
@@ -5766,6 +6770,8 @@ snapshots:
isexe@3.1.1: {}
+ isstream@0.1.2: {}
+
istanbul-lib-coverage@3.2.2: {}
istanbul-lib-instrument@5.2.1:
@@ -5796,7 +6802,7 @@ snapshots:
istanbul-lib-source-maps@4.0.1:
dependencies:
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
istanbul-lib-coverage: 3.2.2
source-map: 0.6.1
transitivePeerDependencies:
@@ -5823,6 +6829,8 @@ snapshots:
dependencies:
argparse: 2.0.1
+ jsbn@0.1.1: {}
+
jsesc@3.0.2: {}
jsesc@3.1.0: {}
@@ -5835,8 +6843,12 @@ snapshots:
json-schema-traverse@1.0.0: {}
+ json-schema@0.4.0: {}
+
json-stable-stringify-without-jsonify@1.0.1: {}
+ json-stringify-safe@5.0.1: {}
+
json5@2.2.3: {}
jsonc-parser@3.3.1: {}
@@ -5845,8 +6857,21 @@ snapshots:
optionalDependencies:
graceful-fs: 4.2.11
+ jsonfile@6.2.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
jsonparse@1.3.1: {}
+ jsprim@2.0.2:
+ dependencies:
+ assert-plus: 1.0.0
+ extsprintf: 1.3.0
+ json-schema: 0.4.0
+ verror: 1.10.0
+
jsx-ast-utils-x@0.1.0: {}
karma-chrome-launcher@3.2.0:
@@ -5911,11 +6936,26 @@ snapshots:
dependencies:
json-buffer: 3.0.1
+ lazy-ass@1.6.0: {}
+
levn@0.4.1:
dependencies:
prelude-ls: 1.2.1
type-check: 0.4.0
+ listr2@3.14.0(enquirer@2.4.1):
+ dependencies:
+ cli-truncate: 2.1.0
+ colorette: 2.0.20
+ log-update: 4.0.0
+ p-map: 4.0.0
+ rfdc: 1.4.1
+ rxjs: 7.8.2
+ through: 2.3.8
+ wrap-ansi: 7.0.0
+ optionalDependencies:
+ enquirer: 2.4.1
+
listr2@9.0.1:
dependencies:
cli-truncate: 4.0.0
@@ -5946,15 +6986,37 @@ snapshots:
dependencies:
p-locate: 5.0.0
+ lodash.isempty@4.4.0: {}
+
+ lodash.isfunction@3.0.9: {}
+
+ lodash.isobject@3.0.2: {}
+
+ lodash.isstring@4.0.1: {}
+
lodash.merge@4.6.2: {}
+ lodash.once@4.1.1: {}
+
lodash@4.17.21: {}
+ log-symbols@4.1.0:
+ dependencies:
+ chalk: 4.1.2
+ is-unicode-supported: 0.1.0
+
log-symbols@6.0.0:
dependencies:
chalk: 5.6.0
is-unicode-supported: 1.3.0
+ log-update@4.0.0:
+ dependencies:
+ ansi-escapes: 4.3.2
+ cli-cursor: 3.1.0
+ slice-ansi: 4.0.0
+ wrap-ansi: 6.2.0
+
log-update@6.1.0:
dependencies:
ansi-escapes: 7.0.0
@@ -5966,16 +7028,20 @@ snapshots:
log4js@6.9.1:
dependencies:
date-format: 4.0.14
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
flatted: 3.3.3
rfdc: 1.4.1
streamroller: 3.1.5
transitivePeerDependencies:
- supports-color
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
lru-cache@10.4.3: {}
- lru-cache@11.1.0: {}
+ lru-cache@11.2.1: {}
lru-cache@5.1.1:
dependencies:
@@ -6013,6 +7079,8 @@ snapshots:
merge-descriptors@2.0.0: {}
+ merge-stream@2.0.0: {}
+
merge2@1.4.1: {}
micromatch@4.0.8:
@@ -6034,6 +7102,8 @@ snapshots:
mime@2.6.0: {}
+ mimic-fn@2.1.0: {}
+
mimic-function@5.0.1: {}
min-indent@1.0.1: {}
@@ -6101,6 +7171,58 @@ snapshots:
mkdirp@3.0.1: {}
+ mocha@11.7.2:
+ dependencies:
+ browser-stdout: 1.3.1
+ chokidar: 4.0.3
+ debug: 4.4.1(supports-color@8.1.1)
+ diff: 7.0.0
+ escape-string-regexp: 4.0.0
+ find-up: 5.0.0
+ glob: 10.4.5
+ he: 1.2.0
+ js-yaml: 4.1.0
+ log-symbols: 4.1.0
+ minimatch: 9.0.5
+ ms: 2.1.3
+ picocolors: 1.1.1
+ serialize-javascript: 6.0.2
+ strip-json-comments: 3.1.1
+ supports-color: 8.1.1
+ workerpool: 9.3.3
+ yargs: 17.7.2
+ yargs-parser: 21.1.1
+ yargs-unparser: 2.0.0
+
+ mochawesome-report-generator@6.2.0:
+ dependencies:
+ chalk: 4.1.2
+ dateformat: 4.6.3
+ escape-html: 1.0.3
+ fs-extra: 10.1.0
+ fsu: 1.1.1
+ lodash.isfunction: 3.0.9
+ opener: 1.5.2
+ prop-types: 15.8.1
+ tcomb: 3.2.29
+ tcomb-validation: 3.4.1
+ validator: 13.15.15
+ yargs: 17.7.2
+
+ mochawesome@7.1.3(mocha@11.7.2):
+ dependencies:
+ chalk: 4.1.2
+ diff: 5.2.0
+ json-stringify-safe: 5.0.1
+ lodash.isempty: 4.4.0
+ lodash.isfunction: 3.0.9
+ lodash.isobject: 3.0.2
+ lodash.isstring: 4.0.1
+ mocha: 11.7.2
+ mochawesome-report-generator: 6.2.0
+ strip-ansi: 6.0.1
+ uuid: 8.3.2
+
mrmime@2.0.1: {}
ms@2.0.0: {}
@@ -6222,6 +7344,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ npm-run-path@4.0.1:
+ dependencies:
+ path-key: 3.1.1
+
nth-check@2.1.1:
dependencies:
boolbase: 1.0.0
@@ -6242,10 +7368,16 @@ snapshots:
dependencies:
wrappy: 1.0.2
+ onetime@5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+
onetime@7.0.0:
dependencies:
mimic-function: 5.0.1
+ opener@1.5.2: {}
+
optionator@0.9.4:
dependencies:
deep-is: 0.1.4
@@ -6270,6 +7402,8 @@ snapshots:
ordered-binary@1.6.0:
optional: true
+ ospath@1.2.2: {}
+
p-limit@3.1.0:
dependencies:
yocto-queue: 0.1.0
@@ -6278,6 +7412,10 @@ snapshots:
dependencies:
p-limit: 3.1.0
+ p-map@4.0.0:
+ dependencies:
+ aggregate-error: 3.1.0
+
p-map@7.0.3: {}
package-json-from-dist@1.0.1: {}
@@ -6287,7 +7425,7 @@ snapshots:
'@npmcli/git': 6.0.3
'@npmcli/installed-package-contents': 3.0.0
'@npmcli/package-json': 6.2.0
- '@npmcli/promise-spawn': 8.0.2
+ '@npmcli/promise-spawn': 8.0.3
'@npmcli/run-script': 9.1.0
cacache: 19.0.1
fs-minipass: 3.0.3
@@ -6343,7 +7481,11 @@ snapshots:
lru-cache: 10.4.3
minipass: 7.1.2
- path-to-regexp@8.2.0: {}
+ path-to-regexp@8.3.0: {}
+
+ pend@1.2.0: {}
+
+ performance-now@2.1.0: {}
picocolors@1.1.1: {}
@@ -6351,6 +7493,8 @@ snapshots:
picomatch@4.0.3: {}
+ pify@2.3.0: {}
+
piscina@5.1.3:
optionalDependencies:
'@napi-rs/nice': 1.1.1
@@ -6375,18 +7519,35 @@ snapshots:
prettier@3.6.2: {}
+ pretty-bytes@5.6.0: {}
+
proc-log@5.0.0: {}
+ process@0.11.10: {}
+
promise-retry@2.0.1:
dependencies:
err-code: 2.0.3
retry: 0.12.0
+ prop-types@15.8.1:
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
proxy-addr@2.0.7:
dependencies:
forwarded: 0.2.0
ipaddr.js: 1.9.1
+ proxy-from-env@1.0.0: {}
+
+ pump@3.0.3:
+ dependencies:
+ end-of-stream: 1.4.5
+ once: 1.4.0
+
punycode@1.4.1: {}
punycode@2.3.1: {}
@@ -6403,6 +7564,10 @@ snapshots:
queue-microtask@1.2.3: {}
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
range-parser@1.2.1: {}
raw-body@2.5.2:
@@ -6412,13 +7577,15 @@ snapshots:
iconv-lite: 0.4.24
unpipe: 1.0.0
- raw-body@3.0.0:
+ raw-body@3.0.1:
dependencies:
bytes: 3.1.2
http-errors: 2.0.0
- iconv-lite: 0.6.3
+ iconv-lite: 0.7.0
unpipe: 1.0.0
+ react-is@16.13.1: {}
+
read-package-up@11.0.0:
dependencies:
find-up-simple: 1.0.1
@@ -6456,6 +7623,10 @@ snapshots:
dependencies:
jsesc: 3.0.2
+ request-progress@3.0.0:
+ dependencies:
+ throttleit: 1.0.1
+
require-directory@2.1.1: {}
require-from-string@2.0.2: {}
@@ -6470,6 +7641,11 @@ snapshots:
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
+ restore-cursor@3.1.0:
+ dependencies:
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+
restore-cursor@5.1.0:
dependencies:
onetime: 7.0.0
@@ -6507,39 +7683,40 @@ snapshots:
'@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32
'@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32
- rollup@4.49.0:
+ rollup@4.50.0:
dependencies:
'@types/estree': 1.0.8
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.49.0
- '@rollup/rollup-android-arm64': 4.49.0
- '@rollup/rollup-darwin-arm64': 4.49.0
- '@rollup/rollup-darwin-x64': 4.49.0
- '@rollup/rollup-freebsd-arm64': 4.49.0
- '@rollup/rollup-freebsd-x64': 4.49.0
- '@rollup/rollup-linux-arm-gnueabihf': 4.49.0
- '@rollup/rollup-linux-arm-musleabihf': 4.49.0
- '@rollup/rollup-linux-arm64-gnu': 4.49.0
- '@rollup/rollup-linux-arm64-musl': 4.49.0
- '@rollup/rollup-linux-loongarch64-gnu': 4.49.0
- '@rollup/rollup-linux-ppc64-gnu': 4.49.0
- '@rollup/rollup-linux-riscv64-gnu': 4.49.0
- '@rollup/rollup-linux-riscv64-musl': 4.49.0
- '@rollup/rollup-linux-s390x-gnu': 4.49.0
- '@rollup/rollup-linux-x64-gnu': 4.49.0
- '@rollup/rollup-linux-x64-musl': 4.49.0
- '@rollup/rollup-win32-arm64-msvc': 4.49.0
- '@rollup/rollup-win32-ia32-msvc': 4.49.0
- '@rollup/rollup-win32-x64-msvc': 4.49.0
+ '@rollup/rollup-android-arm-eabi': 4.50.0
+ '@rollup/rollup-android-arm64': 4.50.0
+ '@rollup/rollup-darwin-arm64': 4.50.0
+ '@rollup/rollup-darwin-x64': 4.50.0
+ '@rollup/rollup-freebsd-arm64': 4.50.0
+ '@rollup/rollup-freebsd-x64': 4.50.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.50.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.50.0
+ '@rollup/rollup-linux-arm64-gnu': 4.50.0
+ '@rollup/rollup-linux-arm64-musl': 4.50.0
+ '@rollup/rollup-linux-loongarch64-gnu': 4.50.0
+ '@rollup/rollup-linux-ppc64-gnu': 4.50.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.50.0
+ '@rollup/rollup-linux-riscv64-musl': 4.50.0
+ '@rollup/rollup-linux-s390x-gnu': 4.50.0
+ '@rollup/rollup-linux-x64-gnu': 4.50.0
+ '@rollup/rollup-linux-x64-musl': 4.50.0
+ '@rollup/rollup-openharmony-arm64': 4.50.0
+ '@rollup/rollup-win32-arm64-msvc': 4.50.0
+ '@rollup/rollup-win32-ia32-msvc': 4.50.0
+ '@rollup/rollup-win32-x64-msvc': 4.50.0
fsevents: 2.3.3
router@2.2.0:
dependencies:
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
depd: 2.0.0
is-promise: 4.0.0
parseurl: 1.3.3
- path-to-regexp: 8.2.0
+ path-to-regexp: 8.3.0
transitivePeerDependencies:
- supports-color
@@ -6581,7 +7758,7 @@ snapshots:
send@1.2.0:
dependencies:
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
@@ -6595,6 +7772,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ serialize-javascript@6.0.2:
+ dependencies:
+ randombytes: 2.1.0
+
serve-static@2.2.0:
dependencies:
encodeurl: 2.0.0
@@ -6640,6 +7821,8 @@ snapshots:
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
+ signal-exit@3.0.7: {}
+
signal-exit@4.1.0: {}
sigstore@3.1.0:
@@ -6653,6 +7836,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ slice-ansi@3.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
+
+ slice-ansi@4.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
+
slice-ansi@5.0.0:
dependencies:
ansi-styles: 6.2.1
@@ -6661,7 +7856,7 @@ snapshots:
slice-ansi@7.1.0:
dependencies:
ansi-styles: 6.2.1
- is-fullwidth-code-point: 5.0.0
+ is-fullwidth-code-point: 5.1.0
smart-buffer@4.2.0: {}
@@ -6698,7 +7893,7 @@ snapshots:
socks-proxy-agent@8.0.5:
dependencies:
agent-base: 7.1.4
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
socks: 2.8.7
transitivePeerDependencies:
- supports-color
@@ -6733,6 +7928,18 @@ snapshots:
spdx-license-ids@3.0.22: {}
+ sshpk@1.18.0:
+ dependencies:
+ asn1: 0.2.6
+ assert-plus: 1.0.0
+ bcrypt-pbkdf: 1.0.2
+ dashdash: 1.14.1
+ ecc-jsbn: 0.1.2
+ getpass: 0.1.7
+ jsbn: 0.1.1
+ safer-buffer: 2.1.2
+ tweetnacl: 0.14.5
+
ssri@12.0.0:
dependencies:
minipass: 7.1.2
@@ -6748,7 +7955,7 @@ snapshots:
streamroller@3.1.5:
dependencies:
date-format: 4.0.14
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
fs-extra: 8.1.0
transitivePeerDependencies:
- supports-color
@@ -6767,8 +7974,8 @@ snapshots:
string-width@7.2.0:
dependencies:
- emoji-regex: 10.4.0
- get-east-asian-width: 1.3.0
+ emoji-regex: 10.5.0
+ get-east-asian-width: 1.3.1
strip-ansi: 7.1.0
strip-ansi@6.0.1:
@@ -6779,6 +7986,8 @@ snapshots:
dependencies:
ansi-regex: 6.2.0
+ strip-final-newline@2.0.0: {}
+
strip-indent@4.0.0:
dependencies:
min-indent: 1.0.1
@@ -6789,12 +7998,18 @@ snapshots:
dependencies:
has-flag: 4.0.0
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
supports-preserve-symlinks-flag@1.0.0: {}
synckit@0.11.11:
dependencies:
'@pkgr/core': 0.2.9
+ systeminformation@5.27.7: {}
+
tar@6.2.1:
dependencies:
chownr: 2.0.0
@@ -6813,11 +8028,27 @@ snapshots:
mkdirp: 3.0.1
yallist: 5.0.0
+ tcomb-validation@3.4.1:
+ dependencies:
+ tcomb: 3.2.29
+
+ tcomb@3.2.29: {}
+
+ throttleit@1.0.1: {}
+
+ through@2.3.8: {}
+
tinyglobby@0.2.14:
dependencies:
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
+ tldts-core@6.1.86: {}
+
+ tldts@6.1.86:
+ dependencies:
+ tldts-core: 6.1.86
+
tmp@0.2.5: {}
to-regex-range@5.0.1:
@@ -6826,6 +8057,12 @@ snapshots:
toidentifier@1.0.1: {}
+ tough-cookie@5.1.2:
+ dependencies:
+ tldts: 6.1.86
+
+ tree-kill@1.2.2: {}
+
ts-api-utils@2.1.0(typescript@5.9.2):
dependencies:
typescript: 5.9.2
@@ -6835,17 +8072,25 @@ snapshots:
tuf-js@3.1.0:
dependencies:
'@tufjs/models': 3.0.1
- debug: 4.4.1
+ debug: 4.4.1(supports-color@8.1.1)
make-fetch-happen: 14.0.3
transitivePeerDependencies:
- supports-color
+ tunnel-agent@0.6.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ tweetnacl@0.14.5: {}
+
type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
type-fest@0.21.3: {}
+ type-fest@0.8.1: {}
+
type-fest@4.41.0: {}
type-is@1.6.18:
@@ -6859,12 +8104,12 @@ snapshots:
media-typer: 1.1.0
mime-types: 3.0.1
- typescript-eslint@8.41.0(eslint@9.34.0)(typescript@5.9.2):
+ typescript-eslint@8.40.0(eslint@9.34.0)(typescript@5.9.2):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
- '@typescript-eslint/parser': 8.41.0(eslint@9.34.0)(typescript@5.9.2)
- '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2)
- '@typescript-eslint/utils': 8.41.0(eslint@9.34.0)(typescript@5.9.2)
+ '@typescript-eslint/eslint-plugin': 8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0)(typescript@5.9.2))(eslint@9.34.0)(typescript@5.9.2)
+ '@typescript-eslint/parser': 8.40.0(eslint@9.34.0)(typescript@5.9.2)
+ '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2)
+ '@typescript-eslint/utils': 8.40.0(eslint@9.34.0)(typescript@5.9.2)
eslint: 9.34.0
typescript: 5.9.2
transitivePeerDependencies:
@@ -6888,11 +8133,15 @@ snapshots:
universalify@0.1.2: {}
+ universalify@2.0.1: {}
+
unpipe@1.0.0: {}
- update-browserslist-db@1.1.3(browserslist@4.25.3):
+ untildify@4.0.0: {}
+
+ update-browserslist-db@1.1.3(browserslist@4.25.4):
dependencies:
- browserslist: 4.25.3
+ browserslist: 4.25.4
escalade: 3.2.0
picocolors: 1.1.1
@@ -6902,6 +8151,8 @@ snapshots:
utils-merge@1.0.1: {}
+ uuid@8.3.2: {}
+
validate-npm-package-license@3.0.4:
dependencies:
spdx-correct: 3.2.0
@@ -6909,15 +8160,23 @@ snapshots:
validate-npm-package-name@6.0.2: {}
+ validator@13.15.15: {}
+
vary@1.1.2: {}
+ verror@1.10.0:
+ dependencies:
+ assert-plus: 1.0.0
+ core-util-is: 1.0.2
+ extsprintf: 1.3.0
+
vite@7.1.2(@types/node@24.3.0)(sass@1.90.0):
dependencies:
esbuild: 0.25.9
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
postcss: 8.5.6
- rollup: 4.49.0
+ rollup: 4.50.0
tinyglobby: 0.2.14
optionalDependencies:
'@types/node': 24.3.0
@@ -6948,6 +8207,8 @@ snapshots:
word-wrap@1.2.5: {}
+ workerpool@9.3.3: {}
+
wrap-ansi@6.2.0:
dependencies:
ansi-styles: 4.3.0
@@ -6986,8 +8247,17 @@ snapshots:
yargs-parser@20.2.9: {}
+ yargs-parser@21.1.1: {}
+
yargs-parser@22.0.0: {}
+ yargs-unparser@2.0.0:
+ dependencies:
+ camelcase: 6.3.0
+ decamelize: 4.0.0
+ flat: 5.0.2
+ is-plain-obj: 2.1.0
+
yargs@16.2.0:
dependencies:
cliui: 7.0.4
@@ -6998,6 +8268,16 @@ snapshots:
y18n: 5.0.8
yargs-parser: 20.2.9
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
yargs@18.0.0:
dependencies:
cliui: 9.0.1
@@ -7007,6 +8287,11 @@ snapshots:
y18n: 5.0.8
yargs-parser: 22.0.0
+ yauzl@2.10.0:
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
+
yocto-queue@0.1.0: {}
yoctocolors-cjs@2.1.3: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 0000000..32abbe4
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,3 @@
+packages:
+ - 'src/main/frontend'
+ - 'src/main/frontend/cypress'
diff --git a/pom.xml b/pom.xml
index 35a7c4d..986740a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,34 +10,40 @@
org.frankframework
- multi-module-template
+ webapp-template
${revision}
- parent
- Parent for the Multi-Module template repository
- pom
-
-
- Matthijs Smets
- matthijs.smets@wearefrank.nl
- Frank!Framework
- https://frankframework.org
-
-
-
-
- frontend
- backend
- builder
-
+ WebApp Template
+ A Template for a WebApp Project
1.0.0
21
3.5.5
+ 1.18.38
+
+
+
+
UTF-8
21
21
+
+
+
+ Matthijs Smets
+ matthijs.smets@frankframework.org
+ Frank!Framework
+ https://frankframework.org
+
+
+ Sergi Philipsen
+ sergi@frankframework.org
+ Frank!Framework
+ https://frankframework.org
+
+
+
org.springframework.boot
@@ -47,19 +53,126 @@
org.springframework.boot
spring-boot-starter-web
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+ provided
+
org.springframework.boot
spring-boot-starter-test
test
+
+ io.github.wimdeblauwe
+ testcontainers-cypress
+ 1.9.1
+ test
+
+
+ com.google.code.findbugs
+ jsr305
+
+
+
+
+
+ org.testcontainers
+ junit-jupiter
+ test
+
+
+
+ src/test/resources
+
+
org.springframework.boot
spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.5.1
+
+
+ pnpm install
+
+ exec
+
+ generate-resources
+
+ src/main/frontend
+ pnpm
+
+ i
+ --frozen-lockfile
+
+
+
+
+ pnpm build
+
+ exec
+
+ generate-resources
+
+ src/main/frontend
+ pnpm
+
+ run
+ build
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+
+
+ copy-frontend-to-TestClasses
+ process-test-resources
+
+ copy-resources
+
+
+ ${project.build.testOutputDirectory}
+
+
+
+ ${project.basedir}/src/main/frontend
+ false
+ e2e
+
+ tsconfig.json
+ cypress/**
+
+
+
+
+
+
diff --git a/frontend/.editorconfig b/src/main/frontend/.editorconfig
similarity index 100%
rename from frontend/.editorconfig
rename to src/main/frontend/.editorconfig
diff --git a/frontend/.gitattributes b/src/main/frontend/.gitattributes
similarity index 100%
rename from frontend/.gitattributes
rename to src/main/frontend/.gitattributes
diff --git a/frontend/.gitignore b/src/main/frontend/.gitignore
similarity index 84%
rename from frontend/.gitignore
rename to src/main/frontend/.gitignore
index cc7b141..0ca8f33 100644
--- a/frontend/.gitignore
+++ b/src/main/frontend/.gitignore
@@ -11,15 +11,6 @@
npm-debug.log
yarn-error.log
-# IDEs and editors
-.idea/
-.project
-.classpath
-.c9/
-*.launch
-.settings/
-*.sublime-workspace
-
# Visual Studio Code
.vscode/*
!.vscode/settings.json
@@ -40,3 +31,6 @@ testem.log
# System files
.DS_Store
Thumbs.db
+
+# Cypress
+cypress/test-results
diff --git a/frontend/.prettierrc b/src/main/frontend/.prettierrc
similarity index 100%
rename from frontend/.prettierrc
rename to src/main/frontend/.prettierrc
diff --git a/frontend/README.md b/src/main/frontend/README.md
similarity index 100%
rename from frontend/README.md
rename to src/main/frontend/README.md
diff --git a/frontend/angular.json b/src/main/frontend/angular.json
similarity index 64%
rename from frontend/angular.json
rename to src/main/frontend/angular.json
index a7c2f35..afbd7ae 100644
--- a/frontend/angular.json
+++ b/src/main/frontend/angular.json
@@ -13,8 +13,10 @@
"build": {
"builder": "@angular/build:application",
"options": {
- "outputPath": "dist",
- "browser": "src/main.ts",
+ "outputPath": {
+ "base": "../../../target/classes/frontend",
+ "browser": ""
+ },
"polyfills": [
"zone.js"
],
@@ -60,7 +62,8 @@
"buildTarget": "angular-demo-project:build:production"
},
"development": {
- "buildTarget": "angular-demo-project:build:development"
+ "buildTarget": "angular-demo-project:build:development",
+ "proxyConfig": "src/proxy.conf.json"
}
},
"defaultConfiguration": "development"
@@ -86,6 +89,49 @@
"src/styles.css"
]
}
+ },
+ "lint": {
+ "builder": "@angular-eslint/builder:lint",
+ "options": {
+ "lintFilePatterns": [
+ "src/**/*.ts",
+ "src/**/*.html"
+ ]
+ }
+ },
+ "cypress-run": {
+ "builder": "@cypress/schematic:cypress",
+ "options": {
+ "devServerTarget": "angular-demo-project:serve",
+ "project": "cypress"
+ },
+ "configurations": {
+ "production": {
+ "devServerTarget": "angular-demo-project:serve:production"
+ }
+ }
+ },
+ "cypress-open": {
+ "builder": "@cypress/schematic:cypress",
+ "options": {
+ "watch": true,
+ "headless": false,
+ "project": "cypress"
+ }
+ },
+ "e2e": {
+ "builder": "@cypress/schematic:cypress",
+ "options": {
+ "devServerTarget": "angular-demo-project:serve",
+ "watch": true,
+ "headless": false,
+ "project": "cypress"
+ },
+ "configurations": {
+ "production": {
+ "devServerTarget": "angular-demo-project:serve:production"
+ }
+ }
}
}
}
@@ -94,6 +140,7 @@
"analytics": false,
"packageManager": "pnpm",
"schematicCollections": [
+ "angular-eslint",
"@schematics/angular",
"@cypress/schematic",
"angular-eslint"
diff --git a/src/main/frontend/cypress/cypress.config.ts b/src/main/frontend/cypress/cypress.config.ts
new file mode 100644
index 0000000..53c6a34
--- /dev/null
+++ b/src/main/frontend/cypress/cypress.config.ts
@@ -0,0 +1,15 @@
+// frontend/cypress.config.ts
+import { defineConfig } from 'cypress'
+
+export default defineConfig({
+ video: true,
+ reporter: 'cypress-multi-reporters',
+ reporterOptions: { configFile: 'reporter-config.json' },
+ videosFolder: 'test-results/videos',
+ screenshotsFolder: 'test-results/screenshot',
+ e2e: {
+ baseUrl: 'http://localhost:4200',
+ specPattern: 'e2e/**/*.cy.{js,jsx,ts,tsx}',
+ supportFile: 'support/e2e.ts',
+ },
+})
diff --git a/src/main/frontend/cypress/e2e/test-spec.cy.ts b/src/main/frontend/cypress/e2e/test-spec.cy.ts
new file mode 100644
index 0000000..131d3d8
--- /dev/null
+++ b/src/main/frontend/cypress/e2e/test-spec.cy.ts
@@ -0,0 +1,7 @@
+describe('Simple e2e test for template repository', () => {
+ it('should display Hello World from the backend', () => {
+ cy.log('baseUrl = ' + Cypress.config('baseUrl'))
+ cy.visit('')
+ cy.get('[data-test="backend-response"]').should('have.text', 'Hello World!')
+ })
+})
diff --git a/src/main/frontend/cypress/fixtures/example.json b/src/main/frontend/cypress/fixtures/example.json
new file mode 100644
index 0000000..02e4254
--- /dev/null
+++ b/src/main/frontend/cypress/fixtures/example.json
@@ -0,0 +1,5 @@
+{
+ "name": "Using fixtures to represent data",
+ "email": "hello@cypress.io",
+ "body": "Fixtures are a great way to mock data for responses to routes"
+}
diff --git a/src/main/frontend/cypress/package.json b/src/main/frontend/cypress/package.json
new file mode 100644
index 0000000..07f82f4
--- /dev/null
+++ b/src/main/frontend/cypress/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "ff-frontend-template-e2e",
+ "version": "0.0.0",
+ "private": true,
+ "devDependencies": {
+ "cypress": "^15.0.0",
+ "cypress-multi-reporters": "^2.0.5",
+ "mocha": "^11.7.2",
+ "mochawesome": "^7.1.3"
+ },
+ "packageManager": "pnpm@10.14.0+sha512.ad27a79641b49c3e481a16a805baa71817a04bbe06a38d17e60e2eaee83f6a146c6a688125f5792e48dd5ba30e7da52a5cda4c3992b9ccf333f9ce223af84748"
+}
diff --git a/src/main/frontend/cypress/reporter-config.json b/src/main/frontend/cypress/reporter-config.json
new file mode 100644
index 0000000..2bc91c1
--- /dev/null
+++ b/src/main/frontend/cypress/reporter-config.json
@@ -0,0 +1,9 @@
+{
+ "reporterEnabled": "spec, mochawesome",
+ "mochawesomeReporterOptions": {
+ "reportDir": "test-results/reports/mochawesome",
+ "overwrite": false,
+ "html": false,
+ "json": true
+ }
+}
diff --git a/src/main/frontend/cypress/support/commands.ts b/src/main/frontend/cypress/support/commands.ts
new file mode 100644
index 0000000..698b01a
--- /dev/null
+++ b/src/main/frontend/cypress/support/commands.ts
@@ -0,0 +1,37 @@
+///
+// ***********************************************
+// This example commands.ts shows you how to
+// create various custom commands and overwrite
+// existing commands.
+//
+// For more comprehensive examples of custom
+// commands please read more here:
+// https://on.cypress.io/custom-commands
+// ***********************************************
+//
+//
+// -- This is a parent command --
+// Cypress.Commands.add('login', (email, password) => { ... })
+//
+//
+// -- This is a child command --
+// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
+//
+//
+// -- This is a dual command --
+// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
+//
+//
+// -- This will overwrite an existing command --
+// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
+//
+// declare global {
+// namespace Cypress {
+// interface Chainable {
+// login(email: string, password: string): Chainable
+// drag(subject: string, options?: Partial): Chainable
+// dismiss(subject: string, options?: Partial): Chainable
+// visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable
+// }
+// }
+// }
\ No newline at end of file
diff --git a/src/main/frontend/cypress/support/e2e.ts b/src/main/frontend/cypress/support/e2e.ts
new file mode 100644
index 0000000..a9c37d9
--- /dev/null
+++ b/src/main/frontend/cypress/support/e2e.ts
@@ -0,0 +1,2 @@
+// frontend/cypress/support/e2e.ts
+import './commands'
diff --git a/src/main/frontend/cypress/tsconfig.json b/src/main/frontend/cypress/tsconfig.json
new file mode 100644
index 0000000..a4e6cab
--- /dev/null
+++ b/src/main/frontend/cypress/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../tsconfig.json",
+ "include": ["./**/*.ts", "cypress.config.ts"],
+ "exclude": [],
+ "compilerOptions": {
+ "sourceMap": false,
+ "types": ["cypress"],
+ }
+}
diff --git a/frontend/eslint.config.mjs b/src/main/frontend/eslint.config.js
similarity index 100%
rename from frontend/eslint.config.mjs
rename to src/main/frontend/eslint.config.js
diff --git a/src/main/frontend/eslint.config.mjs b/src/main/frontend/eslint.config.mjs
new file mode 100644
index 0000000..1a59448
--- /dev/null
+++ b/src/main/frontend/eslint.config.mjs
@@ -0,0 +1,282 @@
+import typescriptParser from '@typescript-eslint/parser';
+import prettierPlugin from 'eslint-plugin-prettier';
+import tsPlugin from '@typescript-eslint/eslint-plugin';
+import angularPlugin from '@angular-eslint/eslint-plugin';
+import angularTemplate from '@angular-eslint/eslint-plugin-template';
+import angularTemplateParser from '@angular-eslint/template-parser';
+import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
+import eslintPluginUnicorn from 'eslint-plugin-unicorn';
+import js from '@eslint/js';
+import eslintConfigPrettier from 'eslint-config-prettier';
+
+export default [
+ {
+ ignores: ['.cache/', '.git/', '.github/', 'node_modules/'],
+ },
+ {
+ files: ['**/*.ts'],
+ languageOptions: {
+ parser: typescriptParser,
+ parserOptions: {
+ project: ['./tsconfig.json', './tsconfig.app.json', './tsconfig.spec.json'],
+ },
+ },
+ plugins: {
+ '@typescript-eslint': tsPlugin,
+ '@angular-eslint': angularPlugin,
+ prettier: prettierPlugin,
+ },
+ rules: {
+ // TypeScript: https://typescript-eslint.io/rules/
+ ...tsPlugin.configs.recommended.rules,
+ ...tsPlugin.configs.stylistic.rules,
+ '@typescript-eslint/explicit-function-return-type': 'error',
+ '@typescript-eslint/triple-slash-reference': 'warn',
+ '@typescript-eslint/member-ordering': [
+ 'error',
+ {
+ default: {
+ memberTypes: [
+ // Index signature
+ 'signature',
+ 'call-signature',
+
+ // Fields
+ 'public-static-field',
+ 'protected-static-field',
+ 'private-static-field',
+ '#private-static-field',
+
+ 'public-decorated-field',
+ 'protected-decorated-field',
+ 'private-decorated-field',
+
+ 'public-instance-field',
+ 'protected-instance-field',
+ 'private-instance-field',
+ '#private-instance-field',
+
+ 'public-abstract-field',
+ 'protected-abstract-field',
+
+ 'public-field',
+ 'protected-field',
+ 'private-field',
+ '#private-field',
+
+ 'static-field',
+ 'instance-field',
+ 'abstract-field',
+
+ 'decorated-field',
+
+ 'field',
+
+ // Static initialization
+ 'static-initialization',
+
+ // Constructors
+ 'public-constructor',
+ 'protected-constructor',
+ 'private-constructor',
+
+ 'constructor',
+
+ // Accessors
+ 'public-static-accessor',
+ 'protected-static-accessor',
+ 'private-static-accessor',
+ '#private-static-accessor',
+
+ 'public-decorated-accessor',
+ 'protected-decorated-accessor',
+ 'private-decorated-accessor',
+
+ 'public-instance-accessor',
+ 'protected-instance-accessor',
+ 'private-instance-accessor',
+ '#private-instance-accessor',
+
+ 'public-abstract-accessor',
+ 'protected-abstract-accessor',
+
+ 'public-accessor',
+ 'protected-accessor',
+ 'private-accessor',
+ '#private-accessor',
+
+ 'static-accessor',
+ 'instance-accessor',
+ 'abstract-accessor',
+
+ 'decorated-accessor',
+
+ 'accessor',
+
+ // Getters and Setters (merged)
+ ['public-static-get', 'public-static-set'],
+ ['protected-static-get', 'protected-static-set'],
+ ['private-static-get', 'private-static-set'],
+ ['#private-static-get', '#private-static-set'],
+
+ ['public-decorated-get', 'public-decorated-set'],
+ ['protected-decorated-get', 'protected-decorated-set'],
+ ['private-decorated-get', 'private-decorated-set'],
+
+ ['public-instance-get', 'public-instance-set'],
+ ['protected-instance-get', 'protected-instance-set'],
+ ['private-instance-get', 'private-instance-set'],
+ ['#private-instance-get', '#private-instance-set'],
+
+ ['public-abstract-get', 'public-abstract-set'],
+ ['protected-abstract-get', 'protected-abstract-set'],
+
+ ['public-get', 'public-set'],
+ ['protected-get', 'protected-set'],
+ ['private-get', 'private-set'],
+ ['#private-get', '#private-set'],
+
+ ['static-get', 'static-set'],
+ ['instance-get', 'instance-set'],
+ ['abstract-get', 'abstract-set'],
+
+ ['decorated-get', 'decorated-set'],
+
+ ['get', 'set'],
+
+ // Methods
+ 'public-static-method',
+ 'protected-static-method',
+ 'private-static-method',
+ '#private-static-method',
+
+ 'public-decorated-method',
+ 'protected-decorated-method',
+ 'private-decorated-method',
+
+ 'public-instance-method',
+ 'protected-instance-method',
+ 'private-instance-method',
+ '#private-instance-method',
+
+ 'public-abstract-method',
+ 'protected-abstract-method',
+
+ 'public-method',
+ 'protected-method',
+ 'private-method',
+ '#private-method',
+
+ 'static-method',
+ 'instance-method',
+ 'abstract-method',
+
+ 'decorated-method',
+
+ 'method',
+ ],
+ },
+ },
+ ],
+ '@typescript-eslint/consistent-type-definitions': ['error', 'type'],
+ '@typescript-eslint/no-unused-vars': [
+ 'error',
+ {
+ args: 'all',
+ argsIgnorePattern: '^_',
+ caughtErrors: 'all',
+ caughtErrorsIgnorePattern: '^_',
+ destructuredArrayIgnorePattern: '^_',
+ varsIgnorePattern: '^_',
+ ignoreRestSiblings: true,
+ },
+ ],
+
+ // Angular: https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/README.md
+ ...angularPlugin.configs.recommended.rules,
+ '@angular-eslint/directive-selector': ['error', { type: 'attribute', prefix: 'app', style: 'camelCase' }],
+ '@angular-eslint/component-selector': ['error', { type: 'element', prefix: 'app', style: 'kebab-case' }],
+
+ // EcmaScript: https://eslint.org/docs/latest/rules/
+ ...js.configs.recommended.rules,
+ 'prefer-template': 'error',
+ 'no-undef': 'off',
+ 'no-unused-vars': 'off', // Handled by @typescript-eslint/no-unused-vars
+
+ // Prettier: https://github.com/prettier/eslint-config-prettier?tab=readme-ov-file#special-rules
+ ...eslintConfigPrettier.rules,
+ 'prettier/prettier': 'warn',
+ },
+ },
+ {
+ files: ['**/*.html'],
+ languageOptions: {
+ parser: angularTemplateParser,
+ },
+ plugins: {
+ '@angular-eslint': angularPlugin,
+ '@angular-eslint/template': angularTemplate,
+ prettier: prettierPlugin,
+ },
+ rules: {
+ // Angular template: https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/README.md
+ ...angularTemplate.configs.recommended.rules,
+ ...angularTemplate.configs.accessibility.rules,
+ '@angular-eslint/template/prefer-self-closing-tags': 'error',
+ '@angular-eslint/template/no-interpolation-in-attributes': ['error'],
+ '@angular-eslint/template/click-events-have-key-events': 'off',
+ '@angular-eslint/template/interactive-supports-focus': [
+ 'error',
+ {
+ allowList: ['li'],
+ },
+ ],
+ '@angular-eslint/contextual-decorator': 'warn',
+ '@angular-eslint/prefer-signals': 'error',
+ '@angular-eslint/template/attributes-order': [
+ 'error',
+ {
+ alphabetical: false,
+ order: [
+ 'TEMPLATE_REFERENCE',
+ 'ATTRIBUTE_BINDING',
+ 'STRUCTURAL_DIRECTIVE',
+ 'INPUT_BINDING',
+ 'TWO_WAY_BINDING',
+ 'OUTPUT_BINDING',
+ ],
+ },
+ ],
+
+ // Prettier: https://github.com/prettier/eslint-config-prettier?tab=readme-ov-file#special-rules
+ ...eslintConfigPrettier.rules,
+ 'prettier/prettier': ['error', { parser: 'angular' }],
+ },
+ },
+ // Unicorn: https://github.com/sindresorhus/eslint-plugin-unicorn
+ eslintPluginUnicorn.configs.recommended,
+ {
+ rules: {
+ 'unicorn/prevent-abbreviations': 'warn',
+ 'unicorn/no-array-reduce': 'off',
+ 'unicorn/prefer-ternary': 'warn',
+ 'unicorn/no-null': 'off',
+ 'unicorn/prefer-dom-node-text-content': 'warn',
+ 'unicorn/consistent-function-scoping': [
+ 'error',
+ {
+ checkArrowFunctions: false,
+ },
+ ],
+ },
+ },
+ eslintPluginPrettierRecommended,
+ // SonarJS: https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/README.md
+ // sonarjs.configs.recommended,
+ // {
+ // rules: {
+ // 'sonarjs/cognitive-complexity': 'error',
+ // 'sonarjs/no-duplicate-string': 'error',
+ // },
+ // },
+];
diff --git a/frontend/package.json b/src/main/frontend/package.json
similarity index 79%
rename from frontend/package.json
rename to src/main/frontend/package.json
index f92796e..e8eaddf 100644
--- a/frontend/package.json
+++ b/src/main/frontend/package.json
@@ -7,7 +7,10 @@
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test",
- "lint": "ng lint"
+ "lint": "ng lint",
+ "e2e": "ng e2e",
+ "cypress:open": "cypress open --project cypress",
+ "cypress:run": "cypress run --project cypress"
},
"private": true,
"dependencies": {
@@ -22,22 +25,21 @@
"zone.js": "~0.15.0"
},
"devDependencies": {
+ "@angular-eslint/builder": "20.2.0",
"@angular/build": "^20.2.1",
"@angular/cli": "^20.2.1",
"@angular/compiler-cli": "^20.2.1",
- "@angular-eslint/eslint-plugin": "^20.2.0",
- "@angular-eslint/eslint-plugin-template": "^20.2.0",
- "@angular-eslint/template-parser": "^20.2.0",
- "@types/jasmine": "~5.1.0",
+ "@cypress/schematic": "4.1.2",
"@eslint/eslintrc": "^3.3.0",
- "@eslint/js": "^9.34.0",
- "angular-eslint": "^20.2.0",
- "jasmine-core": "~5.9.0",
- "eslint": "^9.34.0",
+ "@eslint/js": "^9.33.0",
+ "@types/jasmine": "~5.1.0",
+ "angular-eslint": "20.2.0",
+ "eslint": "^9.33.0",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-sonarjs": "^3.0.2",
"eslint-plugin-unicorn": "^57.0.0",
+ "jasmine-core": "~5.9.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
@@ -45,7 +47,7 @@
"karma-jasmine-html-reporter": "~2.1.0",
"prettier": "^3.6.2",
"typescript": "~5.9.2",
- "typescript-eslint": "^8.40.0"
+ "typescript-eslint": "8.40.0"
},
"packageManager": "pnpm@10.14.0+sha512.ad27a79641b49c3e481a16a805baa71817a04bbe06a38d17e60e2eaee83f6a146c6a688125f5792e48dd5ba30e7da52a5cda4c3992b9ccf333f9ce223af84748"
}
diff --git a/frontend/public/favicon.ico b/src/main/frontend/public/favicon.ico
similarity index 100%
rename from frontend/public/favicon.ico
rename to src/main/frontend/public/favicon.ico
diff --git a/frontend/src/app/app.config.ts b/src/main/frontend/src/app/app.config.ts
similarity index 62%
rename from frontend/src/app/app.config.ts
rename to src/main/frontend/src/app/app.config.ts
index d953f4c..fb54707 100644
--- a/frontend/src/app/app.config.ts
+++ b/src/main/frontend/src/app/app.config.ts
@@ -2,11 +2,13 @@ import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZoneChang
import { provideRouter } from '@angular/router';
import { routes } from './app.routes';
+import { provideHttpClient, withFetch } from '@angular/common/http';
export const appConfig: ApplicationConfig = {
providers: [
provideBrowserGlobalErrorListeners(),
- provideZoneChangeDetection({ eventCoalescing: true }),
- provideRouter(routes)
+ provideZoneChangeDetection({eventCoalescing: true}),
+ provideRouter(routes),
+ provideHttpClient(withFetch()),
]
};
diff --git a/frontend/src/app/app.css b/src/main/frontend/src/app/app.css
similarity index 100%
rename from frontend/src/app/app.css
rename to src/main/frontend/src/app/app.css
diff --git a/src/main/frontend/src/app/app.html b/src/main/frontend/src/app/app.html
new file mode 100644
index 0000000..c24b13f
--- /dev/null
+++ b/src/main/frontend/src/app/app.html
@@ -0,0 +1 @@
+{{ backendResponse || "Something went wrong" }}
diff --git a/frontend/src/app/app.routes.ts b/src/main/frontend/src/app/app.routes.ts
similarity index 100%
rename from frontend/src/app/app.routes.ts
rename to src/main/frontend/src/app/app.routes.ts
diff --git a/frontend/src/app/app.spec.ts b/src/main/frontend/src/app/app.spec.ts
similarity index 100%
rename from frontend/src/app/app.spec.ts
rename to src/main/frontend/src/app/app.spec.ts
diff --git a/src/main/frontend/src/app/app.ts b/src/main/frontend/src/app/app.ts
new file mode 100644
index 0000000..386ec14
--- /dev/null
+++ b/src/main/frontend/src/app/app.ts
@@ -0,0 +1,21 @@
+import { Component, inject, OnInit } from '@angular/core';
+import { TestResponse, TestService } from './services/test.service';
+
+@Component({
+ selector: 'app-root',
+ imports: [],
+ templateUrl: './app.html',
+ styleUrl: './app.css'
+})
+export class App implements OnInit {
+ private readonly testService: TestService = inject(TestService);
+
+ protected backendResponse?: string;
+
+ ngOnInit(): void {
+ this.testService.getHelloWorld().subscribe((response: TestResponse) => {
+ this.backendResponse = response.data;
+ })
+ }
+
+}
diff --git a/src/main/frontend/src/app/pages/.gitkeep b/src/main/frontend/src/app/pages/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/frontend/src/app/services/test.service.ts b/src/main/frontend/src/app/services/test.service.ts
new file mode 100644
index 0000000..d989e6f
--- /dev/null
+++ b/src/main/frontend/src/app/services/test.service.ts
@@ -0,0 +1,19 @@
+import { inject, Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { Observable } from 'rxjs';
+
+export interface TestResponse {
+ data: string;
+}
+
+@Injectable({
+ providedIn: 'root'
+})
+export class TestService {
+
+ private readonly http: HttpClient = inject(HttpClient);
+
+ getHelloWorld(): Observable {
+ return this.http.get('/api/test');
+ }
+}
diff --git a/frontend/src/index.html b/src/main/frontend/src/index.html
similarity index 100%
rename from frontend/src/index.html
rename to src/main/frontend/src/index.html
diff --git a/src/main/frontend/src/main.ts b/src/main/frontend/src/main.ts
new file mode 100644
index 0000000..46eb6d2
--- /dev/null
+++ b/src/main/frontend/src/main.ts
@@ -0,0 +1,6 @@
+import { bootstrapApplication } from '@angular/platform-browser';
+import { App } from './app/app';
+import { appConfig } from './app/app.config';
+
+
+bootstrapApplication(App, appConfig).catch((err) => console.error(err));
diff --git a/src/main/frontend/src/proxy.conf.json b/src/main/frontend/src/proxy.conf.json
new file mode 100644
index 0000000..5e36577
--- /dev/null
+++ b/src/main/frontend/src/proxy.conf.json
@@ -0,0 +1,8 @@
+{
+ "/api": {
+ "target": "http://localhost:8080/api/",
+ "secure": false,
+ "changeOrigin": true,
+ "ws": true
+ }
+}
diff --git a/frontend/src/styles.css b/src/main/frontend/src/styles.css
similarity index 100%
rename from frontend/src/styles.css
rename to src/main/frontend/src/styles.css
diff --git a/frontend/tsconfig.app.json b/src/main/frontend/tsconfig.app.json
similarity index 100%
rename from frontend/tsconfig.app.json
rename to src/main/frontend/tsconfig.app.json
diff --git a/frontend/tsconfig.json b/src/main/frontend/tsconfig.json
similarity index 95%
rename from frontend/tsconfig.json
rename to src/main/frontend/tsconfig.json
index e4955f2..e9d7b4b 100644
--- a/frontend/tsconfig.json
+++ b/src/main/frontend/tsconfig.json
@@ -1,6 +1,9 @@
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
+ "exclude": [
+ "./cypress/**/*",
+ ],
"compileOnSave": false,
"compilerOptions": {
"strict": true,
diff --git a/frontend/tsconfig.spec.json b/src/main/frontend/tsconfig.spec.json
similarity index 100%
rename from frontend/tsconfig.spec.json
rename to src/main/frontend/tsconfig.spec.json
diff --git a/src/main/java/org/frankframework/application/Application.java b/src/main/java/org/frankframework/application/Application.java
new file mode 100644
index 0000000..128c0e7
--- /dev/null
+++ b/src/main/java/org/frankframework/application/Application.java
@@ -0,0 +1,19 @@
+package org.frankframework.application;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication app = configureApplication();
+ app.run(args);
+ }
+
+
+
+ public static SpringApplication configureApplication() {
+ return new SpringApplication(Application.class);
+ }
+}
diff --git a/backend/src/main/java/org/frankframework/backend/ApiPrefixConfig.java b/src/main/java/org/frankframework/application/config/ApiPrefixConfig.java
similarity index 92%
rename from backend/src/main/java/org/frankframework/backend/ApiPrefixConfig.java
rename to src/main/java/org/frankframework/application/config/ApiPrefixConfig.java
index 2e7cac7..f08c3b8 100644
--- a/backend/src/main/java/org/frankframework/backend/ApiPrefixConfig.java
+++ b/src/main/java/org/frankframework/application/config/ApiPrefixConfig.java
@@ -1,4 +1,4 @@
-package org.frankframework.backend;
+package org.frankframework.application.config;
import org.springframework.context.annotation.Configuration;
diff --git a/src/main/java/org/frankframework/application/config/CorsConfig.java b/src/main/java/org/frankframework/application/config/CorsConfig.java
new file mode 100644
index 0000000..2ba2325
--- /dev/null
+++ b/src/main/java/org/frankframework/application/config/CorsConfig.java
@@ -0,0 +1,23 @@
+package org.frankframework.application.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class CorsConfig implements WebMvcConfigurer {
+
+ @Value("${cors.allowed.origins:}")
+ private String[] allowedOrigins;
+
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry.addMapping("/**")
+ .allowedOrigins(allowedOrigins)
+ .allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS")
+ .allowedHeaders("*")
+ .allowCredentials(false)
+ .maxAge(3600);
+ }
+}
diff --git a/backend/src/main/java/org/frankframework/backend/FrontendForwardController.java b/src/main/java/org/frankframework/application/endpoints/FrontendForwardController.java
similarity index 88%
rename from backend/src/main/java/org/frankframework/backend/FrontendForwardController.java
rename to src/main/java/org/frankframework/application/endpoints/FrontendForwardController.java
index 7bf7e38..f88c460 100644
--- a/backend/src/main/java/org/frankframework/backend/FrontendForwardController.java
+++ b/src/main/java/org/frankframework/application/endpoints/FrontendForwardController.java
@@ -1,4 +1,4 @@
-package org.frankframework.backend;
+package org.frankframework.application.endpoints;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
diff --git a/backend/src/main/java/org/frankframework/backend/TestController.java b/src/main/java/org/frankframework/application/endpoints/TestController.java
similarity index 59%
rename from backend/src/main/java/org/frankframework/backend/TestController.java
rename to src/main/java/org/frankframework/application/endpoints/TestController.java
index fd2f80e..1eaabdc 100644
--- a/backend/src/main/java/org/frankframework/backend/TestController.java
+++ b/src/main/java/org/frankframework/application/endpoints/TestController.java
@@ -1,6 +1,7 @@
-package org.frankframework.backend;
+package org.frankframework.application.endpoints;
+import org.frankframework.application.models.TestResponse;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -10,7 +11,7 @@
@RequestMapping("/test")
public class TestController {
@GetMapping
- public ResponseEntity test() {
- return ResponseEntity.ok("Hello World");
+ public ResponseEntity test() {
+ return ResponseEntity.ok(new TestResponse("Hello World!"));
}
}
diff --git a/src/main/java/org/frankframework/application/models/TestResponse.java b/src/main/java/org/frankframework/application/models/TestResponse.java
new file mode 100644
index 0000000..5b5ee19
--- /dev/null
+++ b/src/main/java/org/frankframework/application/models/TestResponse.java
@@ -0,0 +1,4 @@
+package org.frankframework.application.models;
+
+public record TestResponse(String data) {
+}
diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties
new file mode 100644
index 0000000..43d0ef4
--- /dev/null
+++ b/src/main/resources/application-dev.properties
@@ -0,0 +1 @@
+cors.allowed.origins=*
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
new file mode 100644
index 0000000..6aee9c4
--- /dev/null
+++ b/src/main/resources/application.properties
@@ -0,0 +1,3 @@
+spring.application.name=webapp-template
+spring.web.resources.static-locations=classpath:/frontend/
+spring.profiles.active=dev
\ No newline at end of file
diff --git a/backend/src/test/java/org/frankframework/backend/BackendApplicationTests.java b/src/test/java/org/frankframework/application/ApplicationTests.java
similarity index 75%
rename from backend/src/test/java/org/frankframework/backend/BackendApplicationTests.java
rename to src/test/java/org/frankframework/application/ApplicationTests.java
index a19f6ea..d9ca6a0 100644
--- a/backend/src/test/java/org/frankframework/backend/BackendApplicationTests.java
+++ b/src/test/java/org/frankframework/application/ApplicationTests.java
@@ -1,10 +1,10 @@
-package org.frankframework.backend;
+package org.frankframework.application;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
-class BackendApplicationTests {
+class ApplicationTests {
@Test
void contextLoads() {
diff --git a/src/test/java/org/frankframework/application/RunCypressE2eTest.java b/src/test/java/org/frankframework/application/RunCypressE2eTest.java
new file mode 100644
index 0000000..6217092
--- /dev/null
+++ b/src/test/java/org/frankframework/application/RunCypressE2eTest.java
@@ -0,0 +1,137 @@
+package org.frankframework.application;
+
+import io.github.wimdeblauwe.testcontainers.cypress.CypressContainer;
+import io.github.wimdeblauwe.testcontainers.cypress.CypressTestResults;
+import io.github.wimdeblauwe.testcontainers.cypress.CypressTestSuite;
+import jakarta.annotation.Nonnull;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.DynamicContainer;
+import org.junit.jupiter.api.DynamicTest;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.TestFactory;
+import org.springframework.boot.SpringApplication;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.testcontainers.junit.jupiter.Testcontainers;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.time.Duration;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.stream.Stream;
+
+import static org.awaitility.Awaitility.await;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+/**
+ * Runs e2e tests with Cypress in a Testcontainer.
+ * Requires Docker, else the test will be skipped.
+ *
+ * Exclude with '-DexcludedGroups=integration'
+ *
+ * @author Sergi Philipsen
+ * @see "https://github.com/wimdeblauwe/testcontainers-cypress"
+ */
+@Log4j2
+@Testcontainers(disabledWithoutDocker = true)
+@Tag("integration")
+public class RunCypressE2eTest {
+ private static final String SPRING_BASE_URL = "http://localhost:8080";
+ private static final String TEST_CONTAINER_BASE_URL = "http://host.testcontainers.internal:8080";
+ private static final Path MOCHAWESOME_REPORTS_DIR = Paths.get("target/test-classes/e2e/cypress/test-results/reports/mochawesome");
+
+ private static CypressContainer container;
+ private static ConfigurableApplicationContext run;
+
+ @BeforeAll
+ static void setUp() {
+ startApplication();
+ startTestContainer();
+ }
+
+ private static void startApplication() {
+ SpringApplication springApplication = Application.configureApplication();
+
+ run = springApplication.run();
+
+ assertTrue(run.isRunning());
+ await().pollInterval(5, TimeUnit.SECONDS)
+ .atMost(Duration.ofMinutes(5))
+ .until(RunCypressE2eTest::isApplicationHealthy);
+ }
+
+ private static boolean isApplicationHealthy() {
+ try {
+ String url = SPRING_BASE_URL + "/actuator/health";
+ HttpRequest req = HttpRequest.newBuilder(URI.create(url))
+ .GET()
+ .build();
+ HttpResponse resp = HttpClient.newHttpClient()
+ .send(req, HttpResponse.BodyHandlers.ofString());
+ return resp.statusCode() == 200 && resp.body().contains("UP");
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+
+ public static void startTestContainer() {
+ org.testcontainers.Testcontainers.exposeHostPorts(8080);
+
+ container = new CypressContainer("cypress/included:15.0.0");
+
+ // It has to be like this and not use the builder
+ container.withBaseUrl(TEST_CONTAINER_BASE_URL);
+ container.withMochawesomeReportsAt(MOCHAWESOME_REPORTS_DIR);
+ container.withClasspathResourcePath("e2e");
+ container.withWorkingDirectory("/e2e/cypress");
+
+ container.start();
+ assertTrue(container.isRunning());
+ }
+
+ @AfterAll
+ static void tearDown() {
+ if (run == null) return;
+
+ run.stop();
+ container.stop();
+
+ assertFalse(run.isRunning());
+ assertFalse(container.isRunning());
+
+ run.close();
+ }
+
+ @TestFactory
+ @Nonnull
+ Stream runCypressTests() throws InterruptedException, IOException, TimeoutException {
+ CypressTestResults testResults = container.getTestResults();
+
+ return testResults.getSuites()
+ .stream()
+ .map(this::createContainerFromSuite);
+ }
+
+ private DynamicContainer createContainerFromSuite(CypressTestSuite suite) {
+ Stream dynamicTests = suite.getTests().stream()
+ .map(test -> DynamicTest.dynamicTest(
+ test.getDescription(), () -> {
+ if (!test.isSuccess()) {
+ assertTrue(isApplicationHealthy(), "!! application not reachable !!");
+ }
+ assertTrue(test.isSuccess(), test::getErrorMessage);
+ }
+ ));
+
+ return DynamicContainer.dynamicContainer(suite.getTitle(), dynamicTests);
+ }
+}