chore(login): remove integration tests (#11608)

# Which Problems Are Solved

Removes the Cypress integration tests and associated configuration from
the apps/login project to streamline the build process.

# How the Problems Are Solved

- Removed cypress directory, integration directory, and
cypress.config.ts from apps/login.
- Updated project.json to remove test-integration targets and
dependencies.
- Updated package.json to remove the cypress dev dependency and clean
script reference.
- Updated tsconfig.json to remove the now-redundant integration
exclusion.
- Ensured acceptance tests are preserved and correctly excluded from
build inputs.

---------

Co-authored-by: Florian Forster <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: conblem <[email protected]>
This commit is contained in:
Max Peintner
2026-03-17 14:16:39 +00:00
committed by GitHub
co-authored by Florian Forster Copilot conblem
parent c3a6bdb0bb
commit c1be72765c
23 changed files with 247 additions and 1064 deletions
+4 -7
View File
@@ -1,7 +1,7 @@
name: Lint Test Build
on:
workflow_call:
on:
workflow_call:
inputs:
go_version:
required: true
@@ -56,15 +56,12 @@ jobs:
version: v2.38.2
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Install Cypress binary
run: pnpm cypress install
working-directory: apps/login
- name: Set SHAs for nx affected commands
uses: nrwl/nx-set-shas@v4
- name: Lint, Test and Build
env:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN || secrets.NX_CLOUD_ACCESS_TOKEN_READONLY }}
# NX_NATIVE_LOGGING: "nx::native::cache,nx::native::db"
# NX_NATIVE_LOGGING: "nx::native::cache,nx::native::db"
NX_DAEMON: "false"
NX_DISABLE_DB: "true"
run: pnpm nx affected --nxBail --targets lint test build --exclude @zitadel/docs
@@ -95,7 +92,7 @@ jobs:
with:
name: api-integration-test-race-logs
path: |
.artifacts/api-test-integration/race.log.*
.artifacts/api-test-integration/race.log.*
- name: Upload Functional UI Test Artifacts
uses: actions/upload-artifact@v4
if: failure() || cancelled()
-2
View File
@@ -1,2 +0,0 @@
API_MOCK_STUBS_HOST=${DEVCONTAINER_LOGIN_API_MOCK_HOST:-localhost}
API_MOCK_STUBS_URL=http://${API_MOCK_STUBS_HOST}:22220/v1/stubs
@@ -1,4 +0,0 @@
ZITADEL_API_URL=http://${DEVCONTAINER_LOGIN_API_MOCK_HOST:-localhost}:22222
ZITADEL_SERVICE_USER_TOKEN=none
ZITADEL_SERVICE_USER_TOKEN_FILE=""
PORT=3001
-17
View File
@@ -1,17 +0,0 @@
import { defineConfig } from "cypress";
export default defineConfig({
reporter: "list",
video: true,
retries: {
runMode: 2
},
e2e: {
baseUrl: `http://localhost:3001${process.env.NEXT_PUBLIC_BASE_PATH || ""}`,
specPattern: "integration/integration/**/*.cy.{js,jsx,ts,tsx}",
supportFile: "integration/support/e2e.{js,jsx,ts,tsx}",
pageLoadTimeout: 120_0000,
env: {
API_MOCK_STUBS_URL: process.env.API_MOCK_STUBS_URL || "http://localhost:22220/v1/stubs"
}
},
});
-2
View File
@@ -1,2 +0,0 @@
screenshots
videos
-1
View File
@@ -1 +0,0 @@
side-effects-cache=false
@@ -1,16 +0,0 @@
FROM bufbuild/buf:1.64.0 AS dependencies
RUN buf export https://github.com/envoyproxy/protoc-gen-validate.git --path validate --output /proto && \
buf export https://github.com/grpc-ecosystem/grpc-gateway.git --path protoc-gen-openapiv2 --output /proto && \
buf export https://github.com/googleapis/googleapis.git --path google/api/annotations.proto --path google/api/http.proto --path google/api/field_behavior.proto --output /proto
FROM golang:1.20.5-alpine3.18 AS mock-zitadel
RUN go install github.com/eliobischof/grpc-mock/cmd/grpc-mock@01b09f60db1b501178af59bed03b2c22661df48c
COPY mocked-services.cfg .
COPY initial-stubs initial-stubs
COPY --from=dependencies /proto/ ./
COPY --from=zitadel-protos /zitadel/ ./zitadel/
ENTRYPOINT [ "sh", "-c", "grpc-mock -v 1 -proto $(tr '\n' ',' < ./mocked-services.cfg) -stub-dir ./initial-stubs -mock-addr :22222" ]
@@ -1,66 +0,0 @@
[
{
"service": "zitadel.settings.v2.SettingsService",
"method": "GetBrandingSettings",
"out": {
"data": {}
}
},
{
"service": "zitadel.settings.v2.SettingsService",
"method": "GetSecuritySettings",
"out": {
"data": {}
}
},
{
"service": "zitadel.settings.v2.SettingsService",
"method": "GetLegalAndSupportSettings",
"out": {
"data": {
"settings": {
"tosLink": "http://whatever.com/help",
"privacyPolicyLink": "http://whatever.com/help",
"helpLink": "http://whatever.com/help"
}
}
}
},
{
"service": "zitadel.settings.v2.SettingsService",
"method": "GetActiveIdentityProviders",
"out": {
"data": {
"identityProviders": [
{
"id": "123",
"name": "Hubba bubba",
"type": 10
}
]
}
}
},
{
"service": "zitadel.settings.v2.SettingsService",
"method": "GetPasswordComplexitySettings",
"out": {
"data": {
"settings": {
"minLength": 8,
"requiresUppercase": true,
"requiresLowercase": true,
"requiresNumber": true,
"requiresSymbol": true
}
}
}
},
{
"service": "zitadel.settings.v2.SettingsService",
"method": "GetHostedLoginTranslation",
"out": {
"data": {}
}
}
]
@@ -1,7 +0,0 @@
zitadel/user/v2/user_service.proto
zitadel/org/v2/org_service.proto
zitadel/session/v2/session_service.proto
zitadel/settings/v2/settings_service.proto
zitadel/management.proto
zitadel/auth.proto
zitadel/admin.proto
@@ -1,19 +0,0 @@
{
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"name": "@zitadel/login-api-mock",
"targets": {
"build": {
"description": "Builds the API mock server",
"command": "nx run @zitadel/devcontainer:compose build login-api-mock"
},
"serve": {
"description": "Starts the API mock server",
"continuous": true,
"command": "nx run @zitadel/devcontainer:compose up --force-recreate --renew-anon-volumes login-api-mock"
},
"down": {
"description": "Stops the API mock server",
"command": "nx run @zitadel/devcontainer:compose down login-api-mock"
}
}
}
-32
View File
@@ -1,32 +0,0 @@
import js from "@eslint/js";
import tsPlugin from "@typescript-eslint/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
import prettierConfig from "eslint-config-prettier/flat";
import pluginCypress from "eslint-plugin-cypress";
export default [
{ ignores: ["node_modules/**"] },
js.configs.recommended,
{
files: ["**/*.ts"],
plugins: {
"@typescript-eslint": tsPlugin,
},
languageOptions: {
parser: tsParser,
ecmaVersion: "latest",
sourceType: "module",
},
rules: {
...tsPlugin.configs.recommended.rules,
"no-unused-vars": "off",
"no-undef": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{ argsIgnorePattern: "^_" },
],
},
},
pluginCypress.configs.recommended,
prettierConfig,
];
@@ -1,112 +0,0 @@
import { stub } from "../support/e2e";
describe("verify invite", () => {
beforeEach(() => {
stub("zitadel.org.v2.OrganizationService", "ListOrganizations", {
data: {
details: {
totalResult: 1,
},
result: [{ id: "256088834543534543" }],
},
});
stub("zitadel.user.v2.UserService", "ListAuthenticationMethodTypes", {
data: {
authMethodTypes: [], // user with no auth methods was invited
},
});
stub("zitadel.user.v2.UserService", "GetUserByID", {
data: {
user: {
userId: "221394658884845598",
state: 1,
username: "[email protected]",
loginNames: ["[email protected]"],
preferredLoginName: "[email protected]",
human: {
userId: "221394658884845598",
state: 1,
username: "[email protected]",
loginNames: ["[email protected]"],
preferredLoginName: "[email protected]",
profile: {
givenName: "John",
familyName: "Doe",
avatarUrl: "https://example.com/avatar.jpg",
},
email: {
email: "[email protected]",
isVerified: false,
},
},
},
},
});
stub("zitadel.session.v2.SessionService", "CreateSession", {
data: {
details: {
sequence: 859,
changeDate: new Date("2024-04-04T09:40:55.577Z"),
resourceOwner: "220516472055706145",
},
sessionId: "221394658884845598",
sessionToken: "SDMc7DlYXPgwRJ-Tb5NlLqynysHjEae3csWsKzoZWLplRji0AYY3HgAkrUEBqtLCvOayLJPMd0ax4Q",
challenges: undefined,
},
});
stub("zitadel.session.v2.SessionService", "GetSession", {
data: {
session: {
id: "221394658884845598",
creationDate: new Date("2024-04-04T09:40:55.577Z"),
changeDate: new Date("2024-04-04T09:40:55.577Z"),
sequence: 859,
factors: {
user: {
id: "221394658884845598",
loginName: "[email protected]",
},
password: undefined,
webAuthN: undefined,
intent: undefined,
},
metadata: {},
},
},
});
stub("zitadel.settings.v2.SettingsService", "GetLoginSettings", {
data: {
settings: {
passkeysType: 1,
allowLocalAuthentication: true,
},
},
});
});
it("shows authenticators after successful invite verification", () => {
stub("zitadel.user.v2.UserService", "VerifyInviteCode");
cy.visit("/verify?userId=221394658884845598&code=abc&invite=true");
cy.get("[data-testid=submit-button]").click();
cy.url().should("include", Cypress.config().baseUrl + "/authenticator/set");
});
it("shows an error if invite code validation failed", () => {
stub("zitadel.user.v2.UserService", "VerifyInviteCode", {
code: 3,
error: "error validating code",
});
// TODO: Avoid uncaught exception in application
cy.once("uncaught:exception", () => false);
cy.visit("/verify?userId=221394658884845598&code=abc&invite=true");
cy.get("[data-testid=submit-button]").click();
cy.contains("Could not verify invite", { timeout: 10_000 });
});
});
@@ -1,172 +0,0 @@
import { stub } from "../support/e2e";
describe("login", () => {
beforeEach(() => {
stub("zitadel.org.v2.OrganizationService", "ListOrganizations", {
data: {
details: {
totalResult: 1,
},
result: [{ id: "256088834543534543" }],
},
});
stub("zitadel.session.v2.SessionService", "CreateSession", {
data: {
details: {
sequence: 859,
changeDate: new Date("2024-04-04T09:40:55.577Z"),
resourceOwner: "220516472055706145",
},
sessionId: "221394658884845598",
sessionToken: "SDMc7DlYXPgwRJ-Tb5NlLqynysHjEae3csWsKzoZWLplRji0AYY3HgAkrUEBqtLCvOayLJPMd0ax4Q",
challenges: undefined,
},
});
stub("zitadel.session.v2.SessionService", "GetSession", {
data: {
session: {
id: "221394658884845598",
creationDate: new Date("2024-04-04T09:40:55.577Z"),
changeDate: new Date("2024-04-04T09:40:55.577Z"),
sequence: 859,
factors: {
user: {
id: "221394658884845598",
loginName: "[email protected]",
},
password: undefined,
webAuthN: undefined,
intent: undefined,
},
metadata: {},
},
},
});
stub("zitadel.settings.v2.SettingsService", "GetLoginSettings", {
data: {
settings: {
passkeysType: 1,
allowLocalAuthentication: true,
},
},
});
});
describe("password login", () => {
beforeEach(() => {
stub("zitadel.user.v2.UserService", "ListUsers", {
data: {
details: {
totalResult: 1,
},
result: [
{
userId: "221394658884845598",
state: 1,
username: "[email protected]",
loginNames: ["[email protected]"],
preferredLoginName: "[email protected]",
human: {
userId: "221394658884845598",
state: 1,
username: "[email protected]",
loginNames: ["[email protected]"],
preferredLoginName: "[email protected]",
profile: {
givenName: "John",
familyName: "Doe",
avatarUrl: "https://example.com/avatar.jpg",
},
email: {
email: "[email protected]",
isVerified: true,
},
},
},
],
},
});
stub("zitadel.user.v2.UserService", "ListAuthenticationMethodTypes", {
data: {
authMethodTypes: [1], // 1 for password authentication
},
});
});
it("should redirect a user with password authentication to /password", () => {
cy.visit("/loginname?loginName=john%40example.com&submit=true");
cy.url({ timeout: 5 * 60_000 }).should("include", Cypress.config().baseUrl + "/password");
});
describe("with passkey prompt", () => {
beforeEach(() => {
stub("zitadel.session.v2.SessionService", "SetSession", {
data: {
details: {
sequence: 859,
changeDate: "2023-07-04T07:58:20.126Z",
resourceOwner: "220516472055706145",
},
sessionToken: "SDMc7DlYXPgwRJ-Tb5NlLqynysHjEae3csWsKzoZWLplRji0AYY3HgAkrUEBqtLCvOayLJPMd0ax4Q",
challenges: undefined,
},
});
});
// it("should prompt a user to setup passkey authentication if passkey is allowed in the login settings", () => {
// cy.visit("/loginname?loginName=john%40example.com&submit=true");
// cy.location("pathname", { timeout: 5 * 60_000 }).should("eq", "/password");
// cy.get('input[type="password"]').focus().type("MyStrongPassword!1");
// cy.get('button[type="submit"]').click();
// cy.location("pathname", { timeout: 10_000 }).should(
// "eq",
// "/passkey/set",
// );
// });
});
});
describe("passkey login", () => {
beforeEach(() => {
stub("zitadel.user.v2.UserService", "ListUsers", {
data: {
details: {
totalResult: 1,
},
result: [
{
userId: "221394658884845598",
state: 1,
username: "[email protected]",
loginNames: ["[email protected]"],
preferredLoginName: "[email protected]",
human: {
userId: "221394658884845598",
state: 1,
username: "[email protected]",
loginNames: ["[email protected]"],
preferredLoginName: "[email protected]",
profile: {
givenName: "John",
familyName: "Doe",
avatarUrl: "https://example.com/avatar.jpg",
},
email: {
email: "[email protected]",
isVerified: true,
},
},
},
],
},
});
stub("zitadel.user.v2.UserService", "ListAuthenticationMethodTypes", {
data: {
authMethodTypes: [2], // 2 for passkey authentication
},
});
});
it("should redirect a user with passkey authentication to /passkey", () => {
cy.visit("/loginname?loginName=john%40example.com&submit=true");
cy.url().should("include", Cypress.config().baseUrl + "/passkey");
});
});
});
@@ -1,21 +0,0 @@
import { stub } from "../support/e2e";
const IDP_URL = "https://example.com/idp/url";
describe("register idps", () => {
beforeEach(() => {
stub("zitadel.user.v2.UserService", "StartIdentityProviderIntent", {
data: {
authUrl: IDP_URL,
},
});
});
it("should redirect the user to the correct url", () => {
cy.visit("/idp");
cy.get('button[e2e="google"]').click();
cy.origin(IDP_URL, { args: IDP_URL }, (url) => {
cy.location("href").should("eq", url);
});
});
});
@@ -1,73 +0,0 @@
import { stub } from "../support/e2e";
describe("register", () => {
beforeEach(() => {
stub("zitadel.org.v2.OrganizationService", "ListOrganizations", {
data: {
details: {
totalResult: 1,
},
result: [{ id: "256088834543534543" }],
},
});
stub("zitadel.settings.v2.SettingsService", "GetLoginSettings", {
data: {
settings: {
passkeysType: 1,
allowRegister: true,
allowLocalAuthentication: true,
defaultRedirectUri: "",
},
},
});
stub("zitadel.user.v2.UserService", "AddHumanUser", {
data: {
userId: "221394658884845598",
},
});
stub("zitadel.session.v2.SessionService", "CreateSession", {
data: {
details: {
sequence: 859,
changeDate: new Date("2024-04-04T09:40:55.577Z"),
resourceOwner: "220516472055706145",
},
sessionId: "221394658884845598",
sessionToken: "SDMc7DlYXPgwRJ-Tb5NlLqynysHjEae3csWsKzoZWLplRji0AYY3HgAkrUEBqtLCvOayLJPMd0ax4Q",
challenges: undefined,
},
});
stub("zitadel.session.v2.SessionService", "GetSession", {
data: {
session: {
id: "221394658884845598",
creationDate: new Date("2024-04-04T09:40:55.577Z"),
changeDate: new Date("2024-04-04T09:40:55.577Z"),
sequence: 859,
factors: {
user: {
id: "221394658884845598",
loginName: "[email protected]",
},
password: undefined,
webAuthN: undefined,
intent: undefined,
},
metadata: {},
},
},
});
});
it("should redirect a user who selects passkey on register to /passkey/set", () => {
cy.visit("/register");
cy.get('input[data-testid="firstname-text-input"]').focus().type("John");
cy.get('input[data-testid="lastname-text-input"]').focus().type("Doe");
cy.get('input[data-testid="email-text-input"]').focus().type("[email protected]");
cy.get('input[type="checkbox"][value="privacypolicy"]').check();
cy.get('input[type="checkbox"][value="tos"]').check();
cy.get('button[type="submit"]').click();
cy.url().should("include", Cypress.config().baseUrl + "/passkey/set");
});
});
@@ -1,96 +0,0 @@
import { stub } from "../support/e2e";
describe("verify email", () => {
beforeEach(() => {
stub("zitadel.org.v2.OrganizationService", "ListOrganizations", {
data: {
details: {
totalResult: 1,
},
result: [{ id: "256088834543534543" }],
},
});
stub("zitadel.user.v2.UserService", "ListAuthenticationMethodTypes", {
data: {
authMethodTypes: [1], // set one method such that we know that the user was not invited
},
});
stub("zitadel.user.v2.UserService", "SendEmailCode");
stub("zitadel.user.v2.UserService", "GetUserByID", {
data: {
user: {
userId: "221394658884845598",
state: 1,
username: "[email protected]",
loginNames: ["[email protected]"],
preferredLoginName: "[email protected]",
human: {
userId: "221394658884845598",
state: 1,
username: "[email protected]",
loginNames: ["[email protected]"],
preferredLoginName: "[email protected]",
profile: {
givenName: "John",
familyName: "Doe",
avatarUrl: "https://example.com/avatar.jpg",
},
email: {
email: "[email protected]",
isVerified: false, // email is not verified yet
},
},
},
},
});
stub("zitadel.session.v2.SessionService", "CreateSession", {
data: {
details: {
sequence: 859,
changeDate: new Date("2024-04-04T09:40:55.577Z"),
resourceOwner: "220516472055706145",
},
sessionId: "221394658884845598",
sessionToken: "SDMc7DlYXPgwRJ-Tb5NlLqynysHjEae3csWsKzoZWLplRji0AYY3HgAkrUEBqtLCvOayLJPMd0ax4Q",
challenges: undefined,
},
});
stub("zitadel.session.v2.SessionService", "GetSession", {
data: {
session: {
id: "221394658884845598",
creationDate: new Date("2024-04-04T09:40:55.577Z"),
changeDate: new Date("2024-04-04T09:40:55.577Z"),
sequence: 859,
factors: {
user: {
id: "221394658884845598",
loginName: "[email protected]",
},
password: undefined,
webAuthN: undefined,
intent: undefined,
},
metadata: {},
},
},
});
});
it("shows an error if email code validation failed", () => {
stub("zitadel.user.v2.UserService", "VerifyEmail", {
code: 3,
error: "error validating code",
});
// TODO: Avoid uncaught exception in application
cy.once("uncaught:exception", () => false);
cy.visit("/verify?userId=221394658884845598&code=abc");
cy.get("[data-testid=submit-button]").click();
cy.contains("Could not verify email");
});
});
-49
View File
@@ -1,49 +0,0 @@
// Handle React 19 SSR hydration errors that don't affect functionality
Cypress.on('uncaught:exception', (err, runnable) => {
// React error #419 is specifically about SSR Suspense boundary issues
// This doesn't affect the actual functionality, just the SSR/CSR transition
if (err.message.includes('Minified React error #419')) {
console.warn('Cypress: Suppressed React SSR error #419 (Suspense boundary issue):', err.message);
return false;
}
// Other hydration mismatches that are common with React 19 + Next.js 15
if (err.message.includes('server could not finish this Suspense boundary') ||
err.message.includes('Switched to client rendering') ||
err.message.includes('Hydration failed') ||
err.message.includes('Text content does not match server-rendered HTML')) {
console.warn('Cypress: Suppressed React hydration error (non-functional):', err.message);
return false;
}
// Let other errors fail the test as they should
return true;
});
const url = Cypress.env("API_MOCK_STUBS_URL");
function removeStub(service: string, method: string) {
return cy.request({
url,
method: "DELETE",
qs: {
service,
method,
},
});
}
export function stub(service: string, method: string, out?: any) {
removeStub(service, method);
return cy.request({
url,
method: "POST",
body: {
stubs: [
{
service,
method,
out,
},
],
},
});
}
-8
View File
@@ -1,8 +0,0 @@
{
"compilerOptions": {
"target": "es5",
"lib": ["es5", "dom"],
"types": ["cypress", "node"]
},
"include": ["**/*.ts", "../cypress.config.ts"]
}
+1 -2
View File
@@ -14,7 +14,7 @@
"test-unit": "vitest --run",
"test-dockerized": "vitest --run --config vitest.config.dockerized.ts",
"lint-staged": "lint-staged",
"clean": "rm -rf node_modules .next cypress"
"clean": "rm -rf node_modules .next"
},
"git": {
"pre-commit": "lint-staged"
@@ -81,7 +81,6 @@
"@zitadel/proto": "workspace:*",
"autoprefixer": "^10.4.23",
"concurrently": "^9.2.1",
"cypress": "^14.5.4",
"dotenv-cli": "^8.0.0",
"env-cmd": "^10.1.0",
"esbuild": "^0.27.3",
+27 -123
View File
@@ -4,47 +4,34 @@
"prod": {
"description": "Runs the Next.js Login application in production mode from the standalone build",
"continuous": true,
"dependsOn": [
"build"
],
"dependsOn": ["build"],
"defaultConfiguration": "default",
"configurations": {
"default": {},
"test-login-integration": {}
"default": {}
}
},
"dev": {
"description": "Runs the Next.js Login application in development mode with hot-reloading",
"continuous": true,
"dependsOn": [
"^build"
]
"dependsOn": ["^build"]
},
"build": {
"description": "Builds the Next.js Login application in standalone mode for production",
"cache": true,
"dependsOn": [
"^build"
],
"dependsOn": ["^build"],
"inputs": [
"default",
"{workspaceRoot}/pnpm-lock.yaml",
"!{projectRoot}/.env.*",
"!{projectRoot}/.local.env",
"!{projectRoot}/integration/**/*",
"!{projectRoot}/acceptance/**/*",
"!{projectRoot}/dockerized/**/*",
"!{projectRoot}/cypress.config.ts"
"!{projectRoot}/dockerized/**/*"
],
"outputs": [
"{projectRoot}/.next/standalone"
]
"outputs": ["{projectRoot}/.next/standalone"]
},
"pack": {
"description": "Builds a local Docker image for the ZITADEL Login UI (zitadel/zitadel-login:local). Requires Docker daemon.",
"dependsOn": [
"build"
],
"dependsOn": ["build"],
"command": "docker build -f apps/login/Dockerfile -t zitadel/zitadel-login:local apps/login",
"cache": false,
"inputs": [
@@ -52,144 +39,68 @@
"{workspaceRoot}/pnpm-lock.yaml",
"{projectRoot}/Dockerfile",
"!{projectRoot}/.env.*",
"!{projectRoot}/integration/**/*",
"!{projectRoot}/acceptance/**/*"
]
},
"build-vercel": {
"description": "Builds the Next.js Login application for Vercel deployment",
"cache": true,
"dependsOn": [
"^build"
],
"dependsOn": ["^build"],
"inputs": [
"default",
"{workspaceRoot}/pnpm-lock.yaml",
"!{projectRoot}/.env.*",
"!{projectRoot}/.local.env",
"!{projectRoot}/integration/**/*",
"!{projectRoot}/acceptance/**/*",
"!{projectRoot}/dockerized/**/*",
"!{projectRoot}/cypress.config.ts"
"!{projectRoot}/dockerized/**/*"
],
"outputs": [
"{projectRoot}/.next",
"!{projectRoot}/.next/cache",
"!{projectRoot}/.next/standalone"
]
"outputs": ["{projectRoot}/.next", "!{projectRoot}/.next/cache", "!{projectRoot}/.next/standalone"]
},
"lint": {
"description": "Runs all linters",
"dependsOn": [
"lint-check-*"
]
"dependsOn": ["lint-check-*"]
},
"lint-check-prettier": {
"description": "Checks code formatting with Prettier",
"cache": true,
"inputs": [
"default"
]
"inputs": ["default"]
},
"lint-check-next": {
"description": "Runs Next.js specific lint checks",
"cache": true,
"inputs": [
"default"
]
"inputs": ["default"],
"dependsOn": ["^build"]
},
"test": {
"description": "Runs all tests (unit, integration, and dockerized)",
"dependsOn": [
"test-unit",
"test-integration",
"test-dockerized"
]
"description": "Runs all tests (unit, and dockerized)",
"dependsOn": ["test-unit", "test-dockerized"]
},
"test-unit": {
"description": "Runs unit tests using Vitest",
"dependsOn": [
"^build"
]
"dependsOn": ["^build"]
},
"test-dockerized": {
"description": "Runs dockerized integration tests (OpenTelemetry and custom CA certificate tests)",
"dependsOn": [
"build",
"test-integration"
],
"dependsOn": ["build"],
"executor": "nx:run-commands",
"cache": true,
"inputs": [
"default",
"!{projectRoot}/integration/**/*",
"!{projectRoot}/acceptance/**/*",
"!{projectRoot}/dockerized/**/output/**/*"
],
"inputs": ["default", "!{projectRoot}/acceptance/**/*", "!{projectRoot}/dockerized/**/output/**/*"],
"options": {
"cwd": "{projectRoot}",
"commands": [
"pnpm vitest --run --config vitest.config.dockerized.ts"
]
"commands": ["pnpm vitest --run --config vitest.config.dockerized.ts"]
}
},
"test-ssl": {
"description": "Runs TLS integration tests using testcontainers",
"dependsOn": [
"build"
],
"dependsOn": ["build"],
"executor": "nx:run-commands",
"cache": true,
"inputs": [
"default",
"!{projectRoot}/integration/**/*",
"!{projectRoot}/acceptance/**/*",
"!{projectRoot}/dockerized/**/output/**/*"
],
"inputs": ["default", "!{projectRoot}/acceptance/**/*", "!{projectRoot}/dockerized/**/output/**/*"],
"options": {
"cwd": "{projectRoot}",
"commands": [
"pnpm vitest --run --config vitest.config.dockerized.ts dockerized/ssl"
]
"commands": ["pnpm vitest --run --config vitest.config.dockerized.ts dockerized/ssl"]
}
},
"test-integration-run-login": {
"description": "Runs the Login application under test. It has its own target, separate from test-integration, because it's a continuous task.",
"dependsOn": [
"build"
],
"continuous": true,
"command": "nx run @zitadel/login:prod:test-login-integration --excludeTaskDependencies"
},
"test-integration": {
"description": "Runs integration tests using Cypress against a running Login and a mocked API",
"dependsOn": [
"test-integration-run-login",
"@zitadel/login-api-mock:build",
"@zitadel/login-api-mock:serve"
],
"executor": "nx:run-commands",
"options": {
"cwd": "{projectRoot}",
"parallel": false,
"commands": [
"pnpm cypress install",
"pnpm wait-on --verbose --interval 2000 --simultaneous 1 --timeout 30m \"tcp:${API_MOCK_STUBS_HOST}:22220\" \"http-get://localhost:3001/ui/v2/login/verify?userId=221394658884845598&code=abc\"",
"DISPLAY='' pnpm cypress run --headless",
"nx run @zitadel/login:test-integration-stop"
]
},
"inputs": [
"default",
"{workspaceRoot}/pnpm-lock.yaml",
"!{projectRoot}/acceptance/**/*",
{ "env": "LOGIN_BASE_URL" }
]
},
"test-integration-stop": {
"description": "Stops the gRPC mock container used for integration tests.",
"command": "nx run @zitadel/login-api-mock:down"
},
"test-acceptance": {
"description": "Runs the Playwright acceptance test suite in apps/login/acceptance/ against a running ZITADEL stack. Requires LOGIN_BASE_URL, ZITADEL_API_URL, and ZITADEL_ADMIN_TOKEN to be set (or apps/login/.env.test.local to exist). Run the setup script at acceptance/setup/setup.sh first to seed config.",
"executor": "nx:run-commands",
@@ -206,9 +117,7 @@
},
"pack-archive": {
"description": "Packages the standalone Login application build into an archive",
"dependsOn": [
"build"
],
"dependsOn": ["build"],
"executor": "nx:run-commands",
"options": {
"parallel": false,
@@ -216,15 +125,10 @@
"STANDALONE_DIR": "{projectRoot}/.next/standalone",
"PACK_DIR": "{workspaceRoot}/.artifacts/pack"
},
"commands": [
"mkdir -p ${PACK_DIR}",
"tar -czf ${PACK_DIR}/zitadel-login.tar.gz -C ${STANDALONE_DIR} ."
]
"commands": ["mkdir -p ${PACK_DIR}", "tar -czf ${PACK_DIR}/zitadel-login.tar.gz -C ${STANDALONE_DIR} ."]
},
"cache": true,
"outputs": [
"{workspaceRoot}/.artifacts/pack/zitadel-login.tar.gz"
]
"outputs": ["{workspaceRoot}/.artifacts/pack/zitadel-login.tar.gz"]
}
}
}
}
+1 -7
View File
@@ -17,13 +17,7 @@ export async function generateMetadata(): Promise<Metadata> {
return { title: t("title") };
}
async function loadSessions({
serviceConfig,
organization,
}: {
serviceConfig: ServiceConfig;
organization?: string;
}) {
async function loadSessions({ serviceConfig, organization }: { serviceConfig: ServiceConfig; organization?: string }) {
const cookieIds = await getAllSessionCookieIds();
if (cookieIds && cookieIds.length) {
+4 -22
View File
@@ -1,11 +1,7 @@
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
@@ -23,23 +19,9 @@
}
],
"paths": {
"@/*": [
"./src/*"
]
"@/*": ["./src/*"]
}
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
".next/dev/types/**/*.ts"
],
"exclude": [
"node_modules",
"integration",
"acceptance",
"dockerized",
"vitest.config*.ts"
]
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", ".next/dev/types/**/*.ts"],
"exclude": ["node_modules", "acceptance", "dockerized", "vitest.config*.ts"]
}
+210 -206
View File
@@ -14,7 +14,7 @@ importers:
devDependencies:
'@bufbuild/buf':
specifier: ^1.65.0
version: 1.66.1
version: 1.65.0
'@changesets/cli':
specifier: ^2.29.8
version: 2.29.8(@types/[email protected])
@@ -132,10 +132,10 @@ importers:
version: 19.2.3(@types/[email protected])
'@typescript-eslint/eslint-plugin':
specifier: ^8.57.0
version: 8.57.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
version: 8.57.1(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@typescript-eslint/parser':
specifier: ^8.57.0
version: 8.57.0([email protected]([email protected]))([email protected])
version: 8.57.1([email protected]([email protected]))([email protected])
eslint:
specifier: ^10.0.0
version: 10.0.0([email protected])
@@ -147,7 +147,7 @@ importers:
version: 4.4.4([email protected])([email protected]([email protected]))
eslint-plugin-import:
specifier: ^2.32.0
version: 2.32.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
version: 2.32.0(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
eslint-plugin-mdx:
specifier: ^3.7.0
version: 3.7.0([email protected]([email protected]))
@@ -337,10 +337,10 @@ importers:
version: 10.0.0
'@typescript-eslint/eslint-plugin':
specifier: ^8.57.0
version: 8.57.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
version: 8.57.1(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@typescript-eslint/parser':
specifier: ^8.57.0
version: 8.57.0([email protected]([email protected]))([email protected])
version: 8.57.1([email protected]([email protected]))([email protected])
'@vercel/git-hooks':
specifier: 1.0.0
version: 1.0.0
@@ -359,9 +359,6 @@ importers:
concurrently:
specifier: ^9.2.1
version: 9.2.1
cypress:
specifier: ^14.5.4
version: 14.5.4
dotenv-cli:
specifier: ^8.0.0
version: 8.0.0
@@ -385,7 +382,7 @@ importers:
version: 4.3.0([email protected]([email protected]))
eslint-plugin-import:
specifier: ^2.32.0
version: 2.32.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
version: 2.32.0(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
eslint-plugin-react-hooks:
specifier: ^7.0.1
version: 7.0.1([email protected]([email protected]))
@@ -584,10 +581,10 @@ importers:
devDependencies:
'@angular-eslint/eslint-plugin':
specifier: 21.3.0
version: 21.3.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
version: 21.3.0(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@angular-eslint/eslint-plugin-template':
specifier: 21.3.0
version: 21.3.0(@angular-eslint/[email protected]([email protected]([email protected]))([email protected]))(@typescript-eslint/[email protected].0)(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
version: 21.3.0(@angular-eslint/[email protected]([email protected]([email protected]))([email protected]))(@typescript-eslint/[email protected].1)(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@angular-eslint/template-parser':
specifier: 21.3.0
version: 21.3.0([email protected]([email protected]))([email protected])
@@ -635,10 +632,10 @@ importers:
version: 10.0.0
'@typescript-eslint/eslint-plugin':
specifier: ^8.57.0
version: 8.57.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
version: 8.57.1(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@typescript-eslint/parser':
specifier: ^8.57.0
version: 8.57.0([email protected]([email protected]))([email protected])
version: 8.57.1([email protected]([email protected]))([email protected])
'@zitadel/client':
specifier: workspace:*
version: link:../packages/zitadel-client
@@ -656,7 +653,7 @@ importers:
version: 4.4.4([email protected])([email protected]([email protected]))
eslint-plugin-import:
specifier: ^2.32.0
version: 2.32.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
version: 2.32.0(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
globals:
specifier: ^17.0.0
version: 17.3.0
@@ -726,7 +723,7 @@ importers:
devDependencies:
'@bufbuild/protocompile':
specifier: ^0.0.1
version: 0.0.1(@bufbuild/[email protected]6.1)
version: 0.0.1(@bufbuild/[email protected]5.0)
'@eslint/js':
specifier: ^10.0.0
version: 10.0.1([email protected]([email protected]))
@@ -735,10 +732,10 @@ importers:
version: 24.10.9
'@typescript-eslint/eslint-plugin':
specifier: ^8.57.0
version: 8.57.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
version: 8.57.1(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@typescript-eslint/parser':
specifier: ^8.57.0
version: 8.57.0([email protected]([email protected]))([email protected])
version: 8.57.1([email protected]([email protected]))([email protected])
eslint:
specifier: ^10.0.0
version: 10.0.0([email protected])
@@ -750,7 +747,7 @@ importers:
version: 4.4.4([email protected])([email protected]([email protected]))
eslint-plugin-import:
specifier: ^2.32.0
version: 2.32.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
version: 2.32.0(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
globals:
specifier: ^17.0.0
version: 17.3.0
@@ -1296,50 +1293,50 @@ packages:
'@balena/[email protected]':
resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==}
'@bufbuild/[email protected]6.1':
resolution: {integrity: sha512-Yl7vvFhKrA87ctsIiwN2XWbJq34VxWoEzNBe9dhrutKLpy7hM7l/ylDCuctqPh+CGdSUijQfmHiA4bQgK8s2yQ==}
'@bufbuild/[email protected]5.0':
resolution: {integrity: sha512-2U8CHjW1ysINYKwIPcc4WAiQPxe91RIjNtjpg+RC9rP0aZ7TpGm5MTMY5l3sN4drtmKdb9rBs3bMQsMNhSc90A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
'@bufbuild/[email protected]6.1':
resolution: {integrity: sha512-pRbu0l7jtbXBBCq/7wrs2ZUFzCkDBDGuT3xlQt04k1SgIoW1lznpDnUZ6vbQj1rIU94dCbnsuL7M6k+rCFafOA==}
'@bufbuild/[email protected]5.0':
resolution: {integrity: sha512-aMqfc6pQC4L9dZpSD61XCEpPWKEtb1rXDPkK0/tzrfTWodnbaJ/elNoxsCGzbZVSMFeAdomUpXmSMrk8ALfWWw==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
'@bufbuild/[email protected]6.1':
resolution: {integrity: sha512-V/dwOAcQ9r5B6BUEtUeVPvkpNxYhmHLILrJZmIqNdjpInVQWknpGm1Mmpy2xANuOhRh7O/Huq7kaoQvNjSdnWQ==}
'@bufbuild/[email protected]5.0':
resolution: {integrity: sha512-gzqvY4PLRQ7g0+RlE9g+OL/6yPd5szG7e3Wd5bgjJzfKaQerNiQWaGyPLdcRsIM/WxJhT5e5lG8OrrWHwgQ9Ig==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
'@bufbuild/[email protected]6.1':
resolution: {integrity: sha512-WDmspvGLq/lNVj4jAb2TDWVKLzG9l5nwhNsZOo1I5UKrE0PD2LdbM7YdnMne15AIg3qlUxHqq2Eg8pVyxHqCqw==}
'@bufbuild/[email protected]5.0':
resolution: {integrity: sha512-RpYFuPr9MKniD+WNfDgCclyvMu+/w9kK41OWr9sNnbS2BorujskwPiY0iTf5j+8+n/MeAnLIGlyC36+vUB/wIw==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
'@bufbuild/[email protected]6.1':
resolution: {integrity: sha512-at0JeAlc+pquaNB/80R5F6bQs1gtdSuJRj+naei+lH2L2M1yQTiYU3f9dJnY4hVbq4/JbxSdxqJx2VOLPt1ztw==}
'@bufbuild/[email protected]5.0':
resolution: {integrity: sha512-0j06h1uKCXlOtrlNcTBkURazT+AwMNvuVxgJsYeUDnSliN05QS7LnBzPOwKg76ariSqlLo+QXk9eNtdhgVjYOg==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
'@bufbuild/[email protected]6.1':
resolution: {integrity: sha512-gb2LDuqkY1RSFIOMYJQTimTLIsW2/pqOvcPWBDApUZBOQS5CJdrAtuoBqRzpqrI02OF45uinKmqq+9dun/X92A==}
'@bufbuild/[email protected]5.0':
resolution: {integrity: sha512-KBFsQ3iEityUuLTUCoXAO6ZTGUXWljSjK4upqofsYCb4OJeSeVguD7b09efkQt9ymKsXBt5wQicsRdkMJy/VEA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
'@bufbuild/[email protected]6.1':
resolution: {integrity: sha512-QzDiv9dAUr89HjHsKOrC5EQB+2aWVwKmhZFYzAGgHTt+ONAgz9RgLhwIm6LTtrLigB0LIHk/nLMIXB3sXUhyrg==}
'@bufbuild/[email protected]5.0':
resolution: {integrity: sha512-vJYzHjncSLdy4sPDW8kLqUldHh6Vucg6KabAflm7CDj29lU/HydV8T+nOVsXkoRMUf4+H/qy8WjnSMEtRkaogA==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
'@bufbuild/[email protected]6.1':
resolution: {integrity: sha512-TelMLptEDfdcl8D+WjKQLzGGYKAwOSVjCPJ21L9X9xT7KZHigTAhHP5idrTCtXKHHPPQB6Sq12wVnhWgFQ9s7w==}
'@bufbuild/[email protected]5.0':
resolution: {integrity: sha512-IQmIBB2CGbJAwx1NkuAWMuj4QGPnZ8mujbf4ckx9t6KI9EzfUzql1OyKi9qPrxlLAciI+kBIyPDQ2MIvXTxWUg==}
engines: {node: '>=12'}
hasBin: true
@@ -5104,8 +5101,8 @@ packages:
resolution: {integrity: sha512-hMHXejGFVOS4HwCo7C2qddChuvMJs3sEOALo7gNOvwLS4dGLrW8flbSglDki4ttyremlKQstP5WJuPxmHQU3sA==}
engines: {node: '>=20'}
'@scalar/[email protected].0':
resolution: {integrity: sha512-1XOdy0jZp0Yu+lOmvDlPfG8+oLJK9MUhx7Q7OFggSS+zKG3n01xJKnTpgm9uhETgJrGy2yxG9y0cz4KPexXHng==}
'@scalar/[email protected].1':
resolution: {integrity: sha512-XfyYqSUA597wfzS8lmMY1xvYv4si2WytuoBWj7JDpx3E/lVq7YEsticXF/Q30ttFVRBfgQErg8MQI6b6IkZr2Q==}
engines: {node: '>=22'}
'@scalar/[email protected]':
@@ -5120,8 +5117,8 @@ packages:
resolution: {integrity: sha512-F40E18vp6GIcJU5kV9UOKGhIrzN2IYdEMCcG3vw3INvvkXqJGqVPnCjcnSWFk27MByaD5Dzjlc3TvkgTiqNGYw==}
engines: {node: '>=20'}
'@scalar/[email protected].2':
resolution: {integrity: sha512-rIVDiXK+SeB/SgXVk5EelPmRTdDzN7nfezw6yq+TeHnEuJWXqP2xo24J6/pqIcZV1HDR0q/x4JKWGXsm8+pozg==}
'@scalar/[email protected].3':
resolution: {integrity: sha512-SX4LbdCk/0JLP4t4oz1nzqfMzHsG9gY1jSgKB7Q2BsQHJ4V1zapQ+aFrMmbjaCrz8hueGG/3UCtgyWBNuGmT9g==}
engines: {node: '>=22'}
'@scalar/[email protected]':
@@ -5783,63 +5780,67 @@ packages:
'@types/[email protected]':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
'@typescript-eslint/[email protected].0':
resolution: {integrity: sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==}
'@typescript-eslint/[email protected].1':
resolution: {integrity: sha512-Gn3aqnvNl4NGc6x3/Bqk1AOn0thyTU9bqDRhiRnUWezgvr2OnhYCWCgC8zXXRVqBsIL1pSDt7T9nJUe0oM0kDQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.57.0
'@typescript-eslint/parser': ^8.57.1
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/[email protected].0':
resolution: {integrity: sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==}
'@typescript-eslint/[email protected].1':
resolution: {integrity: sha512-k4eNDan0EIMTT/dUKc/g+rsJ6wcHYhNPdY19VoX/EOtaAG8DLtKCykhrUnuHPYvinn5jhAPgD2Qw9hXBwrahsw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/[email protected].0':
resolution: {integrity: sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==}
'@typescript-eslint/[email protected].1':
resolution: {integrity: sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/[email protected].0':
resolution: {integrity: sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==}
'@typescript-eslint/[email protected].1':
resolution: {integrity: sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/[email protected].0':
resolution: {integrity: sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==}
'@typescript-eslint/[email protected].1':
resolution: {integrity: sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/[email protected].0':
resolution: {integrity: sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==}
'@typescript-eslint/[email protected].1':
resolution: {integrity: sha512-+Bwwm0ScukFdyoJsh2u6pp4S9ktegF98pYUU0hkphOOqdMB+1sNQhIz8y5E9+4pOioZijrkfNO/HUJVAFFfPKA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/[email protected]7.0':
resolution: {integrity: sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==}
'@typescript-eslint/[email protected]6.0':
resolution: {integrity: sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.57.0':
resolution: {integrity: sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==}
'@typescript-eslint/[email protected].1':
resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/[email protected]':
resolution: {integrity: sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/[email protected].0':
resolution: {integrity: sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==}
'@typescript-eslint/[email protected].1':
resolution: {integrity: sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/[email protected].0':
resolution: {integrity: sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==}
'@typescript-eslint/[email protected].1':
resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript/[email protected]':
@@ -7649,8 +7650,8 @@ packages:
resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
engines: {node: '>=0.10'}
[email protected].3:
resolution: {integrity: sha512-8fOS+GIGCQZl/ZIlhl59htOlms6U8NvX6ZYgYHpRU/b6tVSh3uHkOHZikl3D4cMbYM0JlpBe+p/BkZEi8J9XIQ==}
[email protected].4:
resolution: {integrity: sha512-suICpxAmZ9A8bzJjEl/+rLJiDKC0X4gYWUxT6URAWBLvlXmtbZd5ySMu/N2ZGEtMCAmflUDPSehrP9BQcsGcSg==}
[email protected]:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
@@ -7805,11 +7806,11 @@ packages:
[email protected]:
resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
[email protected].2:
resolution: {integrity: sha512-NJAmiuVaJEjVa7TjLZKlYd7RqmzOC91EtPFXHvlTcqBVo50Qh7XV5IwvXi1c7NRz2Q/majGX9YLcwJtWgHjtkA==}
[email protected].4:
resolution: {integrity: sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==}
[email protected].3:
resolution: {integrity: sha512-Ymnuefk6VzAhT3SxLzVUw+nMio/wB1NGypHkgetwtXcK1JfryaHk4DWQFGVwQ9XgzyS5iRZ7C2ZGI4AMsdMZ6A==}
[email protected].6:
resolution: {integrity: sha512-3+fdZyBRVg29n4rXP0joHthhcHdPUHaIC16cuyyd1iLsuaO6Vea36MPrxgAzbZna8lhvZeRL8Bc9GP56/J9xEw==}
hasBin: true
[email protected]:
@@ -7954,8 +7955,8 @@ packages:
[email protected]:
resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==}
[email protected]5.2:
resolution: {integrity: sha512-dhfuEMaNo0hc+AEqyHiIfiJRNb9U9UQutE9FoKm5pjf7CMitp9xPEF1iWZihR1q86LBmo6EJ7S8cN8QXEy49AA==}
[email protected]8.0:
resolution: {integrity: sha512-rFYkY/pigbcswl1XQSb7q424kSTQ8q6eAC+YUsSKooHQYuLdzdHjrt6uxUC+PRAO++q5IS7+TamgIw1AphxR+g==}
peerDependencies:
'@emotion/is-prop-valid': '*'
react: ^18.0.0 || ^19.0.0
@@ -9783,14 +9784,14 @@ packages:
[email protected]:
resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
[email protected]5.2:
resolution: {integrity: sha512-pWXFMTwvGDbx1Fe9YL5HZebv2NhvGBzRtiNUv58aoK7+XrsuaydQ0JGRKK2r+bTKlwgSWwWxHbP5249Qr/BNpg==}
[email protected]8.0:
resolution: {integrity: sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==}
motion-utils@12.29.2:
resolution: {integrity: sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==}
motion-utils@12.36.0:
resolution: {integrity: sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==}
[email protected]5.2:
resolution: {integrity: sha512-8zCi1DkNyU6a/tgEHn/GnnXZDcaMpDHbDOGORY1Rg/6lcNMSOuvwDB3i4hMSOvxqMWArc/vrGaw/Xek1OP69/A==}
[email protected]8.0:
resolution: {integrity: sha512-uYfXzeHlgThchzwz5Te47dlv5JOUC7OB4rjJ/7XTUgtBZD8CchMN8qEJ4ZVsUmTyYA44zjV0fBwsiktRuFnn+w==}
peerDependencies:
'@emotion/is-prop-valid': '*'
react: ^18.0.0 || ^19.0.0
@@ -12869,23 +12870,23 @@ snapshots:
'@angular-eslint/[email protected]': {}
'@angular-eslint/[email protected](@angular-eslint/[email protected]([email protected]([email protected]))([email protected]))(@typescript-eslint/[email protected].0)(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
'@angular-eslint/[email protected](@angular-eslint/[email protected]([email protected]([email protected]))([email protected]))(@typescript-eslint/[email protected].1)(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
dependencies:
'@angular-eslint/bundled-angular-compiler': 21.3.0
'@angular-eslint/template-parser': 21.3.0([email protected]([email protected]))([email protected])
'@angular-eslint/utils': 21.3.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/utils': 8.57.0([email protected]([email protected]))([email protected])
'@angular-eslint/utils': 21.3.0(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@typescript-eslint/types': 8.57.1
'@typescript-eslint/utils': 8.57.1([email protected]([email protected]))([email protected])
aria-query: 5.3.2
axobject-query: 4.1.0
eslint: 10.0.0([email protected])
typescript: 5.9.2
'@angular-eslint/[email protected](@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
'@angular-eslint/[email protected](@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
dependencies:
'@angular-eslint/bundled-angular-compiler': 21.3.0
'@angular-eslint/utils': 21.3.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@typescript-eslint/utils': 8.57.0([email protected]([email protected]))([email protected])
'@angular-eslint/utils': 21.3.0(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@typescript-eslint/utils': 8.57.1([email protected]([email protected]))([email protected])
eslint: 10.0.0([email protected])
ts-api-utils: 2.4.0([email protected])
typescript: 5.9.2
@@ -12897,10 +12898,10 @@ snapshots:
eslint-scope: 9.1.2
typescript: 5.9.2
'@angular-eslint/[email protected](@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
'@angular-eslint/[email protected](@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
dependencies:
'@angular-eslint/bundled-angular-compiler': 21.3.0
'@typescript-eslint/utils': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/utils': 8.57.1([email protected]([email protected]))([email protected])
eslint: 10.0.0([email protected])
typescript: 5.9.2
@@ -13146,7 +13147,7 @@ snapshots:
'@babel/[email protected]':
dependencies:
'@babel/parser': 7.29.0
'@babel/parser': 7.28.5
'@babel/types': 7.28.4
'@jridgewell/gen-mapping': 0.3.13
'@jridgewell/trace-mapping': 0.3.31
@@ -13169,7 +13170,7 @@ snapshots:
'@babel/[email protected]':
dependencies:
'@babel/traverse': 7.28.4
'@babel/types': 7.29.0
'@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
@@ -13237,7 +13238,7 @@ snapshots:
'@babel/[email protected]':
dependencies:
'@babel/code-frame': 7.27.1
'@babel/parser': 7.29.0
'@babel/parser': 7.28.5
'@babel/types': 7.28.4
'@babel/[email protected]':
@@ -13245,7 +13246,7 @@ snapshots:
'@babel/code-frame': 7.27.1
'@babel/generator': 7.28.3
'@babel/helper-globals': 7.28.0
'@babel/parser': 7.29.0
'@babel/parser': 7.28.5
'@babel/template': 7.27.2
'@babel/types': 7.28.4
debug: 4.4.3([email protected])
@@ -13269,36 +13270,36 @@ snapshots:
'@balena/[email protected]': {}
'@bufbuild/[email protected]6.1':
'@bufbuild/[email protected]5.0':
optional: true
'@bufbuild/[email protected]6.1':
'@bufbuild/[email protected]5.0':
optional: true
'@bufbuild/[email protected]6.1':
'@bufbuild/[email protected]5.0':
optional: true
'@bufbuild/[email protected]6.1':
'@bufbuild/[email protected]5.0':
optional: true
'@bufbuild/[email protected]6.1':
'@bufbuild/[email protected]5.0':
optional: true
'@bufbuild/[email protected]6.1':
'@bufbuild/[email protected]5.0':
optional: true
'@bufbuild/[email protected]6.1':
'@bufbuild/[email protected]5.0':
optional: true
'@bufbuild/[email protected]6.1':
'@bufbuild/[email protected]5.0':
optionalDependencies:
'@bufbuild/buf-darwin-arm64': 1.66.1
'@bufbuild/buf-darwin-x64': 1.66.1
'@bufbuild/buf-linux-aarch64': 1.66.1
'@bufbuild/buf-linux-armv7': 1.66.1
'@bufbuild/buf-linux-x64': 1.66.1
'@bufbuild/buf-win32-arm64': 1.66.1
'@bufbuild/buf-win32-x64': 1.66.1
'@bufbuild/buf-darwin-arm64': 1.65.0
'@bufbuild/buf-darwin-x64': 1.65.0
'@bufbuild/buf-linux-aarch64': 1.65.0
'@bufbuild/buf-linux-armv7': 1.65.0
'@bufbuild/buf-linux-x64': 1.65.0
'@bufbuild/buf-win32-arm64': 1.65.0
'@bufbuild/buf-win32-x64': 1.65.0
'@bufbuild/[email protected]': {}
@@ -13310,9 +13311,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@bufbuild/[email protected](@bufbuild/[email protected]6.1)':
'@bufbuild/[email protected](@bufbuild/[email protected]5.0)':
dependencies:
'@bufbuild/buf': 1.66.1
'@bufbuild/buf': 1.65.0
'@bufbuild/protobuf': 2.11.0
fflate: 0.8.2
@@ -14147,7 +14148,7 @@ snapshots:
'@fumari/[email protected]([email protected])':
dependencies:
esrap: 2.2.3
esrap: 2.2.4
optionalDependencies:
json-schema-typed: 8.0.2
@@ -17347,7 +17348,7 @@ snapshots:
'@scalar/[email protected]': {}
'@scalar/[email protected].0': {}
'@scalar/[email protected].1': {}
'@scalar/[email protected]([email protected])':
dependencies:
@@ -17369,9 +17370,9 @@ snapshots:
pathe: 2.0.3
yaml: 2.8.1
'@scalar/[email protected].2':
'@scalar/[email protected].3':
dependencies:
'@scalar/helpers': 0.4.0
'@scalar/helpers': 0.4.1
pathe: 2.0.3
yaml: 2.8.1
@@ -17939,16 +17940,16 @@ snapshots:
'@types/[email protected]':
dependencies:
'@babel/types': 7.29.0
'@babel/types': 7.28.5
'@types/[email protected]':
dependencies:
'@babel/parser': 7.29.0
'@babel/types': 7.29.0
'@babel/parser': 7.28.5
'@babel/types': 7.28.5
'@types/[email protected]':
dependencies:
'@babel/types': 7.29.0
'@babel/types': 7.28.5
'@types/[email protected]':
dependencies:
@@ -18170,14 +18171,14 @@ snapshots:
'@types/node': 24.10.9
optional: true
'@typescript-eslint/[email protected].0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
'@typescript-eslint/[email protected].1(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
dependencies:
'@eslint-community/regexpp': 4.12.2
'@typescript-eslint/parser': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/scope-manager': 8.57.0
'@typescript-eslint/type-utils': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/utils': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/visitor-keys': 8.57.0
'@typescript-eslint/parser': 8.57.1([email protected]([email protected]))([email protected])
'@typescript-eslint/scope-manager': 8.57.1
'@typescript-eslint/type-utils': 8.57.1([email protected]([email protected]))([email protected])
'@typescript-eslint/utils': 8.57.1([email protected]([email protected]))([email protected])
'@typescript-eslint/visitor-keys': 8.57.1
eslint: 10.0.0([email protected])
ignore: 7.0.5
natural-compare: 1.4.0
@@ -18186,14 +18187,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
'@typescript-eslint/[email protected].1(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
dependencies:
'@eslint-community/regexpp': 4.12.2
'@typescript-eslint/parser': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/scope-manager': 8.57.0
'@typescript-eslint/type-utils': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/utils': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/visitor-keys': 8.57.0
'@typescript-eslint/parser': 8.57.1([email protected]([email protected]))([email protected])
'@typescript-eslint/scope-manager': 8.57.1
'@typescript-eslint/type-utils': 8.57.1([email protected]([email protected]))([email protected])
'@typescript-eslint/utils': 8.57.1([email protected]([email protected]))([email protected])
'@typescript-eslint/visitor-keys': 8.57.1
eslint: 10.0.0([email protected])
ignore: 7.0.5
natural-compare: 1.4.0
@@ -18202,66 +18203,66 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected])':
'@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected])':
dependencies:
'@typescript-eslint/scope-manager': 8.57.0
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/typescript-estree': 8.57.0([email protected])
'@typescript-eslint/visitor-keys': 8.57.0
'@typescript-eslint/scope-manager': 8.57.1
'@typescript-eslint/types': 8.57.1
'@typescript-eslint/typescript-estree': 8.57.1([email protected])
'@typescript-eslint/visitor-keys': 8.57.1
debug: 4.4.3([email protected])
eslint: 10.0.0([email protected])
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected])':
'@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected])':
dependencies:
'@typescript-eslint/scope-manager': 8.57.0
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/typescript-estree': 8.57.0([email protected])
'@typescript-eslint/visitor-keys': 8.57.0
'@typescript-eslint/scope-manager': 8.57.1
'@typescript-eslint/types': 8.57.1
'@typescript-eslint/typescript-estree': 8.57.1([email protected])
'@typescript-eslint/visitor-keys': 8.57.1
debug: 4.4.3([email protected])
eslint: 10.0.0([email protected])
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0([email protected])':
'@typescript-eslint/[email protected].1([email protected])':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.57.0([email protected])
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/tsconfig-utils': 8.57.1([email protected])
'@typescript-eslint/types': 8.57.1
debug: 4.4.3([email protected])
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0([email protected])':
'@typescript-eslint/[email protected].1([email protected])':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.57.0([email protected])
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/tsconfig-utils': 8.57.1([email protected])
'@typescript-eslint/types': 8.57.1
debug: 4.4.3([email protected])
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0':
'@typescript-eslint/[email protected].1':
dependencies:
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/visitor-keys': 8.57.0
'@typescript-eslint/types': 8.57.1
'@typescript-eslint/visitor-keys': 8.57.1
'@typescript-eslint/[email protected].0([email protected])':
'@typescript-eslint/[email protected].1([email protected])':
dependencies:
typescript: 5.9.2
'@typescript-eslint/[email protected].0([email protected])':
'@typescript-eslint/[email protected].1([email protected])':
dependencies:
typescript: 5.9.3
'@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected])':
'@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected])':
dependencies:
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/typescript-estree': 8.57.0([email protected])
'@typescript-eslint/utils': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/types': 8.57.1
'@typescript-eslint/typescript-estree': 8.57.1([email protected])
'@typescript-eslint/utils': 8.57.1([email protected]([email protected]))([email protected])
debug: 4.4.3([email protected])
eslint: 10.0.0([email protected])
ts-api-utils: 2.4.0([email protected])
@@ -18269,11 +18270,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected])':
'@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected])':
dependencies:
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/typescript-estree': 8.57.0([email protected])
'@typescript-eslint/utils': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/types': 8.57.1
'@typescript-eslint/typescript-estree': 8.57.1([email protected])
'@typescript-eslint/utils': 8.57.1([email protected]([email protected]))([email protected])
debug: 4.4.3([email protected])
eslint: 10.0.0([email protected])
ts-api-utils: 2.4.0([email protected])
@@ -18281,14 +18282,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected]7.0': {}
'@typescript-eslint/[email protected]6.0': {}
'@typescript-eslint/types[email protected]([email protected])':
'@typescript-eslint/types@8.57.1': {}
'@typescript-eslint/[email protected]([email protected])':
dependencies:
'@typescript-eslint/project-service': 8.57.0([email protected])
'@typescript-eslint/tsconfig-utils': 8.57.0([email protected])
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/visitor-keys': 8.57.0
'@typescript-eslint/project-service': 8.57.1([email protected])
'@typescript-eslint/tsconfig-utils': 8.57.1([email protected])
'@typescript-eslint/types': 8.57.1
'@typescript-eslint/visitor-keys': 8.57.1
debug: 4.4.3([email protected])
minimatch: 10.2.4
semver: 7.7.4
@@ -18298,12 +18301,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0([email protected])':
'@typescript-eslint/[email protected].1([email protected])':
dependencies:
'@typescript-eslint/project-service': 8.57.0([email protected])
'@typescript-eslint/tsconfig-utils': 8.57.0([email protected])
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/visitor-keys': 8.57.0
'@typescript-eslint/project-service': 8.57.1([email protected])
'@typescript-eslint/tsconfig-utils': 8.57.1([email protected])
'@typescript-eslint/types': 8.57.1
'@typescript-eslint/visitor-keys': 8.57.1
debug: 4.4.3([email protected])
minimatch: 10.2.4
semver: 7.7.4
@@ -18313,31 +18316,31 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected])':
'@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected])':
dependencies:
'@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
'@typescript-eslint/scope-manager': 8.57.0
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/typescript-estree': 8.57.0([email protected])
'@typescript-eslint/scope-manager': 8.57.1
'@typescript-eslint/types': 8.57.1
'@typescript-eslint/typescript-estree': 8.57.1([email protected])
eslint: 10.0.0([email protected])
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected])':
'@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected])':
dependencies:
'@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
'@typescript-eslint/scope-manager': 8.57.0
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/typescript-estree': 8.57.0([email protected])
'@typescript-eslint/scope-manager': 8.57.1
'@typescript-eslint/types': 8.57.1
'@typescript-eslint/typescript-estree': 8.57.1([email protected])
eslint: 10.0.0([email protected])
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/[email protected].0':
'@typescript-eslint/[email protected].1':
dependencies:
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/types': 8.57.1
eslint-visitor-keys: 5.0.0
'@typescript/[email protected]([email protected])':
@@ -20258,7 +20261,7 @@ snapshots:
tinyglobby: 0.2.15
unrs-resolver: 1.11.1
optionalDependencies:
eslint-plugin-import: 2.32.0(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
eslint-plugin-import: 2.32.0(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
transitivePeerDependencies:
- supports-color
@@ -20281,22 +20284,22 @@ snapshots:
- bluebird
- supports-color
[email protected](@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected])([email protected]([email protected])):
[email protected](@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected])([email protected]([email protected])):
dependencies:
debug: 3.2.7([email protected])
optionalDependencies:
'@typescript-eslint/parser': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/parser': 8.57.1([email protected]([email protected]))([email protected])
eslint: 10.0.0([email protected])
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 4.4.4([email protected])([email protected]([email protected]))
transitivePeerDependencies:
- supports-color
[email protected](@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected])([email protected]([email protected])):
[email protected](@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected])([email protected]([email protected])):
dependencies:
debug: 3.2.7([email protected])
optionalDependencies:
'@typescript-eslint/parser': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/parser': 8.57.1([email protected]([email protected]))([email protected])
eslint: 10.0.0([email protected])
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 4.4.4([email protected])([email protected]([email protected]))
@@ -20308,7 +20311,7 @@ snapshots:
eslint: 10.0.0([email protected])
globals: 15.15.0
[email protected](@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected])):
[email protected](@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected])):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -20319,7 +20322,7 @@ snapshots:
doctrine: 2.1.0
eslint: 10.0.0([email protected])
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.1(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected])([email protected]([email protected]))
eslint-module-utils: 2.12.1(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected])([email protected]([email protected]))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -20331,13 +20334,13 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
'@typescript-eslint/parser': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/parser': 8.57.1([email protected]([email protected]))([email protected])
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
[email protected](@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected])):
[email protected](@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected])):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -20348,7 +20351,7 @@ snapshots:
doctrine: 2.1.0
eslint: 10.0.0([email protected])
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.1(@typescript-eslint/[email protected].0([email protected]([email protected]))([email protected]))([email protected])([email protected])([email protected]([email protected]))
eslint-module-utils: 2.12.1(@typescript-eslint/[email protected].1([email protected]([email protected]))([email protected]))([email protected])([email protected])([email protected]([email protected]))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -20360,7 +20363,7 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
'@typescript-eslint/parser': 8.57.0([email protected]([email protected]))([email protected])
'@typescript-eslint/parser': 8.57.1([email protected]([email protected]))([email protected])
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -20475,9 +20478,10 @@ snapshots:
dependencies:
estraverse: 5.3.0
[email protected].3:
[email protected].4:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
'@typescript-eslint/types': 8.56.0
[email protected]:
dependencies:
@@ -20688,13 +20692,13 @@ snapshots:
[email protected]: {}
[email protected].2:
[email protected].4:
dependencies:
path-expression-matcher: 1.1.3
[email protected].3:
[email protected].6:
dependencies:
fast-xml-builder: 1.1.2
fast-xml-builder: 1.1.4
path-expression-matcher: 1.1.3
strnum: 2.1.2
@@ -20847,10 +20851,10 @@ snapshots:
[email protected]: {}
[email protected]5.2([email protected]([email protected]))([email protected]):
[email protected]8.0([email protected]([email protected]))([email protected]):
dependencies:
motion-dom: 12.35.2
motion-utils: 12.29.2
motion-dom: 12.38.0
motion-utils: 12.36.0
tslib: 2.8.1
optionalDependencies:
react: 19.2.4
@@ -20983,7 +20987,7 @@ snapshots:
'@radix-ui/react-dialog': 1.1.15(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-select': 2.2.6(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-slot': 1.2.4(@types/[email protected])([email protected])
'@scalar/json-magic': 0.12.2
'@scalar/json-magic': 0.12.3
'@scalar/openapi-upgrader': 0.2.0
ajv: 8.18.0
class-variance-authority: 0.7.1
@@ -21026,7 +21030,7 @@ snapshots:
class-variance-authority: 0.7.1
fumadocs-core: 16.6.15(@mdx-js/[email protected])(@types/[email protected])(@types/[email protected])(@types/[email protected])(@types/[email protected])([email protected])([email protected]([email protected]))([email protected](@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])([email protected]))([email protected]([email protected]))([email protected])([email protected])
lucide-react: 0.577.0([email protected])
motion: 12.35.2([email protected]([email protected]))([email protected])
motion: 12.38.0([email protected]([email protected]))([email protected])
next-themes: 0.4.6([email protected]([email protected]))([email protected])
react: 19.2.4
react-dom: 19.2.4([email protected])
@@ -21878,7 +21882,7 @@ snapshots:
[email protected]:
dependencies:
debug: 4.4.3([email protected])
debug: 4.4.1([email protected])
istanbul-lib-coverage: 2.0.5
make-dir: 2.1.0
rimraf: 2.7.1
@@ -22269,7 +22273,7 @@ snapshots:
dependencies:
chalk: 5.6.2
commander: 13.1.0
debug: 4.4.1(supports-color@5.5.0)
debug: 4.4.1(supports-color@8.1.1)
execa: 8.0.1
lilconfig: 3.1.3
listr2: 8.3.3
@@ -23140,15 +23144,15 @@ snapshots:
[email protected]: {}
[email protected]5.2:
[email protected]8.0:
dependencies:
motion-utils: 12.29.2
motion-utils: 12.36.0
motion-utils@12.29.2: {}
motion-utils@12.36.0: {}
[email protected]5.2([email protected]([email protected]))([email protected]):
[email protected]8.0([email protected]([email protected]))([email protected]):
dependencies:
framer-motion: 12.35.2([email protected]([email protected]))([email protected])
framer-motion: 12.38.0([email protected]([email protected]))([email protected])
tslib: 2.8.1
optionalDependencies:
react: 19.2.4
@@ -23621,7 +23625,7 @@ snapshots:
[email protected]:
dependencies:
'@types/json-schema': 7.0.15
fast-xml-parser: 5.5.3
fast-xml-parser: 5.5.6
json-pointer: 0.6.2
[email protected]: {}
@@ -25572,7 +25576,7 @@ snapshots:
cac: 6.7.14
chokidar: 4.0.3
consola: 3.4.2
debug: 4.4.1(supports-color@5.5.0)
debug: 4.4.1(supports-color@8.1.1)
esbuild: 0.27.2
fix-dts-default-cjs-exports: 1.0.1
joycon: 3.1.1
@@ -25998,7 +26002,7 @@ snapshots:
[email protected]([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])):
dependencies:
debug: 4.4.1(supports-color@5.5.0)
debug: 4.4.1(supports-color@8.1.1)
globrex: 0.1.2
tsconfck: 3.1.6([email protected])
optionalDependencies:
@@ -26100,7 +26104,7 @@ snapshots:
'@vitest/spy': 2.1.9
'@vitest/utils': 2.1.9
chai: 5.3.3
debug: 4.4.1(supports-color@5.5.0)
debug: 4.4.1(supports-color@8.1.1)
expect-type: 1.2.2
magic-string: 0.30.21
pathe: 1.1.2
@@ -26136,7 +26140,7 @@ snapshots:
'@vitest/spy': 2.1.9
'@vitest/utils': 2.1.9
chai: 5.3.3
debug: 4.4.1(supports-color@5.5.0)
debug: 4.4.1(supports-color@8.1.1)
expect-type: 1.2.2
magic-string: 0.30.21
pathe: 1.1.2