From 995793c0ac0d46e3e778ddbe144d4a8c548f3184 Mon Sep 17 00:00:00 2001 From: Paul Rastoin <45004772+prastoin@users.noreply.github.com> Date: Wed, 4 Mar 2026 13:12:13 +0100 Subject: [PATCH] `[CREATE_APP]` Integration testing scaffold (#18345) # Introduction Adding integration test scaffold to the create twenty app and an example to the hello world app This PR also fixes all the sdk e2e tests in local ## `HELLO_WORLD` Removed the legacy implem in the `twenty-apps` folder, replacing it by an exhaustive app generation ## Next step Will in another PR add workflows for CI testing ## Open question - Should we still add vitest config and dep even if the user did not ask for the integration test example ? -> currently we don't - That's the perfect timing to identify if we're ok to handle seed workspace authentication with the known api key --- packages/create-twenty-app/README.md | 2 + .../src/constants/base-application/README.md | 11 + .../constants/base-application/tsconfig.json | 2 +- .../src/create-app.command.ts | 10 + .../src/types/scaffolding-options.ts | 1 + .../src/utils/__tests__/app-template.spec.ts | 84 +- .../src/utils/__tests__/test-template.spec.ts | 144 + .../src/utils/app-template.ts | 66 +- .../src/utils/test-template.ts | 226 ++ packages/create-twenty-app/tsconfig.json | 3 + packages/twenty-apps/hello-world/.env.example | 2 - packages/twenty-apps/hello-world/.gitignore | 39 +- packages/twenty-apps/hello-world/.nvmrc | 1 + packages/twenty-apps/hello-world/LLMS.md | 12 + packages/twenty-apps/hello-world/README.md | 73 +- .../twenty-apps/hello-world/eslint.config.mjs | 29 + packages/twenty-apps/hello-world/package.json | 25 +- .../__tests__/app-install.integration-test.ts | 92 + .../hello-world/src/__tests__/setup-test.ts | 24 + .../src/actions/create-new-post-card.ts | 55 - .../hello-world/src/application-config.ts | 12 + .../hello-world/src/application.config.ts | 17 - .../hello-world/src/fields/example-field.ts | 11 + .../src/front-components/hello-world.tsx | 17 + .../src/logic-functions/hello-world.ts | 18 + .../src/logic-functions/post-install.ts | 13 + .../src/logic-functions/pre-install.ts | 13 + .../example-navigation-menu-item.ts | 14 + .../hello-world/src/objects/example-object.ts | 28 + .../hello-world/src/objects/postCard.ts | 89 - .../hello-world/src/roles/default-role.ts | 14 + .../hello-world/src/roles/function-role.ts | 33 - .../hello-world/src/skills/example-skill.ts | 13 + .../hello-world/src/views/example-view.ts | 10 + .../twenty-apps/hello-world/tsconfig.json | 32 +- .../hello-world/tsconfig.spec.json | 17 + .../twenty-apps/hello-world/vitest.config.ts | 22 + packages/twenty-apps/hello-world/yarn.lock | 2593 ++++++++++++----- .../src/cli/__tests__/constants/setupTest.ts | 6 +- .../src/cli/__tests__/constants/testConfig.ts | 7 - packages/twenty-sdk/vitest.e2e.config.ts | 5 + .../twenty-sdk/vitest.integration.config.ts | 5 + 42 files changed, 2851 insertions(+), 1039 deletions(-) create mode 100644 packages/create-twenty-app/src/utils/__tests__/test-template.spec.ts create mode 100644 packages/create-twenty-app/src/utils/test-template.ts delete mode 100644 packages/twenty-apps/hello-world/.env.example create mode 100644 packages/twenty-apps/hello-world/.nvmrc create mode 100644 packages/twenty-apps/hello-world/LLMS.md create mode 100644 packages/twenty-apps/hello-world/eslint.config.mjs create mode 100644 packages/twenty-apps/hello-world/src/__tests__/app-install.integration-test.ts create mode 100644 packages/twenty-apps/hello-world/src/__tests__/setup-test.ts delete mode 100644 packages/twenty-apps/hello-world/src/actions/create-new-post-card.ts create mode 100644 packages/twenty-apps/hello-world/src/application-config.ts delete mode 100644 packages/twenty-apps/hello-world/src/application.config.ts create mode 100644 packages/twenty-apps/hello-world/src/fields/example-field.ts create mode 100644 packages/twenty-apps/hello-world/src/front-components/hello-world.tsx create mode 100644 packages/twenty-apps/hello-world/src/logic-functions/hello-world.ts create mode 100644 packages/twenty-apps/hello-world/src/logic-functions/post-install.ts create mode 100644 packages/twenty-apps/hello-world/src/logic-functions/pre-install.ts create mode 100644 packages/twenty-apps/hello-world/src/navigation-menu-items/example-navigation-menu-item.ts create mode 100644 packages/twenty-apps/hello-world/src/objects/example-object.ts delete mode 100644 packages/twenty-apps/hello-world/src/objects/postCard.ts create mode 100644 packages/twenty-apps/hello-world/src/roles/default-role.ts delete mode 100644 packages/twenty-apps/hello-world/src/roles/function-role.ts create mode 100644 packages/twenty-apps/hello-world/src/skills/example-skill.ts create mode 100644 packages/twenty-apps/hello-world/src/views/example-view.ts create mode 100644 packages/twenty-apps/hello-world/tsconfig.spec.json create mode 100644 packages/twenty-apps/hello-world/vitest.config.ts delete mode 100644 packages/twenty-sdk/src/cli/__tests__/constants/testConfig.ts diff --git a/packages/create-twenty-app/README.md b/packages/create-twenty-app/README.md index 9217197e77..0d37ade991 100644 --- a/packages/create-twenty-app/README.md +++ b/packages/create-twenty-app/README.md @@ -89,6 +89,7 @@ In interactive mode, you can pick from: - **Example view** — a saved view for the example object (`views/example-view.ts`) - **Example navigation menu item** — a sidebar link (`navigation-menu-items/example-navigation-menu-item.ts`) - **Example skill** — an AI agent skill definition (`skills/example-skill.ts`) +- **Integration test** — a vitest integration test verifying app installation (`__tests__/app-install.integration-test.ts`) ## What gets scaffolded @@ -108,6 +109,7 @@ In interactive mode, you can pick from: - `views/example-view.ts` — Example saved view for the example object - `navigation-menu-items/example-navigation-menu-item.ts` — Example sidebar navigation link - `skills/example-skill.ts` — Example AI agent skill definition +- `__tests__/app-install.integration-test.ts` — Integration test that builds, installs, and verifies the app (includes `vitest.config.ts`, `tsconfig.spec.json`, and a setup file) ## Next steps - Run `yarn twenty help` to see all available commands. diff --git a/packages/create-twenty-app/src/constants/base-application/README.md b/packages/create-twenty-app/src/constants/base-application/README.md index f12837b91e..34da2bd55c 100644 --- a/packages/create-twenty-app/src/constants/base-application/README.md +++ b/packages/create-twenty-app/src/constants/base-application/README.md @@ -36,6 +36,17 @@ yarn twenty function:execute # Execute a function with JSON payload yarn twenty app:uninstall # Uninstall app from workspace ``` +## Integration Tests + +If your project includes the example integration test (`src/__tests__/app-install.integration-test.ts`), you can run it with: + +```bash +# Make sure a Twenty server is running at http://localhost:3000 +yarn test +``` + +The test builds and installs the app, then verifies it appears in the applications list. Test configuration (API URL and API key) is defined in `vitest.config.ts`. + ## LLMs instructions Main docs and pitfalls are available in LLMS.md file. diff --git a/packages/create-twenty-app/src/constants/base-application/tsconfig.json b/packages/create-twenty-app/src/constants/base-application/tsconfig.json index 3816867c05..6ee3fc81e1 100644 --- a/packages/create-twenty-app/src/constants/base-application/tsconfig.json +++ b/packages/create-twenty-app/src/constants/base-application/tsconfig.json @@ -27,5 +27,5 @@ "~/*": ["./*"] } }, - "exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"] + "exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts", "**/*.integration-test.ts"] } diff --git a/packages/create-twenty-app/src/create-app.command.ts b/packages/create-twenty-app/src/create-app.command.ts index 8df1e67410..4931b1c725 100644 --- a/packages/create-twenty-app/src/create-app.command.ts +++ b/packages/create-twenty-app/src/create-app.command.ts @@ -115,6 +115,7 @@ export class CreateAppCommand { includeExampleView: false, includeExampleNavigationMenuItem: false, includeExampleSkill: false, + includeExampleIntegrationTest: false, }; } @@ -127,6 +128,7 @@ export class CreateAppCommand { includeExampleView: true, includeExampleNavigationMenuItem: true, includeExampleSkill: true, + includeExampleIntegrationTest: true, }; } @@ -171,12 +173,19 @@ export class CreateAppCommand { value: 'skill', checked: true, }, + { + name: 'Integration test (vitest test verifying app installation)', + value: 'integrationTest', + checked: true, + }, ], }, ]); const includeField = selectedExamples.includes('field'); const includeView = selectedExamples.includes('view'); + const includeExampleIntegrationTest = + selectedExamples.includes('integrationTest'); const includeObject = selectedExamples.includes('object') || includeField || includeView; @@ -197,6 +206,7 @@ export class CreateAppCommand { includeExampleNavigationMenuItem: selectedExamples.includes('navigationMenuItem'), includeExampleSkill: selectedExamples.includes('skill'), + includeExampleIntegrationTest, }; } diff --git a/packages/create-twenty-app/src/types/scaffolding-options.ts b/packages/create-twenty-app/src/types/scaffolding-options.ts index 4ffd815ca3..7f22c392b9 100644 --- a/packages/create-twenty-app/src/types/scaffolding-options.ts +++ b/packages/create-twenty-app/src/types/scaffolding-options.ts @@ -8,4 +8,5 @@ export type ExampleOptions = { includeExampleView: boolean; includeExampleNavigationMenuItem: boolean; includeExampleSkill: boolean; + includeExampleIntegrationTest: boolean; }; diff --git a/packages/create-twenty-app/src/utils/__tests__/app-template.spec.ts b/packages/create-twenty-app/src/utils/__tests__/app-template.spec.ts index 6e4afd7b0d..7159a47a24 100644 --- a/packages/create-twenty-app/src/utils/__tests__/app-template.spec.ts +++ b/packages/create-twenty-app/src/utils/__tests__/app-template.spec.ts @@ -1,10 +1,10 @@ import { type ExampleOptions } from '@/types/scaffolding-options'; -import { GENERATED_DIR } from 'twenty-shared/application'; import { copyBaseApplicationProject } from '@/utils/app-template'; import * as fs from 'fs-extra'; import { tmpdir } from 'os'; -import { join } from 'path'; import createTwentyAppPackageJson from 'package.json'; +import { join } from 'path'; +import { GENERATED_DIR } from 'twenty-shared/application'; jest.mock('fs-extra', () => { const actual = jest.requireActual('fs-extra'); @@ -25,6 +25,16 @@ const ALL_EXAMPLES: ExampleOptions = { includeExampleView: true, includeExampleNavigationMenuItem: true, includeExampleSkill: true, + includeExampleIntegrationTest: true, +}; + +const SEED_TSCONFIG = { + compilerOptions: { paths: { 'src/*': ['./src/*'] } }, + exclude: ['node_modules', 'dist', '**/*.integration-test.ts'], +}; + +const seedTsconfig = async (directory: string) => { + await fs.writeJson(join(directory, 'tsconfig.json'), SEED_TSCONFIG); }; const NO_EXAMPLES: ExampleOptions = { @@ -35,6 +45,7 @@ const NO_EXAMPLES: ExampleOptions = { includeExampleFrontComponent: false, includeExampleView: false, includeExampleNavigationMenuItem: false, + includeExampleIntegrationTest: false, }; describe('copyBaseApplicationProject', () => { @@ -46,6 +57,7 @@ describe('copyBaseApplicationProject', () => { `test-twenty-app-${Date.now()}-${Math.random().toString(36).slice(2)}`, ); await fs.ensureDir(testAppDirectory); + await seedTsconfig(testAppDirectory); jest.clearAllMocks(); }); @@ -149,11 +161,18 @@ describe('copyBaseApplicationProject', () => { "import { DEFAULT_ROLE_UNIVERSAL_IDENTIFIER } from 'src/roles/default-role'", ); + expect(appConfigContent).toContain( + 'export const APPLICATION_UNIVERSAL_IDENTIFIER', + ); + expect(appConfigContent).toContain( + 'universalIdentifier: APPLICATION_UNIVERSAL_IDENTIFIER', + ); + expect(appConfigContent).toContain("displayName: 'My Test App'"); expect(appConfigContent).toContain("description: 'A test application'"); expect(appConfigContent).toMatch( - /universalIdentifier: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'/, + /APPLICATION_UNIVERSAL_IDENTIFIER =\s*'[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'/, ); expect(appConfigContent).toContain( @@ -235,6 +254,7 @@ describe('copyBaseApplicationProject', () => { it('should generate unique UUIDs for each application', async () => { const firstAppDir = join(testAppDirectory, 'app1'); await fs.ensureDir(firstAppDir); + await seedTsconfig(firstAppDir); await copyBaseApplicationProject({ appName: 'app-one', appDisplayName: 'App One', @@ -245,6 +265,7 @@ describe('copyBaseApplicationProject', () => { const secondAppDir = join(testAppDirectory, 'app2'); await fs.ensureDir(secondAppDir); + await seedTsconfig(secondAppDir); await copyBaseApplicationProject({ appName: 'app-two', appDisplayName: 'App Two', @@ -263,7 +284,7 @@ describe('copyBaseApplicationProject', () => { ); const uuidRegex = - /universalIdentifier: '([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})'/; + /APPLICATION_UNIVERSAL_IDENTIFIER =\s*'([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})'/; const firstUuid = firstAppConfig.match(uuidRegex)?.[1]; const secondUuid = secondAppConfig.match(uuidRegex)?.[1]; @@ -275,6 +296,7 @@ describe('copyBaseApplicationProject', () => { it('should generate unique role UUIDs for each application', async () => { const firstAppDir = join(testAppDirectory, 'app1'); await fs.ensureDir(firstAppDir); + await seedTsconfig(firstAppDir); await copyBaseApplicationProject({ appName: 'app-one', appDisplayName: 'App One', @@ -285,6 +307,7 @@ describe('copyBaseApplicationProject', () => { const secondAppDir = join(testAppDirectory, 'app2'); await fs.ensureDir(secondAppDir); + await seedTsconfig(secondAppDir); await copyBaseApplicationProject({ appName: 'app-two', appDisplayName: 'App Two', @@ -355,6 +378,12 @@ describe('copyBaseApplicationProject', () => { ), ).toBe(true); + expect( + await fs.pathExists( + join(srcPath, '__tests__', 'app-install.integration-test.ts'), + ), + ).toBe(true); + // Install functions should always exist expect( await fs.pathExists( @@ -428,6 +457,11 @@ describe('copyBaseApplicationProject', () => { ), ), ).toBe(false); + expect( + await fs.pathExists( + join(srcPath, '__tests__', 'app-install.integration-test.ts'), + ), + ).toBe(false); }); }); @@ -446,6 +480,7 @@ describe('copyBaseApplicationProject', () => { includeExampleFrontComponent: true, includeExampleView: false, includeExampleNavigationMenuItem: false, + includeExampleIntegrationTest: false, }, }); @@ -483,6 +518,7 @@ describe('copyBaseApplicationProject', () => { includeExampleFrontComponent: false, includeExampleView: false, includeExampleNavigationMenuItem: false, + includeExampleIntegrationTest: false, }, }); @@ -540,6 +576,7 @@ describe('copyBaseApplicationProject', () => { it('should generate unique UUIDs for example objects across apps', async () => { const firstAppDir = join(testAppDirectory, 'app1'); await fs.ensureDir(firstAppDir); + await seedTsconfig(firstAppDir); await copyBaseApplicationProject({ appName: 'app-one', appDisplayName: 'App One', @@ -550,6 +587,7 @@ describe('copyBaseApplicationProject', () => { const secondAppDir = join(testAppDirectory, 'app2'); await fs.ensureDir(secondAppDir); + await seedTsconfig(secondAppDir); await copyBaseApplicationProject({ appName: 'app-two', appDisplayName: 'App Two', @@ -738,6 +776,44 @@ describe('copyBaseApplicationProject', () => { }); }); + describe('integration test', () => { + it('should include vitest and test scripts in package.json when enabled', async () => { + await copyBaseApplicationProject({ + appName: 'my-test-app', + appDisplayName: 'My Test App', + appDescription: 'A test application', + appDirectory: testAppDirectory, + exampleOptions: ALL_EXAMPLES, + }); + + const packageJson = await fs.readJson( + join(testAppDirectory, 'package.json'), + ); + + expect(packageJson.scripts.test).toBe('vitest run'); + expect(packageJson.scripts['test:watch']).toBe('vitest'); + expect(packageJson.devDependencies.vitest).toBeDefined(); + }); + + it('should not include vitest or test scripts when disabled', async () => { + await copyBaseApplicationProject({ + appName: 'my-test-app', + appDisplayName: 'My Test App', + appDescription: 'A test application', + appDirectory: testAppDirectory, + exampleOptions: NO_EXAMPLES, + }); + + const packageJson = await fs.readJson( + join(testAppDirectory, 'package.json'), + ); + + expect(packageJson.scripts.test).toBeUndefined(); + expect(packageJson.scripts['test:watch']).toBeUndefined(); + expect(packageJson.devDependencies.vitest).toBeUndefined(); + }); + }); + describe('post-install logic function', () => { it('should create post-install.ts with definePostInstallLogicFunction and typed payload', async () => { await copyBaseApplicationProject({ diff --git a/packages/create-twenty-app/src/utils/__tests__/test-template.spec.ts b/packages/create-twenty-app/src/utils/__tests__/test-template.spec.ts new file mode 100644 index 0000000000..0bedcbf289 --- /dev/null +++ b/packages/create-twenty-app/src/utils/__tests__/test-template.spec.ts @@ -0,0 +1,144 @@ +import { scaffoldIntegrationTest } from '@/utils/test-template'; +import * as fs from 'fs-extra'; +import { tmpdir } from 'os'; +import { join } from 'path'; + +describe('scaffoldIntegrationTest', () => { + let testAppDirectory: string; + let sourceFolderPath: string; + + beforeEach(async () => { + testAppDirectory = join( + tmpdir(), + `test-twenty-app-${Date.now()}-${Math.random().toString(36).slice(2)}`, + ); + sourceFolderPath = join(testAppDirectory, 'src'); + await fs.ensureDir(sourceFolderPath); + + await fs.writeJson(join(testAppDirectory, 'tsconfig.json'), { + compilerOptions: { + paths: { 'src/*': ['./src/*'] }, + }, + exclude: ['node_modules', 'dist', '**/*.integration-test.ts'], + }); + }); + + afterEach(async () => { + if (testAppDirectory && (await fs.pathExists(testAppDirectory))) { + await fs.remove(testAppDirectory); + } + }); + + describe('integration test file', () => { + it('should create app-install.integration-test.ts with correct structure', async () => { + await scaffoldIntegrationTest({ + appDirectory: testAppDirectory, + sourceFolderPath, + }); + + const testPath = join( + sourceFolderPath, + '__tests__', + 'app-install.integration-test.ts', + ); + + expect(await fs.pathExists(testPath)).toBe(true); + + const content = await fs.readFile(testPath, 'utf8'); + + expect(content).toContain( + "import { appBuild, appUninstall } from 'twenty-sdk/cli'", + ); + expect(content).toContain( + "import { MetadataApiClient } from 'twenty-sdk/generated'", + ); + expect(content).toContain( + "import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/application-config'", + ); + expect(content).toContain('TWENTY_TEST_API_KEY'); + expect(content).toContain('assertServerIsReachable'); + expect(content).toContain('appBuild'); + expect(content).toContain('appUninstall'); + expect(content).toContain('findManyApplications'); + expect(content).toContain('APPLICATION_UNIVERSAL_IDENTIFIER'); + }); + }); + + describe('setup-test file', () => { + it('should create setup-test.ts with SDK config bootstrap', async () => { + await scaffoldIntegrationTest({ + appDirectory: testAppDirectory, + sourceFolderPath, + }); + + const setupTestPath = join( + sourceFolderPath, + '__tests__', + 'setup-test.ts', + ); + + expect(await fs.pathExists(setupTestPath)).toBe(true); + + const content = await fs.readFile(setupTestPath, 'utf8'); + + expect(content).toContain('.twenty-sdk-test'); + expect(content).toContain('config.json'); + expect(content).toContain('process.env.TWENTY_API_URL'); + expect(content).toContain('process.env.TWENTY_TEST_API_KEY'); + }); + }); + + describe('vitest config', () => { + it('should create vitest.config.ts with env vars and setup file', async () => { + await scaffoldIntegrationTest({ + appDirectory: testAppDirectory, + sourceFolderPath, + }); + + const vitestConfigPath = join(testAppDirectory, 'vitest.config.ts'); + + expect(await fs.pathExists(vitestConfigPath)).toBe(true); + + const content = await fs.readFile(vitestConfigPath, 'utf8'); + + expect(content).toContain('TWENTY_TEST_API_KEY'); + expect(content).toContain('TWENTY_API_URL'); + expect(content).toContain('setup-test.ts'); + expect(content).toContain('tsconfig.spec.json'); + expect(content).toContain('integration-test.ts'); + }); + }); + + describe('tsconfig.spec.json', () => { + it('should create tsconfig.spec.json extending the base tsconfig', async () => { + await scaffoldIntegrationTest({ + appDirectory: testAppDirectory, + sourceFolderPath, + }); + + const tsconfigSpecPath = join(testAppDirectory, 'tsconfig.spec.json'); + + expect(await fs.pathExists(tsconfigSpecPath)).toBe(true); + + const tsconfigSpec = await fs.readJson(tsconfigSpecPath); + + expect(tsconfigSpec.extends).toBe('./tsconfig.json'); + expect(tsconfigSpec.compilerOptions.composite).toBe(true); + expect(tsconfigSpec.include).toContain('src/**/*.ts'); + expect(tsconfigSpec.exclude).not.toContain('**/*.integration-test.ts'); + }); + + it('should add a reference to tsconfig.spec.json in tsconfig.json', async () => { + await scaffoldIntegrationTest({ + appDirectory: testAppDirectory, + sourceFolderPath, + }); + + const tsconfig = await fs.readJson( + join(testAppDirectory, 'tsconfig.json'), + ); + + expect(tsconfig.references).toEqual([{ path: './tsconfig.spec.json' }]); + }); + }); +}); diff --git a/packages/create-twenty-app/src/utils/app-template.ts b/packages/create-twenty-app/src/utils/app-template.ts index 51fa5cc86e..e6d0dc6fe2 100644 --- a/packages/create-twenty-app/src/utils/app-template.ts +++ b/packages/create-twenty-app/src/utils/app-template.ts @@ -1,9 +1,10 @@ import * as fs from 'fs-extra'; import { join } from 'path'; -import { v4 } from 'uuid'; import { ASSETS_DIR } from 'twenty-shared/application'; +import { v4 } from 'uuid'; import { type ExampleOptions } from '@/types/scaffolding-options'; +import { scaffoldIntegrationTest } from '@/utils/test-template'; import createTwentyAppPackageJson from 'package.json'; const SRC_FOLDER = 'src'; @@ -23,7 +24,11 @@ export const copyBaseApplicationProject = async ({ }) => { await fs.copy(join(__dirname, './constants/base-application'), appDirectory); - await createPackageJson({ appName, appDirectory }); + await createPackageJson({ + appName, + appDirectory, + includeExampleIntegrationTest: exampleOptions.includeExampleIntegrationTest, + }); await createGitignore(appDirectory); @@ -98,6 +103,13 @@ export const copyBaseApplicationProject = async ({ }); } + if (exampleOptions.includeExampleIntegrationTest) { + await scaffoldIntegrationTest({ + appDirectory, + sourceFolderPath, + }); + } + await createDefaultPreInstallFunction({ appDirectory: sourceFolderPath, fileFolder: 'logic-functions', @@ -167,6 +179,7 @@ yarn-error.log* # typescript *.tsbuildinfo +*.d.ts `; await fs.writeFile(join(appDirectory, '.gitignore'), gitignoreContent); @@ -509,11 +522,16 @@ const createApplicationConfig = async ({ fileFolder?: string; fileName: string; }) => { + const universalIdentifier = v4(); + const content = `import { defineApplication } from 'twenty-sdk'; import { DEFAULT_ROLE_UNIVERSAL_IDENTIFIER } from 'src/roles/default-role'; +export const APPLICATION_UNIVERSAL_IDENTIFIER = + '${universalIdentifier}'; + export default defineApplication({ - universalIdentifier: '${v4()}', + universalIdentifier: APPLICATION_UNIVERSAL_IDENTIFIER, displayName: '${displayName}', description: '${description ?? ''}', defaultRoleUniversalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER, @@ -527,10 +545,35 @@ export default defineApplication({ const createPackageJson = async ({ appName, appDirectory, + includeExampleIntegrationTest, }: { appName: string; appDirectory: string; + includeExampleIntegrationTest: boolean; }) => { + const scripts: Record = { + twenty: 'twenty', + lint: 'eslint', + 'lint:fix': 'eslint --fix', + }; + + const devDependencies: Record = { + typescript: '^5.9.3', + '@types/node': '^24.7.2', + '@types/react': '^18.2.0', + react: '^18.2.0', + eslint: '^9.32.0', + 'typescript-eslint': '^8.50.0', + 'twenty-sdk': createTwentyAppPackageJson.version, + }; + + if (includeExampleIntegrationTest) { + scripts.test = 'vitest run'; + scripts['test:watch'] = 'vitest'; + devDependencies.vitest = '^3.1.1'; + devDependencies['vite-tsconfig-paths'] = '^4.2.1'; + } + const packageJson = { name: appName, version: '0.1.0', @@ -541,21 +584,8 @@ const createPackageJson = async ({ yarn: '>=4.0.2', }, packageManager: 'yarn@4.9.2', - scripts: { - twenty: 'twenty', - lint: 'eslint', - 'lint:fix': 'eslint --fix', - }, - dependencies: {}, - devDependencies: { - 'twenty-sdk': createTwentyAppPackageJson.version, - typescript: '^5.9.3', - '@types/node': '^24.7.2', - '@types/react': '^18.2.0', - react: '^18.2.0', - eslint: '^9.32.0', - 'typescript-eslint': '^8.50.0', - }, + scripts, + devDependencies, }; await fs.writeFile( diff --git a/packages/create-twenty-app/src/utils/test-template.ts b/packages/create-twenty-app/src/utils/test-template.ts new file mode 100644 index 0000000000..7504d0c29d --- /dev/null +++ b/packages/create-twenty-app/src/utils/test-template.ts @@ -0,0 +1,226 @@ +import * as fs from 'fs-extra'; +import { join } from 'path'; + +const SEED_API_KEY = + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik'; + +export const scaffoldIntegrationTest = async ({ + appDirectory, + sourceFolderPath, +}: { + appDirectory: string; + sourceFolderPath: string; +}) => { + await createIntegrationTest({ + appDirectory: sourceFolderPath, + fileFolder: '__tests__', + fileName: 'app-install.integration-test.ts', + }); + + await createSetupTest({ + appDirectory: sourceFolderPath, + fileFolder: '__tests__', + fileName: 'setup-test.ts', + }); + + await createVitestConfig(appDirectory); + await createTsconfigSpec(appDirectory); +}; + +const createVitestConfig = async (appDirectory: string) => { + const content = `import tsconfigPaths from 'vite-tsconfig-paths'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + plugins: [ + tsconfigPaths({ + projects: ['tsconfig.spec.json'], + ignoreConfigErrors: true, + }), + ], + test: { + testTimeout: 120_000, + hookTimeout: 120_000, + include: ['src/**/*.integration-test.ts'], + setupFiles: ['src/__tests__/setup-test.ts'], + env: { + TWENTY_API_URL: 'http://localhost:3000', + TWENTY_TEST_API_KEY: + '${SEED_API_KEY}', + }, + }, +}); +`; + + await fs.writeFile(join(appDirectory, 'vitest.config.ts'), content); +}; + +const createTsconfigSpec = async (appDirectory: string) => { + const tsconfigSpec = { + extends: './tsconfig.json', + compilerOptions: { + composite: true, + types: ['vitest/globals'], + }, + include: ['src/**/*.ts', 'src/**/*.tsx'], + exclude: ['node_modules', 'dist'], + }; + + await fs.writeFile( + join(appDirectory, 'tsconfig.spec.json'), + JSON.stringify(tsconfigSpec, null, 2), + ); + + const tsconfigPath = join(appDirectory, 'tsconfig.json'); + const tsconfig = await fs.readJson(tsconfigPath); + + tsconfig.references = [{ path: './tsconfig.spec.json' }]; + + await fs.writeFile(tsconfigPath, JSON.stringify(tsconfig, null, 2)); +}; + +const createSetupTest = async ({ + appDirectory, + fileFolder, + fileName, +}: { + appDirectory: string; + fileFolder?: string; + fileName: string; +}) => { + const content = `import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { beforeAll } from 'vitest'; + +const TEST_CONFIG_DIR = path.join(os.tmpdir(), '.twenty-sdk-test'); + +beforeAll(() => { + fs.mkdirSync(TEST_CONFIG_DIR, { recursive: true }); + + const configFile = { + profiles: { + default: { + apiUrl: process.env.TWENTY_API_URL, + apiKey: process.env.TWENTY_TEST_API_KEY, + }, + }, + }; + + fs.writeFileSync( + path.join(TEST_CONFIG_DIR, 'config.json'), + JSON.stringify(configFile, null, 2), + ); +}); +`; + + await fs.ensureDir(join(appDirectory, fileFolder ?? '')); + await fs.writeFile(join(appDirectory, fileFolder ?? '', fileName), content); +}; + +const createIntegrationTest = async ({ + appDirectory, + fileFolder, + fileName, +}: { + appDirectory: string; + fileFolder?: string; + fileName: string; +}) => { + const content = `import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/application-config'; +import { appBuild, appUninstall } from 'twenty-sdk/cli'; +import { MetadataApiClient } from 'twenty-sdk/generated'; +import { afterAll, beforeAll, describe, expect, it } from 'vitest'; + +const APP_PATH = process.cwd(); +const TWENTY_API_URL = process.env.TWENTY_API_URL ?? 'http://localhost:3000'; + +const assertServerIsReachable = async () => { + let response: Response; + + try { + response = await fetch(\`\${TWENTY_API_URL}/healthz\`); + } catch { + throw new Error( + \`Twenty server is not reachable at \${TWENTY_API_URL}. \` + + 'Make sure the server is running before executing integration tests.', + ); + } + + if (!response.ok) { + throw new Error(\`Server at \${TWENTY_API_URL} returned \${response.status}\`); + } +}; + +describe('App installation', () => { + let appInstalled = false; + + beforeAll(async () => { + await assertServerIsReachable(); + + const buildResult = await appBuild({ + appPath: APP_PATH, + onProgress: (message: string) => console.log(\`[build] \${message}\`), + }); + + if (!buildResult.success) { + throw new Error( + \`App build failed: \${buildResult.error?.message ?? 'Unknown error'}\`, + ); + } + + appInstalled = true; + }); + + afterAll(async () => { + if (!appInstalled) { + return; + } + + const uninstallResult = await appUninstall({ appPath: APP_PATH }); + + if (!uninstallResult.success) { + console.warn( + \`App uninstall failed: \${uninstallResult.error?.message ?? 'Unknown error'}\`, + ); + } + }); + + it('should find the installed app in the applications list', async () => { + const apiKey = process.env.TWENTY_TEST_API_KEY; + + if (!apiKey) { + throw new Error( + 'No API key found. Set TWENTY_TEST_API_KEY in your vitest config env.', + ); + } + + const metadataClient = new MetadataApiClient({ + url: \`\${TWENTY_API_URL}/metadata\`, + headers: { + Authorization: \`Bearer \${apiKey}\`, + }, + }); + + const result = await metadataClient.query({ + findManyApplications: { + id: true, + name: true, + universalIdentifier: true, + }, + }); + + const installedApp = result.findManyApplications.find( + (application: { universalIdentifier: string }) => + application.universalIdentifier === + APPLICATION_UNIVERSAL_IDENTIFIER, + ); + + expect(installedApp).toBeDefined(); + }); +}); +`; + + await fs.ensureDir(join(appDirectory, fileFolder ?? '')); + await fs.writeFile(join(appDirectory, fileFolder ?? '', fileName), content); +}; diff --git a/packages/create-twenty-app/tsconfig.json b/packages/create-twenty-app/tsconfig.json index bd387974ed..c7efa26bf7 100644 --- a/packages/create-twenty-app/tsconfig.json +++ b/packages/create-twenty-app/tsconfig.json @@ -23,5 +23,8 @@ "**/__mocks__/**/*", "vite.config.ts", "jest.config.mjs" + ], + "exclude": [ + "src/constants/base-application/vitest.config.ts" ] } diff --git a/packages/twenty-apps/hello-world/.env.example b/packages/twenty-apps/hello-world/.env.example deleted file mode 100644 index 1e91e5f505..0000000000 --- a/packages/twenty-apps/hello-world/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -TWENTY_API_KEY= -TWENTY_API_URL= diff --git a/packages/twenty-apps/hello-world/.gitignore b/packages/twenty-apps/hello-world/.gitignore index 97813ceeab..6cd0610624 100644 --- a/packages/twenty-apps/hello-world/.gitignore +++ b/packages/twenty-apps/hello-world/.gitignore @@ -1,3 +1,38 @@ -.yarn/install-state.gz -.env +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn + +# codegen +generated + +# testing +/coverage + +# dev +/dist/ + .twenty + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files (can opt-in for committing if needed) +.env* + +# typescript +*.tsbuildinfo +*.d.ts diff --git a/packages/twenty-apps/hello-world/.nvmrc b/packages/twenty-apps/hello-world/.nvmrc new file mode 100644 index 0000000000..341cb50613 --- /dev/null +++ b/packages/twenty-apps/hello-world/.nvmrc @@ -0,0 +1 @@ +24.5.0 diff --git a/packages/twenty-apps/hello-world/LLMS.md b/packages/twenty-apps/hello-world/LLMS.md new file mode 100644 index 0000000000..38afd91745 --- /dev/null +++ b/packages/twenty-apps/hello-world/LLMS.md @@ -0,0 +1,12 @@ +## Base documentation + +- Documentation: https://docs.twenty.com/developers/extend/capabilities/apps +- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-sdk/src/cli/__tests__/apps/rich-app + +## UUID requirement +- All generated UUIDs must be valid UUID v4. + +## Common Pitfalls + +- Creating an object without an index view associated. Unless this is a technical object, user will need to visualize it. +- Creating a view without a navigationMenuItem associated. This will make the view available on the left sidebar. diff --git a/packages/twenty-apps/hello-world/README.md b/packages/twenty-apps/hello-world/README.md index c3d8d75676..34da2bd55c 100644 --- a/packages/twenty-apps/hello-world/README.md +++ b/packages/twenty-apps/hello-world/README.md @@ -1,41 +1,62 @@ -# Hello world +This is a [Twenty](https://twenty.com) application project bootstrapped with [`create-twenty-app`](https://www.npmjs.com/package/create-twenty-app). -A minimal hello-world application built with an alpha version of the twenty-cli. +## Getting Started -⚠️ Since this project uses an early alpha release, expect breaking changes and evolving features. - -This example will gradually gain complexity and capabilities as the twenty-cli matures with future updates. - - -## Requirements -- twenty-cli `npm install -g twenty-cli` -- an `apiKey`. Go to `/settings/api-webhooks` to generate one - - -## Install to your Twenty workspace +First, authenticate to your workspace: ```bash -cp .env.example .env +yarn twenty auth:login ``` -- replace `` and `` accordingly +Then, start development mode to sync your app and watch for changes: ```bash -twenty auth login -twenty app sync +yarn twenty app:dev ``` -## What it does -- creates a new object `postCard` with a `name` field -- creates a serverless function `create-new-post-card` -- two triggers on `create-new-post-card`: - - one route trigger on `GET` `/post-card/create?recipient=RecipientName` - - one databaseEvent trigger on `people.created` events +Open your Twenty instance and go to `/settings/applications` section to see the result. -## Development +## Available Commands -Run dev mode and see application updates on your workspace instantly +Run `yarn twenty help` to list all available commands. Common commands: ```bash -twenty app dev +# Authentication +yarn twenty auth:login # Authenticate with Twenty +yarn twenty auth:logout # Remove credentials +yarn twenty auth:status # Check auth status +yarn twenty auth:switch # Switch default workspace +yarn twenty auth:list # List all configured workspaces + +# Application +yarn twenty app:dev # Start dev mode (watch, build, sync, and auto-generate typed client) +yarn twenty entity:add # Add a new entity (object, field, function, front-component, role, view, navigation-menu-item) +yarn twenty function:logs # Stream function logs +yarn twenty function:execute # Execute a function with JSON payload +yarn twenty app:uninstall # Uninstall app from workspace ``` + +## Integration Tests + +If your project includes the example integration test (`src/__tests__/app-install.integration-test.ts`), you can run it with: + +```bash +# Make sure a Twenty server is running at http://localhost:3000 +yarn test +``` + +The test builds and installs the app, then verifies it appears in the applications list. Test configuration (API URL and API key) is defined in `vitest.config.ts`. + +## LLMs instructions + +Main docs and pitfalls are available in LLMS.md file. + +## Learn More + +To learn more about Twenty applications, take a look at the following resources: + +- [twenty-sdk](https://www.npmjs.com/package/twenty-sdk) - learn about `twenty-sdk` tool. +- [Twenty doc](https://docs.twenty.com/) - Twenty's documentation. +- Join our [Discord](https://discord.gg/cx5n4Jzs57) + +You can check out [the Twenty GitHub repository](https://github.com/twentyhq/twenty) - your feedback and contributions are welcome! diff --git a/packages/twenty-apps/hello-world/eslint.config.mjs b/packages/twenty-apps/hello-world/eslint.config.mjs new file mode 100644 index 0000000000..825aefbfcf --- /dev/null +++ b/packages/twenty-apps/hello-world/eslint.config.mjs @@ -0,0 +1,29 @@ +import js from '@eslint/js'; +import tseslint from 'typescript-eslint'; + +export default [ + // Base JS recommended rules + js.configs.recommended, + + // TypeScript recommended rules + ...tseslint.configs.recommended, + + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + parserOptions: { + project: true, + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + // Common TypeScript-friendly tweaks + '@typescript-eslint/no-unused-vars': [ + 'warn', + { argsIgnorePattern: '^_' }, + ], + '@typescript-eslint/no-explicit-any': 'off', + 'no-unused-vars': 'off', // handled by TS rule + }, + }, +]; diff --git a/packages/twenty-apps/hello-world/package.json b/packages/twenty-apps/hello-world/package.json index 118b7c03a9..1e8141e301 100644 --- a/packages/twenty-apps/hello-world/package.json +++ b/packages/twenty-apps/hello-world/package.json @@ -1,6 +1,6 @@ { "name": "hello-world", - "version": "0.2.2", + "version": "0.1.0", "license": "MIT", "engines": { "node": "^24.5.0", @@ -10,17 +10,20 @@ "packageManager": "yarn@4.9.2", "scripts": { "twenty": "twenty", - "auth": "twenty auth:login", - "dev": "twenty app:dev", - "build": "twenty app:build", - "typecheck": "twenty app:typecheck", - "uninstall": "twenty app:uninstall", - "entity:add": "twenty entity:add" - }, - "dependencies": { - "twenty-sdk": "0.6.3" + "lint": "eslint", + "lint:fix": "eslint --fix", + "test": "vitest run", + "test:watch": "vitest" }, "devDependencies": { - "@types/node": "^24.7.2" + "@types/node": "^24.7.2", + "@types/react": "^18.2.0", + "eslint": "^9.32.0", + "react": "^18.2.0", + "twenty-sdk": "0.6.3", + "typescript": "^5.9.3", + "typescript-eslint": "^8.50.0", + "vite-tsconfig-paths": "^4.2.1", + "vitest": "^3.1.1" } } diff --git a/packages/twenty-apps/hello-world/src/__tests__/app-install.integration-test.ts b/packages/twenty-apps/hello-world/src/__tests__/app-install.integration-test.ts new file mode 100644 index 0000000000..6b829b9430 --- /dev/null +++ b/packages/twenty-apps/hello-world/src/__tests__/app-install.integration-test.ts @@ -0,0 +1,92 @@ +import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/application-config'; +import { appBuild, appUninstall } from 'twenty-sdk/cli'; +import { MetadataApiClient } from 'twenty-sdk/generated'; +import { afterAll, beforeAll, describe, expect, it } from 'vitest'; + +const APP_PATH = process.cwd(); +const TWENTY_API_URL = process.env.TWENTY_API_URL ?? 'http://localhost:3000'; + +const assertServerIsReachable = async () => { + let response: Response; + + try { + response = await fetch(`${TWENTY_API_URL}/healthz`); + } catch { + throw new Error( + `Twenty server is not reachable at ${TWENTY_API_URL}. ` + + 'Make sure the server is running before executing integration tests.', + ); + } + + if (!response.ok) { + throw new Error(`Server at ${TWENTY_API_URL} returned ${response.status}`); + } +}; + +describe('App installation', () => { + let appInstalled = false; + + beforeAll(async () => { + await assertServerIsReachable(); + + const buildResult = await appBuild({ + appPath: APP_PATH, + onProgress: (message: string) => console.log(`[build] ${message}`), + }); + + if (!buildResult.success) { + throw new Error( + `App build failed: ${buildResult.error?.message ?? 'Unknown error'}`, + ); + } + + appInstalled = true; + }); + + afterAll(async () => { + if (!appInstalled) { + return; + } + + const uninstallResult = await appUninstall({ appPath: APP_PATH }); + + if (!uninstallResult.success) { + console.warn( + `App uninstall failed: ${uninstallResult.error?.message ?? 'Unknown error'}`, + ); + } + }); + + it('should find the installed app in the applications list', async () => { + const apiKey = process.env.TWENTY_TEST_API_KEY; + + if (!apiKey) { + throw new Error( + 'No API key found. Set TWENTY_TEST_API_KEY in your vitest config env.', + ); + } + + const metadataClient = new MetadataApiClient({ + url: `${TWENTY_API_URL}/metadata`, + headers: { + Authorization: `Bearer ${apiKey}`, + }, + }); + + const result = await metadataClient.query({ + findManyApplications: { + id: true, + name: true, + universalIdentifier: true, + }, + }); + + const installedApp = result.findManyApplications.find( + (application: { universalIdentifier: string }) => + application.universalIdentifier === + APPLICATION_UNIVERSAL_IDENTIFIER, + ); + + expect(installedApp).toBeDefined(); + }); +}); diff --git a/packages/twenty-apps/hello-world/src/__tests__/setup-test.ts b/packages/twenty-apps/hello-world/src/__tests__/setup-test.ts new file mode 100644 index 0000000000..096007f37e --- /dev/null +++ b/packages/twenty-apps/hello-world/src/__tests__/setup-test.ts @@ -0,0 +1,24 @@ +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { beforeAll } from 'vitest'; + +const TEST_CONFIG_DIR = path.join(os.tmpdir(), '.twenty-sdk-test'); + +beforeAll(() => { + fs.mkdirSync(TEST_CONFIG_DIR, { recursive: true }); + + const configFile = { + profiles: { + default: { + apiUrl: process.env.TWENTY_API_URL, + apiKey: process.env.TWENTY_TEST_API_KEY, + }, + }, + }; + + fs.writeFileSync( + path.join(TEST_CONFIG_DIR, 'config.json'), + JSON.stringify(configFile, null, 2), + ); +}); diff --git a/packages/twenty-apps/hello-world/src/actions/create-new-post-card.ts b/packages/twenty-apps/hello-world/src/actions/create-new-post-card.ts deleted file mode 100644 index 0929e4c02d..0000000000 --- a/packages/twenty-apps/hello-world/src/actions/create-new-post-card.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { - defineLogicFunction, - type CronPayload, - type DatabaseEventPayload, - type ObjectRecordCreateEvent, -} from 'twenty-sdk'; -import { CoreApiClient as Twenty, type CoreSchema } from 'twenty-sdk/generated'; - -type CreateNewPostCardParams = - | { name?: string } - | DatabaseEventPayload> - | CronPayload; - -const handler = async (params: CreateNewPostCardParams) => { - const client = new Twenty(); - - const name = - 'name' in params - ? params.name ?? process.env.DEFAULT_RECIPIENT_NAME ?? 'Hello world' - : 'Hello world'; - - const createPostCard = await client.mutation({ - createPostCard: { - __args: { - data: { - name, - }, - }, - name: true, - id: true, - }, - }); - - console.log('createPostCard result', createPostCard); - - return createPostCard; -}; - -export default defineLogicFunction({ - universalIdentifier: 'e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf', - name: 'create-new-post-card', - timeoutSeconds: 2, - handler, - httpRouteTriggerSettings: { - path: '/post-card/create', - httpMethod: 'GET', - isAuthRequired: false, - }, - cronTriggerSettings: { - pattern: '0 0 1 1 *', - }, - databaseEventTriggerSettings: { - eventName: 'person.created', - }, -}); diff --git a/packages/twenty-apps/hello-world/src/application-config.ts b/packages/twenty-apps/hello-world/src/application-config.ts new file mode 100644 index 0000000000..5299d98dfa --- /dev/null +++ b/packages/twenty-apps/hello-world/src/application-config.ts @@ -0,0 +1,12 @@ +import { defineApplication } from 'twenty-sdk'; +import { DEFAULT_ROLE_UNIVERSAL_IDENTIFIER } from 'src/roles/default-role'; + +export const APPLICATION_UNIVERSAL_IDENTIFIER = + '1badae7c-8a42-4dea-b4b8-3c56e77c2f9a'; + +export default defineApplication({ + universalIdentifier: APPLICATION_UNIVERSAL_IDENTIFIER, + displayName: 'Hello world', + description: '', + defaultRoleUniversalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER, +}); diff --git a/packages/twenty-apps/hello-world/src/application.config.ts b/packages/twenty-apps/hello-world/src/application.config.ts deleted file mode 100644 index d90bca0442..0000000000 --- a/packages/twenty-apps/hello-world/src/application.config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { defineApplication } from 'twenty-sdk'; - -export default defineApplication({ - universalIdentifier: '4ec0391d-18d5-411c-b2f3-266ddc1c3ef7', - displayName: 'Hello World', - description: 'A simple hello world app', - icon: 'IconWorld', - applicationVariables: { - DEFAULT_RECIPIENT_NAME: { - universalIdentifier: '19e94e59-d4fe-4251-8981-b96d0a9f74de', - description: 'Default recipient name for postcards', - value: 'Alex Karp', - isSecret: false, - }, - }, - defaultRoleUniversalIdentifier: 'b648f87b-1d26-4961-b974-0908fd991061', -}); diff --git a/packages/twenty-apps/hello-world/src/fields/example-field.ts b/packages/twenty-apps/hello-world/src/fields/example-field.ts new file mode 100644 index 0000000000..514a883012 --- /dev/null +++ b/packages/twenty-apps/hello-world/src/fields/example-field.ts @@ -0,0 +1,11 @@ +import { defineField, FieldType } from 'twenty-sdk'; +import { EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER } from 'src/objects/example-object'; + +export default defineField({ + objectUniversalIdentifier: EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER, + universalIdentifier: '2c503a0d-36c9-49ec-b82f-4fafe0eb6f47', + type: FieldType.NUMBER, + name: 'priority', + label: 'Priority', + description: 'Priority level for the example item (1-10)', +}); diff --git a/packages/twenty-apps/hello-world/src/front-components/hello-world.tsx b/packages/twenty-apps/hello-world/src/front-components/hello-world.tsx new file mode 100644 index 0000000000..8c5a24143f --- /dev/null +++ b/packages/twenty-apps/hello-world/src/front-components/hello-world.tsx @@ -0,0 +1,17 @@ +import { defineFrontComponent } from 'twenty-sdk'; + +export const HelloWorld = () => { + return ( +
+

Hello, World!

+

This is your first front component.

+
+ ); +}; + +export default defineFrontComponent({ + universalIdentifier: '26c17445-fbfb-4b34-99d6-f461e734ca97', + name: 'hello-world-front-component', + description: 'A sample front component', + component: HelloWorld, +}); diff --git a/packages/twenty-apps/hello-world/src/logic-functions/hello-world.ts b/packages/twenty-apps/hello-world/src/logic-functions/hello-world.ts new file mode 100644 index 0000000000..10cacba13f --- /dev/null +++ b/packages/twenty-apps/hello-world/src/logic-functions/hello-world.ts @@ -0,0 +1,18 @@ +import { defineLogicFunction } from 'twenty-sdk'; + +const handler = async (): Promise<{ message: string }> => { + return { message: 'Hello, World!' }; +}; + +export default defineLogicFunction({ + universalIdentifier: '4f0b7137-1399-4e50-ac00-3c3bb2555c38', + name: 'hello-world-logic-function', + description: 'A simple logic function', + timeoutSeconds: 5, + handler, + httpRouteTriggerSettings: { + path: '/hello-world-logic-function', + httpMethod: 'GET', + isAuthRequired: false, + }, +}); diff --git a/packages/twenty-apps/hello-world/src/logic-functions/post-install.ts b/packages/twenty-apps/hello-world/src/logic-functions/post-install.ts new file mode 100644 index 0000000000..b28118597f --- /dev/null +++ b/packages/twenty-apps/hello-world/src/logic-functions/post-install.ts @@ -0,0 +1,13 @@ +import { definePostInstallLogicFunction, type InstallLogicFunctionPayload } from 'twenty-sdk'; + +const handler = async (payload: InstallLogicFunctionPayload): Promise => { + console.log('Post install logic function executed successfully!', payload.previousVersion); +}; + +export default definePostInstallLogicFunction({ + universalIdentifier: 'c1410017-8536-42aa-a188-4bfc5a1c3dae', + name: 'post-install', + description: 'Runs after installation to set up the application.', + timeoutSeconds: 300, + handler, +}); diff --git a/packages/twenty-apps/hello-world/src/logic-functions/pre-install.ts b/packages/twenty-apps/hello-world/src/logic-functions/pre-install.ts new file mode 100644 index 0000000000..8ec87eab7d --- /dev/null +++ b/packages/twenty-apps/hello-world/src/logic-functions/pre-install.ts @@ -0,0 +1,13 @@ +import { definePreInstallLogicFunction, type InstallLogicFunctionPayload } from 'twenty-sdk'; + +const handler = async (payload: InstallLogicFunctionPayload): Promise => { + console.log('Pre install logic function executed successfully!', payload.previousVersion); +}; + +export default definePreInstallLogicFunction({ + universalIdentifier: '68d005d4-1110-4fa0-8227-71e06d6b9f30', + name: 'pre-install', + description: 'Runs before installation to prepare the application.', + timeoutSeconds: 300, + handler, +}); diff --git a/packages/twenty-apps/hello-world/src/navigation-menu-items/example-navigation-menu-item.ts b/packages/twenty-apps/hello-world/src/navigation-menu-items/example-navigation-menu-item.ts new file mode 100644 index 0000000000..e72a415e3e --- /dev/null +++ b/packages/twenty-apps/hello-world/src/navigation-menu-items/example-navigation-menu-item.ts @@ -0,0 +1,14 @@ +import { defineNavigationMenuItem } from 'twenty-sdk'; + +export default defineNavigationMenuItem({ + universalIdentifier: '574a895f-1511-4b38-9d28-d6b8436738ff', + name: 'example-navigation-menu-item', + icon: 'IconList', + position: 0, + // Link to a view: + // viewUniversalIdentifier: '...', + // Or link to an object: + // targetObjectUniversalIdentifier: '...', + // Or link to an external URL: + // link: 'https://example.com', +}); diff --git a/packages/twenty-apps/hello-world/src/objects/example-object.ts b/packages/twenty-apps/hello-world/src/objects/example-object.ts new file mode 100644 index 0000000000..3f97ff142c --- /dev/null +++ b/packages/twenty-apps/hello-world/src/objects/example-object.ts @@ -0,0 +1,28 @@ +import { defineObject, FieldType } from 'twenty-sdk'; + +export const EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER = + 'b75cfe84-18ce-47da-812a-53e25ee094af'; + +export const NAME_FIELD_UNIVERSAL_IDENTIFIER = + '6ab9c690-06ce-455e-a2c9-8067a9747f96'; + +export default defineObject({ + universalIdentifier: EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER, + nameSingular: 'exampleItem', + namePlural: 'exampleItems', + labelSingular: 'Example item', + labelPlural: 'Example items', + description: 'A sample custom object', + icon: 'IconBox', + labelIdentifierFieldMetadataUniversalIdentifier: NAME_FIELD_UNIVERSAL_IDENTIFIER, + fields: [ + { + universalIdentifier: NAME_FIELD_UNIVERSAL_IDENTIFIER, + type: FieldType.TEXT, + name: 'name', + label: 'Name', + description: 'Name of the example item', + icon: 'IconAbc', + }, + ], +}); diff --git a/packages/twenty-apps/hello-world/src/objects/postCard.ts b/packages/twenty-apps/hello-world/src/objects/postCard.ts deleted file mode 100644 index 1844ac54cd..0000000000 --- a/packages/twenty-apps/hello-world/src/objects/postCard.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { defineObject, FieldType } from 'twenty-sdk'; - -const POST_CARD_STATUS = { - DRAFT: 'DRAFT', - SENT: 'SENT', - DELIVERED: 'DELIVERED', - RETURNED: 'RETURNED', -} as const; - -export default defineObject({ - universalIdentifier: '54b589ca-eeed-4950-a176-358418b85c05', - nameSingular: 'postCard', - namePlural: 'postCards', - labelSingular: 'Post card', - labelPlural: 'Post cards', - description: 'A post card object', - icon: 'IconMail', - fields: [ - { - universalIdentifier: '58a0a314-d7ea-4865-9850-7fb84e72f30b', - type: FieldType.TEXT, - name: 'content', - label: 'Content', - description: "Postcard's content", - icon: 'IconAbc', - }, - { - universalIdentifier: 'c6aa31f3-da76-4ac6-889f-475e226009ac', - type: FieldType.FULL_NAME, - name: 'recipientName', - label: 'Recipient name', - icon: 'IconUser', - }, - { - universalIdentifier: '95045777-a0ad-49ec-98f9-22f9fc0c8266', - type: FieldType.ADDRESS, - name: 'recipientAddress', - label: 'Recipient address', - icon: 'IconHome', - }, - { - universalIdentifier: '87b675b8-dd8c-4448-b4ca-20e5a2234a1e', - type: FieldType.SELECT, - name: 'status', - label: 'Status', - icon: 'IconSend', - defaultValue: `'${POST_CARD_STATUS.DRAFT}'`, - options: [ - { - id: 'a1b2c3d4-0001-4000-8000-000000000001', - value: POST_CARD_STATUS.DRAFT, - label: 'Draft', - position: 0, - color: 'gray', - }, - { - id: 'a1b2c3d4-0002-4000-8000-000000000002', - value: POST_CARD_STATUS.SENT, - label: 'Sent', - position: 1, - color: 'orange', - }, - { - id: 'a1b2c3d4-0003-4000-8000-000000000003', - value: POST_CARD_STATUS.DELIVERED, - label: 'Delivered', - position: 2, - color: 'green', - }, - { - id: 'a1b2c3d4-0004-4000-8000-000000000004', - value: POST_CARD_STATUS.RETURNED, - label: 'Returned', - position: 3, - color: 'orange', - }, - ], - }, - { - universalIdentifier: 'e06abe72-5b44-4e7f-93be-afc185a3c433', - type: FieldType.DATE_TIME, - name: 'deliveredAt', - label: 'Delivered at', - icon: 'IconCheck', - isNullable: true, - defaultValue: null, - }, - ], -}); diff --git a/packages/twenty-apps/hello-world/src/roles/default-role.ts b/packages/twenty-apps/hello-world/src/roles/default-role.ts new file mode 100644 index 0000000000..7c71650abc --- /dev/null +++ b/packages/twenty-apps/hello-world/src/roles/default-role.ts @@ -0,0 +1,14 @@ +import { defineRole } from 'twenty-sdk'; + +export const DEFAULT_ROLE_UNIVERSAL_IDENTIFIER = + 'f14afc30-f2fa-4f70-9b12-903c5f852225'; + +export default defineRole({ + universalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER, + label: 'Hello world default function role', + description: 'Hello world default function role', + canReadAllObjectRecords: true, + canUpdateAllObjectRecords: true, + canSoftDeleteAllObjectRecords: true, + canDestroyAllObjectRecords: false, +}); diff --git a/packages/twenty-apps/hello-world/src/roles/function-role.ts b/packages/twenty-apps/hello-world/src/roles/function-role.ts deleted file mode 100644 index d14ff56da6..0000000000 --- a/packages/twenty-apps/hello-world/src/roles/function-role.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { defineRole, PermissionFlag } from 'twenty-sdk'; - -export default defineRole({ - universalIdentifier: 'b648f87b-1d26-4961-b974-0908fd991061', - label: 'Default function role', - description: 'Default role for function Twenty client', - canReadAllObjectRecords: false, - canUpdateAllObjectRecords: false, - canSoftDeleteAllObjectRecords: false, - canDestroyAllObjectRecords: false, - canUpdateAllSettings: false, - canBeAssignedToAgents: false, - canBeAssignedToUsers: false, - canBeAssignedToApiKeys: false, - objectPermissions: [ - { - objectUniversalIdentifier: '54b589ca-eeed-4950-a176-358418b85c05', - canReadObjectRecords: true, - canUpdateObjectRecords: true, - canSoftDeleteObjectRecords: false, - canDestroyObjectRecords: false, - }, - ], - fieldPermissions: [ - { - objectUniversalIdentifier: '54b589ca-eeed-4950-a176-358418b85c05', - fieldUniversalIdentifier: '58a0a314-d7ea-4865-9850-7fb84e72f30b', - canReadFieldValue: false, - canUpdateFieldValue: false, - }, - ], - permissionFlags: [PermissionFlag.APPLICATIONS], -}); diff --git a/packages/twenty-apps/hello-world/src/skills/example-skill.ts b/packages/twenty-apps/hello-world/src/skills/example-skill.ts new file mode 100644 index 0000000000..bbdf2670e9 --- /dev/null +++ b/packages/twenty-apps/hello-world/src/skills/example-skill.ts @@ -0,0 +1,13 @@ +import { defineSkill } from 'twenty-sdk'; + +export const EXAMPLE_SKILL_UNIVERSAL_IDENTIFIER = + '4f00dd76-c07b-4d55-a43a-7f17e7f6440a'; + +export default defineSkill({ + universalIdentifier: EXAMPLE_SKILL_UNIVERSAL_IDENTIFIER, + name: 'example-skill', + label: 'Example Skill', + description: 'A sample skill for your application', + icon: 'IconBrain', + content: 'Add your skill instructions here. Skills provide context and capabilities to AI agents.', +}); diff --git a/packages/twenty-apps/hello-world/src/views/example-view.ts b/packages/twenty-apps/hello-world/src/views/example-view.ts new file mode 100644 index 0000000000..ac9844aa3a --- /dev/null +++ b/packages/twenty-apps/hello-world/src/views/example-view.ts @@ -0,0 +1,10 @@ +import { defineView } from 'twenty-sdk'; +import { EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER } from 'src/objects/example-object'; + +export default defineView({ + universalIdentifier: 'e574b32c-c058-492a-8a5c-780b844a8735', + name: 'example-view', + objectUniversalIdentifier: EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER, + icon: 'IconList', + position: 0, +}); diff --git a/packages/twenty-apps/hello-world/tsconfig.json b/packages/twenty-apps/hello-world/tsconfig.json index 0164e2b1b7..f4661f0ffd 100644 --- a/packages/twenty-apps/hello-world/tsconfig.json +++ b/packages/twenty-apps/hello-world/tsconfig.json @@ -5,21 +5,45 @@ "declaration": true, "outDir": "./dist", "rootDir": ".", + "jsx": "react-jsx", "moduleResolution": "node", + "allowSyntheticDefaultImports": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "importHelpers": true, "allowUnreachableCode": false, - "strictNullChecks": true, + "strict": true, "alwaysStrict": true, "noImplicitAny": true, "strictBindCallApply": false, "target": "es2018", "module": "esnext", - "lib": ["es2020", "dom"], + "lib": [ + "es2020", + "dom" + ], "skipLibCheck": true, "skipDefaultLibCheck": true, "resolveJsonModule": true, + "paths": { + "src/*": [ + "./src/*" + ], + "~/*": [ + "./*" + ] + } }, - "exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"] -} + "exclude": [ + "node_modules", + "dist", + "**/*.test.ts", + "**/*.spec.ts", + "**/*.integration-test.ts" + ], + "references": [ + { + "path": "./tsconfig.spec.json" + } + ] +} \ No newline at end of file diff --git a/packages/twenty-apps/hello-world/tsconfig.spec.json b/packages/twenty-apps/hello-world/tsconfig.spec.json new file mode 100644 index 0000000000..7dc5cee985 --- /dev/null +++ b/packages/twenty-apps/hello-world/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": true, + "types": [ + "vitest/globals" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.tsx" + ], + "exclude": [ + "node_modules", + "dist" + ] +} \ No newline at end of file diff --git a/packages/twenty-apps/hello-world/vitest.config.ts b/packages/twenty-apps/hello-world/vitest.config.ts new file mode 100644 index 0000000000..3d186591c4 --- /dev/null +++ b/packages/twenty-apps/hello-world/vitest.config.ts @@ -0,0 +1,22 @@ +import tsconfigPaths from 'vite-tsconfig-paths'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + plugins: [ + tsconfigPaths({ + projects: ['tsconfig.spec.json'], + ignoreConfigErrors: true, + }), + ], + test: { + testTimeout: 120_000, + hookTimeout: 120_000, + include: ['src/**/*.integration-test.ts'], + setupFiles: ['src/__tests__/setup-test.ts'], + env: { + TWENTY_API_URL: 'http://localhost:3000', + TWENTY_TEST_API_KEY: + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik', + }, + }, +}); diff --git a/packages/twenty-apps/hello-world/yarn.lock b/packages/twenty-apps/hello-world/yarn.lock index 83ec3692a4..6708760195 100644 --- a/packages/twenty-apps/hello-world/yarn.lock +++ b/packages/twenty-apps/hello-world/yarn.lock @@ -15,79 +15,79 @@ __metadata: languageName: node linkType: hard -"@ark-ui/react@npm:^5.31.0": - version: 5.34.0 - resolution: "@ark-ui/react@npm:5.34.0" +"@ark-ui/react@npm:^5.34.1": + version: 5.34.1 + resolution: "@ark-ui/react@npm:5.34.1" dependencies: "@internationalized/date": "npm:3.11.0" - "@zag-js/accordion": "npm:1.35.2" - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/angle-slider": "npm:1.35.2" - "@zag-js/async-list": "npm:1.35.2" - "@zag-js/auto-resize": "npm:1.35.2" - "@zag-js/avatar": "npm:1.35.2" - "@zag-js/carousel": "npm:1.35.2" - "@zag-js/cascade-select": "npm:1.35.2" - "@zag-js/checkbox": "npm:1.35.2" - "@zag-js/clipboard": "npm:1.35.2" - "@zag-js/collapsible": "npm:1.35.2" - "@zag-js/collection": "npm:1.35.2" - "@zag-js/color-picker": "npm:1.35.2" - "@zag-js/color-utils": "npm:1.35.2" - "@zag-js/combobox": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/date-picker": "npm:1.35.2" - "@zag-js/date-utils": "npm:1.35.2" - "@zag-js/dialog": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/drawer": "npm:1.35.2" - "@zag-js/editable": "npm:1.35.2" - "@zag-js/file-upload": "npm:1.35.2" - "@zag-js/file-utils": "npm:1.35.2" - "@zag-js/floating-panel": "npm:1.35.2" - "@zag-js/focus-trap": "npm:1.35.2" - "@zag-js/highlight-word": "npm:1.35.2" - "@zag-js/hover-card": "npm:1.35.2" - "@zag-js/i18n-utils": "npm:1.35.2" - "@zag-js/image-cropper": "npm:1.35.2" - "@zag-js/json-tree-utils": "npm:1.35.2" - "@zag-js/listbox": "npm:1.35.2" - "@zag-js/marquee": "npm:1.35.2" - "@zag-js/menu": "npm:1.35.2" - "@zag-js/navigation-menu": "npm:1.35.2" - "@zag-js/number-input": "npm:1.35.2" - "@zag-js/pagination": "npm:1.35.2" - "@zag-js/password-input": "npm:1.35.2" - "@zag-js/pin-input": "npm:1.35.2" - "@zag-js/popover": "npm:1.35.2" - "@zag-js/presence": "npm:1.35.2" - "@zag-js/progress": "npm:1.35.2" - "@zag-js/qr-code": "npm:1.35.2" - "@zag-js/radio-group": "npm:1.35.2" - "@zag-js/rating-group": "npm:1.35.2" - "@zag-js/react": "npm:1.35.2" - "@zag-js/scroll-area": "npm:1.35.2" - "@zag-js/select": "npm:1.35.2" - "@zag-js/signature-pad": "npm:1.35.2" - "@zag-js/slider": "npm:1.35.2" - "@zag-js/splitter": "npm:1.35.2" - "@zag-js/steps": "npm:1.35.2" - "@zag-js/switch": "npm:1.35.2" - "@zag-js/tabs": "npm:1.35.2" - "@zag-js/tags-input": "npm:1.35.2" - "@zag-js/timer": "npm:1.35.2" - "@zag-js/toast": "npm:1.35.2" - "@zag-js/toggle": "npm:1.35.2" - "@zag-js/toggle-group": "npm:1.35.2" - "@zag-js/tooltip": "npm:1.35.2" - "@zag-js/tour": "npm:1.35.2" - "@zag-js/tree-view": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" + "@zag-js/accordion": "npm:1.35.3" + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/angle-slider": "npm:1.35.3" + "@zag-js/async-list": "npm:1.35.3" + "@zag-js/auto-resize": "npm:1.35.3" + "@zag-js/avatar": "npm:1.35.3" + "@zag-js/carousel": "npm:1.35.3" + "@zag-js/cascade-select": "npm:1.35.3" + "@zag-js/checkbox": "npm:1.35.3" + "@zag-js/clipboard": "npm:1.35.3" + "@zag-js/collapsible": "npm:1.35.3" + "@zag-js/collection": "npm:1.35.3" + "@zag-js/color-picker": "npm:1.35.3" + "@zag-js/color-utils": "npm:1.35.3" + "@zag-js/combobox": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/date-picker": "npm:1.35.3" + "@zag-js/date-utils": "npm:1.35.3" + "@zag-js/dialog": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/drawer": "npm:1.35.3" + "@zag-js/editable": "npm:1.35.3" + "@zag-js/file-upload": "npm:1.35.3" + "@zag-js/file-utils": "npm:1.35.3" + "@zag-js/floating-panel": "npm:1.35.3" + "@zag-js/focus-trap": "npm:1.35.3" + "@zag-js/highlight-word": "npm:1.35.3" + "@zag-js/hover-card": "npm:1.35.3" + "@zag-js/i18n-utils": "npm:1.35.3" + "@zag-js/image-cropper": "npm:1.35.3" + "@zag-js/json-tree-utils": "npm:1.35.3" + "@zag-js/listbox": "npm:1.35.3" + "@zag-js/marquee": "npm:1.35.3" + "@zag-js/menu": "npm:1.35.3" + "@zag-js/navigation-menu": "npm:1.35.3" + "@zag-js/number-input": "npm:1.35.3" + "@zag-js/pagination": "npm:1.35.3" + "@zag-js/password-input": "npm:1.35.3" + "@zag-js/pin-input": "npm:1.35.3" + "@zag-js/popover": "npm:1.35.3" + "@zag-js/presence": "npm:1.35.3" + "@zag-js/progress": "npm:1.35.3" + "@zag-js/qr-code": "npm:1.35.3" + "@zag-js/radio-group": "npm:1.35.3" + "@zag-js/rating-group": "npm:1.35.3" + "@zag-js/react": "npm:1.35.3" + "@zag-js/scroll-area": "npm:1.35.3" + "@zag-js/select": "npm:1.35.3" + "@zag-js/signature-pad": "npm:1.35.3" + "@zag-js/slider": "npm:1.35.3" + "@zag-js/splitter": "npm:1.35.3" + "@zag-js/steps": "npm:1.35.3" + "@zag-js/switch": "npm:1.35.3" + "@zag-js/tabs": "npm:1.35.3" + "@zag-js/tags-input": "npm:1.35.3" + "@zag-js/timer": "npm:1.35.3" + "@zag-js/toast": "npm:1.35.3" + "@zag-js/toggle": "npm:1.35.3" + "@zag-js/toggle-group": "npm:1.35.3" + "@zag-js/tooltip": "npm:1.35.3" + "@zag-js/tour": "npm:1.35.3" + "@zag-js/tree-view": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" peerDependencies: react: ">=18.0.0" react-dom: ">=18.0.0" - checksum: 10c0/df3e6dd6348c12b3cf9c213eb57e3db9cb0a75643c9ae273bbbe7a3667e5ae81fea3a8ed30e5a73dafb0df88b88a966c02b962ba5580b216ff82fbf33e540b1c + checksum: 10c0/2e0d0605950fed794c7bd12986329a6fb016f39ff63e50d79bb490104107d1085657930f8cd43748741ac25a17b31b2ab5833bceee5794c5a4fc84468c90f40c languageName: node linkType: hard @@ -201,10 +201,10 @@ __metadata: linkType: hard "@chakra-ui/react@npm:^3.33.0": - version: 3.33.0 - resolution: "@chakra-ui/react@npm:3.33.0" + version: 3.34.0 + resolution: "@chakra-ui/react@npm:3.34.0" dependencies: - "@ark-ui/react": "npm:^5.31.0" + "@ark-ui/react": "npm:^5.34.1" "@emotion/is-prop-valid": "npm:^1.4.0" "@emotion/serialize": "npm:^1.3.3" "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.2.0" @@ -215,7 +215,7 @@ __metadata: "@emotion/react": ">=11" react: ">=18" react-dom: ">=18" - checksum: 10c0/eeaab4f785098f19999c315e72a63c2fca9b6e96fa7ca46970e78079794d79e7cb78131c60e571488a47e768215892409c2dd667027bbcf8472830a2ff2976dd + checksum: 10c0/42eb3edc63a6155d13763c4759b42d2c073742a681fd14dee96dba73379aa724955b0deb7f95024cfb942710906a5fb4da1d74685946def7281eec1bdcfd2c72 languageName: node linkType: hard @@ -709,6 +709,94 @@ __metadata: languageName: node linkType: hard +"@eslint-community/eslint-utils@npm:^4.8.0, @eslint-community/eslint-utils@npm:^4.9.1": + version: 4.9.1 + resolution: "@eslint-community/eslint-utils@npm:4.9.1" + dependencies: + eslint-visitor-keys: "npm:^3.4.3" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 10c0/dc4ab5e3e364ef27e33666b11f4b86e1a6c1d7cbf16f0c6ff87b1619b3562335e9201a3d6ce806221887ff780ec9d828962a290bb910759fd40a674686503f02 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.12.1, @eslint-community/regexpp@npm:^4.12.2": + version: 4.12.2 + resolution: "@eslint-community/regexpp@npm:4.12.2" + checksum: 10c0/fddcbc66851b308478d04e302a4d771d6917a0b3740dc351513c0da9ca2eab8a1adf99f5e0aa7ab8b13fa0df005c81adeee7e63a92f3effd7d367a163b721c2d + languageName: node + linkType: hard + +"@eslint/config-array@npm:^0.21.1": + version: 0.21.1 + resolution: "@eslint/config-array@npm:0.21.1" + dependencies: + "@eslint/object-schema": "npm:^2.1.7" + debug: "npm:^4.3.1" + minimatch: "npm:^3.1.2" + checksum: 10c0/2f657d4edd6ddcb920579b72e7a5b127865d4c3fb4dda24f11d5c4f445a93ca481aebdbd6bf3291c536f5d034458dbcbb298ee3b698bc6c9dd02900fe87eec3c + languageName: node + linkType: hard + +"@eslint/config-helpers@npm:^0.4.2": + version: 0.4.2 + resolution: "@eslint/config-helpers@npm:0.4.2" + dependencies: + "@eslint/core": "npm:^0.17.0" + checksum: 10c0/92efd7a527b2d17eb1a148409d71d80f9ac160b565ac73ee092252e8bf08ecd08670699f46b306b94f13d22e88ac88a612120e7847570dd7cdc72f234d50dcb4 + languageName: node + linkType: hard + +"@eslint/core@npm:^0.17.0": + version: 0.17.0 + resolution: "@eslint/core@npm:0.17.0" + dependencies: + "@types/json-schema": "npm:^7.0.15" + checksum: 10c0/9a580f2246633bc752298e7440dd942ec421860d1946d0801f0423830e67887e4aeba10ab9a23d281727a978eb93d053d1922a587d502942a713607f40ed704e + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.3.1": + version: 3.3.4 + resolution: "@eslint/eslintrc@npm:3.3.4" + dependencies: + ajv: "npm:^6.14.0" + debug: "npm:^4.3.2" + espree: "npm:^10.0.1" + globals: "npm:^14.0.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.1" + minimatch: "npm:^3.1.3" + strip-json-comments: "npm:^3.1.1" + checksum: 10c0/1fe481a6af03c09be8d92d67e2bbf693b7522b0591934bfb44bd13e297649b13e4ec5e3fc70b02e4497a17c1afbfa22f5bf5efa4fc06a24abace8e5d097fec8c + languageName: node + linkType: hard + +"@eslint/js@npm:9.39.3": + version: 9.39.3 + resolution: "@eslint/js@npm:9.39.3" + checksum: 10c0/df1c70d6681c8daf4a3c86dfac159fcd98a73c4620c4fbe2be6caab1f30a34c7de0ad88ab0e81162376d2cde1a2eed1c32eff5f917ca369870930a51f8e818f1 + languageName: node + linkType: hard + +"@eslint/object-schema@npm:^2.1.7": + version: 2.1.7 + resolution: "@eslint/object-schema@npm:2.1.7" + checksum: 10c0/936b6e499853d1335803f556d526c86f5fe2259ed241bc665000e1d6353828edd913feed43120d150adb75570cae162cf000b5b0dfc9596726761c36b82f4e87 + languageName: node + linkType: hard + +"@eslint/plugin-kit@npm:^0.4.1": + version: 0.4.1 + resolution: "@eslint/plugin-kit@npm:0.4.1" + dependencies: + "@eslint/core": "npm:^0.17.0" + levn: "npm:^0.4.1" + checksum: 10c0/51600f78b798f172a9915dffb295e2ffb44840d583427bc732baf12ecb963eb841b253300e657da91d890f4b323d10a1bd12934bf293e3018d8bb66fdce5217b + languageName: node + linkType: hard + "@fastify/busboy@npm:^2.0.0": version: 2.1.1 resolution: "@fastify/busboy@npm:2.1.1" @@ -716,29 +804,29 @@ __metadata: languageName: node linkType: hard -"@floating-ui/core@npm:^1.7.4": - version: 1.7.4 - resolution: "@floating-ui/core@npm:1.7.4" +"@floating-ui/core@npm:^1.7.5": + version: 1.7.5 + resolution: "@floating-ui/core@npm:1.7.5" dependencies: - "@floating-ui/utils": "npm:^0.2.10" - checksum: 10c0/b1175d92c0edbd0053c4ba014ad1f798ccc107de87a43a099e97af6265610cc25ef600f2b15d3763d39a79f7d36db11fcb84d0c28027beb3317e13a7ba197516 + "@floating-ui/utils": "npm:^0.2.11" + checksum: 10c0/f9c52205e198b231d63a387b09c659aab08c46a1899e0b0bbe147b8b4f048b546f15ba17cb5d2a471da9534f1883d979425e13e5c4ceee67be63e4b0abd4db5d languageName: node linkType: hard "@floating-ui/dom@npm:^1.7.5": - version: 1.7.5 - resolution: "@floating-ui/dom@npm:1.7.5" + version: 1.7.6 + resolution: "@floating-ui/dom@npm:1.7.6" dependencies: - "@floating-ui/core": "npm:^1.7.4" - "@floating-ui/utils": "npm:^0.2.10" - checksum: 10c0/94bd262127fbf1177e542f4908cb07c17392782b1ca0ab9f2dfd7e102cabcc77b4de807847304dcb4c864d4b48e8ba292b27cdcfaca3ad4e3525ab397b766a3a + "@floating-ui/core": "npm:^1.7.5" + "@floating-ui/utils": "npm:^0.2.11" + checksum: 10c0/5c098e0d7b58c9bc769f276cca1766994c2c9c70c92d091a61bba8b3e9be53c011e0a79a8457fc2fb2f3d91697a26eb52e0a4962ef936dc963b45f58613c212f languageName: node linkType: hard -"@floating-ui/utils@npm:^0.2.10": - version: 0.2.10 - resolution: "@floating-ui/utils@npm:0.2.10" - checksum: 10c0/e9bc2a1730ede1ee25843937e911ab6e846a733a4488623cd353f94721b05ec2c9ec6437613a2ac9379a94c2fd40c797a2ba6fa1df2716f5ce4aa6ddb1cf9ea4 +"@floating-ui/utils@npm:^0.2.11": + version: 0.2.11 + resolution: "@floating-ui/utils@npm:0.2.11" + checksum: 10c0/f4bcea1559bdbb721ecc8e8ead423ac58d6a5b6e70b602cf0810ba6ad4ed1c77211b207faa88b278a9042f0c743133de08a203ed6741c1b6443423332884d5b3 languageName: node linkType: hard @@ -884,6 +972,37 @@ __metadata: languageName: node linkType: hard +"@humanfs/core@npm:^0.19.1": + version: 0.19.1 + resolution: "@humanfs/core@npm:0.19.1" + checksum: 10c0/aa4e0152171c07879b458d0e8a704b8c3a89a8c0541726c6b65b81e84fd8b7564b5d6c633feadc6598307d34564bd53294b533491424e8e313d7ab6c7bc5dc67 + languageName: node + linkType: hard + +"@humanfs/node@npm:^0.16.6": + version: 0.16.7 + resolution: "@humanfs/node@npm:0.16.7" + dependencies: + "@humanfs/core": "npm:^0.19.1" + "@humanwhocodes/retry": "npm:^0.4.0" + checksum: 10c0/9f83d3cf2cfa37383e01e3cdaead11cd426208e04c44adcdd291aa983aaf72d7d3598844d2fe9ce54896bb1bf8bd4b56883376611c8905a19c44684642823f30 + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 + languageName: node + linkType: hard + +"@humanwhocodes/retry@npm:^0.4.0, @humanwhocodes/retry@npm:^0.4.2": + version: 0.4.3 + resolution: "@humanwhocodes/retry@npm:0.4.3" + checksum: 10c0/3775bb30087d4440b3f7406d5a057777d90e4b9f435af488a4923ef249e93615fb78565a85f173a186a076c7706a81d0d57d563a2624e4de2c5c9c66c486ce42 + languageName: node + linkType: hard + "@inquirer/checkbox@npm:^2.5.0": version: 2.5.0 resolution: "@inquirer/checkbox@npm:2.5.0" @@ -1117,7 +1236,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": +"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0, @jridgewell/sourcemap-codec@npm:^1.5.5": version: 1.5.5 resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" checksum: 10c0/f9e538f302b63c0ebc06eecb1dd9918dd4289ed36147a0ddce35d6ea4d7ebbda243cda7b2213b6a5e1d8087a298d5cf630fb2bd39329cdecb82017023f6081a0 @@ -1472,13 +1591,37 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:1.0.8": +"@types/chai@npm:^5.2.2": + version: 5.2.3 + resolution: "@types/chai@npm:5.2.3" + dependencies: + "@types/deep-eql": "npm:*" + assertion-error: "npm:^2.0.1" + checksum: 10c0/e0ef1de3b6f8045a5e473e867c8565788c444271409d155588504840ad1a53611011f85072188c2833941189400228c1745d78323dac13fcede9c2b28bacfb2f + languageName: node + linkType: hard + +"@types/deep-eql@npm:*": + version: 4.0.2 + resolution: "@types/deep-eql@npm:4.0.2" + checksum: 10c0/bf3f811843117900d7084b9d0c852da9a044d12eb40e6de73b552598a6843c21291a8a381b0532644574beecd5e3491c5ff3a0365ab86b15d59862c025384844 + languageName: node + linkType: hard + +"@types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": version: 1.0.8 resolution: "@types/estree@npm:1.0.8" checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 languageName: node linkType: hard +"@types/json-schema@npm:^7.0.15": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db + languageName: node + linkType: hard + "@types/mute-stream@npm:^0.0.4": version: 0.0.4 resolution: "@types/mute-stream@npm:0.0.4" @@ -1489,29 +1632,29 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 24.10.1 - resolution: "@types/node@npm:24.10.1" + version: 25.3.3 + resolution: "@types/node@npm:25.3.3" dependencies: - undici-types: "npm:~7.16.0" - checksum: 10c0/d6bca7a78f550fbb376f236f92b405d676003a8a09a1b411f55920ef34286ee3ee51f566203920e835478784df52662b5b2af89159d9d319352e9ea21801c002 + undici-types: "npm:~7.18.0" + checksum: 10c0/63e1d3816a9f4a706ab5d588d18cb98aa824b97748ff585537d327528e9438f58f69f45c7762e7cd3a1ab32c1619f551aabe8075d13172f9273cf10f6d83ab91 languageName: node linkType: hard "@types/node@npm:^22.5.5": - version: 22.19.1 - resolution: "@types/node@npm:22.19.1" + version: 22.19.13 + resolution: "@types/node@npm:22.19.13" dependencies: undici-types: "npm:~6.21.0" - checksum: 10c0/6edd93aea86da740cb7872626839cd6f4a67a049d3a3a6639cb592c620ec591408a30989ab7410008d1a0b2d4985ce50f1e488e79c033e4476d3bec6833b0a2f + checksum: 10c0/ad8a0b6a69dd8ef663701573eca94ef6d20ce093f54f05bed823c826374eb1ea8b06e6f2c5d7f6cfc203b82dfd60293296bf80ea987ddb77775840bc2ef9f803 languageName: node linkType: hard "@types/node@npm:^24.7.2": - version: 24.9.1 - resolution: "@types/node@npm:24.9.1" + version: 24.11.0 + resolution: "@types/node@npm:24.11.0" dependencies: undici-types: "npm:~7.16.0" - checksum: 10c0/c52f8168080ef9a7c3dc23d8ac6061fab5371aad89231a0f6f4c075869bc3de7e89b075b1f3e3171d9e5143d0dda1807c3dab8e32eac6d68f02e7480e7e78576 + checksum: 10c0/4fb7390259e3b158d25dbecf52de8ce70fa18a4ed0949c9444bb6384517c361fa19781e6821ca8c18dc5f6af43eab72e9e159e07000e6b1286d082e8585d8c41 languageName: node linkType: hard @@ -1536,7 +1679,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^18.0.0": +"@types/react@npm:^18.0.0, @types/react@npm:^18.2.0": version: 18.3.28 resolution: "@types/react@npm:18.3.28" dependencies: @@ -1562,931 +1705,1149 @@ __metadata: languageName: node linkType: hard -"@zag-js/accordion@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/accordion@npm:1.35.2" +"@typescript-eslint/eslint-plugin@npm:8.56.1": + version: 8.56.1 + resolution: "@typescript-eslint/eslint-plugin@npm:8.56.1" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/9d0533d577019a085442b24f679549b6093027531c48e8a5de3f3fab601fdb72fd3316dbb8bb1cbf0414de7ffaa98f1a120ce1a89dc0ec0435b84f060b0fbb13 + "@eslint-community/regexpp": "npm:^4.12.2" + "@typescript-eslint/scope-manager": "npm:8.56.1" + "@typescript-eslint/type-utils": "npm:8.56.1" + "@typescript-eslint/utils": "npm:8.56.1" + "@typescript-eslint/visitor-keys": "npm:8.56.1" + ignore: "npm:^7.0.5" + natural-compare: "npm:^1.4.0" + ts-api-utils: "npm:^2.4.0" + peerDependencies: + "@typescript-eslint/parser": ^8.56.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.0.0" + checksum: 10c0/8a97e777792ee3e25078884ba0a04f6732367779c9487abcdc5a2d65b224515fa6a0cf1fac1aafc52fb30f3af97f2e1c9949aadbd6ca74a0165691f95494a721 languageName: node linkType: hard -"@zag-js/anatomy@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/anatomy@npm:1.35.2" - checksum: 10c0/60aa0b18efe5259b6576c41a0906f8c49728b5043b18391d2794feb215225b70b62d873b3efc945da6c389e6d1f7ae4aa418506c92f0b1135d78da10054244b2 +"@typescript-eslint/parser@npm:8.56.1": + version: 8.56.1 + resolution: "@typescript-eslint/parser@npm:8.56.1" + dependencies: + "@typescript-eslint/scope-manager": "npm:8.56.1" + "@typescript-eslint/types": "npm:8.56.1" + "@typescript-eslint/typescript-estree": "npm:8.56.1" + "@typescript-eslint/visitor-keys": "npm:8.56.1" + debug: "npm:^4.4.3" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.0.0" + checksum: 10c0/61c9dab481e795b01835c00c9c7c845f1d7ea7faf3b8657fccee0f8658a65390cb5fe2b5230ae8c4241bd6e0c32aa9455a91989a492bd3bd6fec7c7d9339377a languageName: node linkType: hard -"@zag-js/angle-slider@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/angle-slider@npm:1.35.2" +"@typescript-eslint/project-service@npm:8.56.1": + version: 8.56.1 + resolution: "@typescript-eslint/project-service@npm:8.56.1" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/rect-utils": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/c3d2c351d344fde3168687c1fafd8a3079868680554c3eb914a84483612829938e9ae22405bab693c79825287ddb48f2bc0455c4c5850c94a3798ef5c745e271 + "@typescript-eslint/tsconfig-utils": "npm:^8.56.1" + "@typescript-eslint/types": "npm:^8.56.1" + debug: "npm:^4.4.3" + peerDependencies: + typescript: ">=4.8.4 <6.0.0" + checksum: 10c0/ca61cde575233bc79046d73ddd330d183fb3cbb941fddc31919336317cda39885c59296e2e5401b03d9325a64a629e842fd66865705ff0d85d83ee3ee40871e8 languageName: node linkType: hard -"@zag-js/aria-hidden@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/aria-hidden@npm:1.35.2" +"@typescript-eslint/scope-manager@npm:8.56.1": + version: 8.56.1 + resolution: "@typescript-eslint/scope-manager@npm:8.56.1" dependencies: - "@zag-js/dom-query": "npm:1.35.2" - checksum: 10c0/b4ab701b4668f8d57f288e282a6b9e34cb2e2c7b0f735bc1a003ba3d70650143c6d4da653d416679c01211701e16feaccd77f81620cc776ac6bd04999a7034c7 + "@typescript-eslint/types": "npm:8.56.1" + "@typescript-eslint/visitor-keys": "npm:8.56.1" + checksum: 10c0/89cc1af2635eee23f2aa2ff87c08f88f3ad972ebf67eaacdc604a4ef4178535682bad73fd086e6f3c542e4e5d874253349af10d58291d079cc29c6c7e9831de4 languageName: node linkType: hard -"@zag-js/async-list@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/async-list@npm:1.35.2" - dependencies: - "@zag-js/core": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/c50593cdecade44e67272cf0ec5d877b78bc725e59b77580cec3058d7a72fb51a7302d44742269d48762155d4e4576e4a439b798cecfe59d017e9b04573afaec +"@typescript-eslint/tsconfig-utils@npm:8.56.1, @typescript-eslint/tsconfig-utils@npm:^8.56.1": + version: 8.56.1 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.56.1" + peerDependencies: + typescript: ">=4.8.4 <6.0.0" + checksum: 10c0/d03b64d7ff19020beeefa493ae667c2e67a4547d25a3ecb9210a3a52afe980c093d772a91014bae699ee148bfb60cc659479e02bfc2946ea06954a8478ef1fe1 languageName: node linkType: hard -"@zag-js/auto-resize@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/auto-resize@npm:1.35.2" +"@typescript-eslint/type-utils@npm:8.56.1": + version: 8.56.1 + resolution: "@typescript-eslint/type-utils@npm:8.56.1" dependencies: - "@zag-js/dom-query": "npm:1.35.2" - checksum: 10c0/2b9e9ac1085742a449c3422c550c4b7f9cc9d5ebffe8ae9b760682bf09a44d0b2ea9cc579b313d5e9ef37f95073e84950838a1dd07f26ac9469e2f01ef3f5012 + "@typescript-eslint/types": "npm:8.56.1" + "@typescript-eslint/typescript-estree": "npm:8.56.1" + "@typescript-eslint/utils": "npm:8.56.1" + debug: "npm:^4.4.3" + ts-api-utils: "npm:^2.4.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.0.0" + checksum: 10c0/66517aed5059ef4a29605d06a510582f934d5789ae40ad673f1f0421f8aa13ec9ba7b8caab57ae9f270afacbf13ec5359cedfe74f21ae77e9a2364929f7e7cee languageName: node linkType: hard -"@zag-js/avatar@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/avatar@npm:1.35.2" - dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/958c3eb2b1ede6270011d80d569564bde2644c06e6c74b1fe8c7071898f22244ece55ba29c75b0e7c061a12370934cb2bb707e9d5ca352504644b7d0c127df8e +"@typescript-eslint/types@npm:8.56.1, @typescript-eslint/types@npm:^8.56.1": + version: 8.56.1 + resolution: "@typescript-eslint/types@npm:8.56.1" + checksum: 10c0/e5a0318abddf0c4f98da3039cb10b3c0601c8601f7a9f7043630f0d622dabfe83a4cd833545ad3531fc846e46ca2874377277b392c2490dffec279d9242d827b languageName: node linkType: hard -"@zag-js/carousel@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/carousel@npm:1.35.2" +"@typescript-eslint/typescript-estree@npm:8.56.1": + version: 8.56.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.56.1" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/scroll-snap": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/7d57f60369515084d98a763bb6c60f80297472fb3885022beed15ef92f047d2a8a24fb0b1553ab9303b253fe9ff395393756e83b805483c51cc0048718973b2d + "@typescript-eslint/project-service": "npm:8.56.1" + "@typescript-eslint/tsconfig-utils": "npm:8.56.1" + "@typescript-eslint/types": "npm:8.56.1" + "@typescript-eslint/visitor-keys": "npm:8.56.1" + debug: "npm:^4.4.3" + minimatch: "npm:^10.2.2" + semver: "npm:^7.7.3" + tinyglobby: "npm:^0.2.15" + ts-api-utils: "npm:^2.4.0" + peerDependencies: + typescript: ">=4.8.4 <6.0.0" + checksum: 10c0/92f4421dac41be289761200dc2ed85974fa451deacb09490ae1870a25b71b97218e609a90d4addba9ded5b2abdebc265c9db7f6e9ce6d29ed20e89b8487e9618 languageName: node linkType: hard -"@zag-js/cascade-select@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/cascade-select@npm:1.35.2" +"@typescript-eslint/utils@npm:8.56.1": + version: 8.56.1 + resolution: "@typescript-eslint/utils@npm:8.56.1" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/collection": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-visible": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/rect-utils": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/006296e2025502d24b4032b9083f6e0c2b46de594436779cd8cca0f9bed4b810aaf773649a418e6f9a11c12515ad97f55cfc7b2a7a5d324e880ee8f664013b02 + "@eslint-community/eslint-utils": "npm:^4.9.1" + "@typescript-eslint/scope-manager": "npm:8.56.1" + "@typescript-eslint/types": "npm:8.56.1" + "@typescript-eslint/typescript-estree": "npm:8.56.1" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.0.0" + checksum: 10c0/d9ffd9b2944a2c425e0532f71dc61e61d0a923d1a17733cf2777c2a4ae638307d12d44f63b33b6b3dc62f02f47db93ec49344ecefe17b76ee3e4fb0833325be3 languageName: node linkType: hard -"@zag-js/checkbox@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/checkbox@npm:1.35.2" +"@typescript-eslint/visitor-keys@npm:8.56.1": + version: 8.56.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.56.1" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-visible": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/6fa29782b1ed4e5f002d51693e0f688f2d44704fe743fd839c7a316818f00d3799c12fd7d3b0f77d5e3581ee5e316a658a32cef68e4c837d48b5c5e553bbdb58 + "@typescript-eslint/types": "npm:8.56.1" + eslint-visitor-keys: "npm:^5.0.0" + checksum: 10c0/86d97905dec1af964cc177c185933d040449acf6006096497f2e0093c6a53eb92b3ac1db9eb40a5a2e8d91160f558c9734331a9280797f09f284c38978b22190 languageName: node linkType: hard -"@zag-js/clipboard@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/clipboard@npm:1.35.2" +"@vitest/expect@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/expect@npm:3.2.4" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/22b8b78059a577748a61b8d3d59822597df3a34b1fb986f89e20657bb6f31be40d2593203b81cd21b224d1f585711f8db45dcf9a41af7cc769870a7522d98d22 + "@types/chai": "npm:^5.2.2" + "@vitest/spy": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" + chai: "npm:^5.2.0" + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/7586104e3fd31dbe1e6ecaafb9a70131e4197dce2940f727b6a84131eee3decac7b10f9c7c72fa5edbdb68b6f854353bd4c0fa84779e274207fb7379563b10db languageName: node linkType: hard -"@zag-js/collapsible@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/collapsible@npm:1.35.2" +"@vitest/mocker@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/mocker@npm:3.2.4" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/03db9208b9d2d20784415ea241a887a9af8fb1f280d98d05134caa63141a7426f172e79e92834c7bb52bafdef0230b986abf89ea3c333d4bc26b32cfd072e186 + "@vitest/spy": "npm:3.2.4" + estree-walker: "npm:^3.0.3" + magic-string: "npm:^0.30.17" + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 10c0/f7a4aea19bbbf8f15905847ee9143b6298b2c110f8b64789224cb0ffdc2e96f9802876aa2ca83f1ec1b6e1ff45e822abb34f0054c24d57b29ab18add06536ccd languageName: node linkType: hard -"@zag-js/collection@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/collection@npm:1.35.2" +"@vitest/pretty-format@npm:3.2.4, @vitest/pretty-format@npm:^3.2.4": + version: 3.2.4 + resolution: "@vitest/pretty-format@npm:3.2.4" dependencies: - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/398436977c0bc7e140ca840bc1bc2536a0f2dbf6949a302471795a7264b4fa8041506a6d7d60b31c7faa2901f6679feaf31d55de9354b02f369c0bf556c0724d + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/5ad7d4278e067390d7d633e307fee8103958806a419ca380aec0e33fae71b44a64415f7a9b4bc11635d3c13d4a9186111c581d3cef9c65cc317e68f077456887 languageName: node linkType: hard -"@zag-js/color-picker@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/color-picker@npm:1.35.2" +"@vitest/runner@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/runner@npm:3.2.4" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/color-utils": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/830e6873579b186413cacac260b2e5fb4f8f855e94fe8ef6e0477e79e2af58486d2a525fbdee6b0e217e072871392b879358c22c6fec3b65f41f4e21a4eb827d + "@vitest/utils": "npm:3.2.4" + pathe: "npm:^2.0.3" + strip-literal: "npm:^3.0.0" + checksum: 10c0/e8be51666c72b3668ae3ea348b0196656a4a5adb836cb5e270720885d9517421815b0d6c98bfdf1795ed02b994b7bfb2b21566ee356a40021f5bf4f6ed4e418a languageName: node linkType: hard -"@zag-js/color-utils@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/color-utils@npm:1.35.2" +"@vitest/snapshot@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/snapshot@npm:3.2.4" dependencies: - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/0aeeaa288cf6f8868270f9dd3074a51dbc79ad48a3e80bb4d29ba7772aaf3374011524292f974bcaa893340f6df33e75799cd0f58f6d3aef4f0bacf3376f8088 + "@vitest/pretty-format": "npm:3.2.4" + magic-string: "npm:^0.30.17" + pathe: "npm:^2.0.3" + checksum: 10c0/f8301a3d7d1559fd3d59ed51176dd52e1ed5c2d23aa6d8d6aa18787ef46e295056bc726a021698d8454c16ed825ecba163362f42fa90258bb4a98cfd2c9424fc languageName: node linkType: hard -"@zag-js/combobox@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/combobox@npm:1.35.2" +"@vitest/spy@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/spy@npm:3.2.4" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/aria-hidden": "npm:1.35.2" - "@zag-js/collection": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-visible": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/bd6c2477f103e07a8e4c9b4d3aa5c94adec9b1549da98610d786881ff0da889884da4a101b50b5ce368e1667d1031fe5dc2dfb7b1e0085345789992acc17e3b3 + tinyspy: "npm:^4.0.3" + checksum: 10c0/6ebf0b4697dc238476d6b6a60c76ba9eb1dd8167a307e30f08f64149612fd50227682b876420e4c2e09a76334e73f72e3ebf0e350714dc22474258292e202024 languageName: node linkType: hard -"@zag-js/core@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/core@npm:1.35.2" +"@vitest/utils@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/utils@npm:3.2.4" dependencies: - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/0e655b31d872c6c4c353394aa757ef61e559219908433c654e4ceacae9da64366de31896e7286f9d542317b44c1cc74cdf6490556d2e140dbfdd1f932df6c621 + "@vitest/pretty-format": "npm:3.2.4" + loupe: "npm:^3.1.4" + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/024a9b8c8bcc12cf40183c246c244b52ecff861c6deb3477cbf487ac8781ad44c68a9c5fd69f8c1361878e55b97c10d99d511f2597f1f7244b5e5101d028ba64 languageName: node linkType: hard -"@zag-js/date-picker@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/date-picker@npm:1.35.2" +"@zag-js/accordion@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/accordion@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/date-utils": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/live-region": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/39adcc70c6b29de962b5647b68c61570fdfaab3f2ab875eee6b4eef1f4c3d5ef5f1a269e962fef322ef92e2a6fef5b86eac679528dc9b821288ae772c3554460 + languageName: node + linkType: hard + +"@zag-js/anatomy@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/anatomy@npm:1.35.3" + checksum: 10c0/40378d8dc5f4cbbde5963c7ce158f473c62af0520480f414e820fb01aa2a4f06843943bc5eb8be7b0c5155d5b292890b65fe2590218c3271873abcc764f76348 + languageName: node + linkType: hard + +"@zag-js/angle-slider@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/angle-slider@npm:1.35.3" + dependencies: + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/rect-utils": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/37e772dc47380dc898e61d6a89e95b8bcb087a0db44f48f192858e5ef0b34dec67c0213d9ea5032b6a38a63723295dc59b14e42ab345dbfaf156f94cb742917b + languageName: node + linkType: hard + +"@zag-js/aria-hidden@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/aria-hidden@npm:1.35.3" + dependencies: + "@zag-js/dom-query": "npm:1.35.3" + checksum: 10c0/09b49053d585dd7b28316a21a203a0022605e259b5c02e3c8adb8446d5660e4242f63ad721f53f7de250830c6eaffde979efa413e97263a6bae2a9dac830543c + languageName: node + linkType: hard + +"@zag-js/async-list@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/async-list@npm:1.35.3" + dependencies: + "@zag-js/core": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/cb32c9d2b493b29100d437dc1b0df78cf339dc162640e5430738d9ee17f32ac5898cca2281fb39905f60ca6bb55ee790b8377361b583e78bb2e0036875b1ef81 + languageName: node + linkType: hard + +"@zag-js/auto-resize@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/auto-resize@npm:1.35.3" + dependencies: + "@zag-js/dom-query": "npm:1.35.3" + checksum: 10c0/2910dfbe7fcdc4009fc3398f451918689d20d668ebbb653c472c39c06b059495691695c1400b95fd083666813bcc1dfaacd655b30380d19afe7347894f9e6bb1 + languageName: node + linkType: hard + +"@zag-js/avatar@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/avatar@npm:1.35.3" + dependencies: + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/d8a04945e455273690df43558815101599a5a528492fffe784c422a6a7df1624da6e1cb95d9330e784fdb6fe484a4711da543c47fffab62ed8d868603f0b3f47 + languageName: node + linkType: hard + +"@zag-js/carousel@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/carousel@npm:1.35.3" + dependencies: + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/scroll-snap": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/7e50f22a7e13d1fc74593b0614dfa6227076f78b7fbcacc8ed1c2e5a8d4e5a734674494045465da228ac1387fb0ee0e959a00fffca61dc6d1d1a41e19cf10104 + languageName: node + linkType: hard + +"@zag-js/cascade-select@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/cascade-select@npm:1.35.3" + dependencies: + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/collection": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-visible": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/rect-utils": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/f2fee4786019441a60d11756cc0889f0e5c9427ea7cbdedd17cdf356434b2b576a518503e28559cd3dc513da5b0057815de08acb93792cf54344506fa5b065b8 + languageName: node + linkType: hard + +"@zag-js/checkbox@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/checkbox@npm:1.35.3" + dependencies: + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-visible": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/feb2dfb1caa07ab983d7a31f531254d02c83e33d093b9b250aaa5f5940e6b584e96d6469cbff6774b6b7170122cd1cbae2d7c73e650362f2f09e7aefbdca1d63 + languageName: node + linkType: hard + +"@zag-js/clipboard@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/clipboard@npm:1.35.3" + dependencies: + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/8c54ef178ac9969c744cc968f3e2fca229bc2775d7ff2941d50acfc6b544737985a70eba6aa77dd6fb39b73f1e0f0f769a2b62559fb6447bc775b5340bc70c0a + languageName: node + linkType: hard + +"@zag-js/collapsible@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/collapsible@npm:1.35.3" + dependencies: + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/1dbfdf0dffd1975f0c851d2d6955a080fe664b32213b5d7657c1eaf47962402dbd53753fcb4e8a3b44988b0dac32ccad58df94a1a99f6415dc1508db03da76a1 + languageName: node + linkType: hard + +"@zag-js/collection@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/collection@npm:1.35.3" + dependencies: + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/2b69e35621045b518c91333c8e65a0a32610564457254c188e1b4095d7c2265a24ac766bde9ca237714c8b33d357c825c4ec3cabd93516f40e54f91900021ca9 + languageName: node + linkType: hard + +"@zag-js/color-picker@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/color-picker@npm:1.35.3" + dependencies: + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/color-utils": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/ea516f8b1bd55b338b811c994c8c9532c121f1bd4d1002b1b242971053786028cdc8d427dd2fa03d2e2343f2c0db81051e409f2eee526abd768c44671de01199 + languageName: node + linkType: hard + +"@zag-js/color-utils@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/color-utils@npm:1.35.3" + dependencies: + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/6e3c2f21fa887f6c098e5c5874f4739898502162b0bb688d17e9427c360844b7b0efa8234fccf5cb5a6a25bee3fa8ad0e535fa2fc1d84060e7d812083b1fcc15 + languageName: node + linkType: hard + +"@zag-js/combobox@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/combobox@npm:1.35.3" + dependencies: + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/aria-hidden": "npm:1.35.3" + "@zag-js/collection": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-visible": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/75afa44fe1b84840c26cf2468b42beaf24e45c65119521f4285506b6fd3a3343f3cc183b8f0c91f26f308b42685b8a5c04edbac02209290a69bba9bee8b1e9a4 + languageName: node + linkType: hard + +"@zag-js/core@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/core@npm:1.35.3" + dependencies: + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/3cd5db2554953e726c1c189ba2fd3869c5b1317e4b67f01391615f9fed396745669a099bb71f9108b6a79fbc5762709afbafda58c947c1df962e28342a4c9fb0 + languageName: node + linkType: hard + +"@zag-js/date-picker@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/date-picker@npm:1.35.3" + dependencies: + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/date-utils": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/live-region": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" peerDependencies: "@internationalized/date": ">=3.0.0" - checksum: 10c0/36d2cf43d56f2c3c4462fc080fdedba0dd8e692b63ac726b78be02b746a7db778caf6821fb369555de43fd949608c9eea7c05aedb6fd48e7bade579238e84765 + checksum: 10c0/8d74124c71b0ef08417cf955c53018db18a4fb43fa68845852c21551e988c3d0eb29c0fc9185cd03d423ee14fbc7c254c7690da6047bc9c3376973143af054d5 languageName: node linkType: hard -"@zag-js/date-utils@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/date-utils@npm:1.35.2" +"@zag-js/date-utils@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/date-utils@npm:1.35.3" peerDependencies: "@internationalized/date": ">=3.0.0" - checksum: 10c0/17d4769110aec7cb1c6f469583bcbcfd3c64a3524c64dbdf04c19195b16b2403ff8e26a90d192a3601fc526bacc78d930f099212e846827fee89f7dc4e8d9a3b + checksum: 10c0/4bf24afdb26d2513e02703b7990ebc4dae7e1062b9ac7ff4c2e6f32e6884afd028dc098f922c1651f90c5fc845977554dbd4b735c34f009d62ebc4eb10c06e6c languageName: node linkType: hard -"@zag-js/dialog@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/dialog@npm:1.35.2" +"@zag-js/dialog@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/dialog@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/aria-hidden": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-trap": "npm:1.35.2" - "@zag-js/remove-scroll": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/7ba8ed4bfa1f56ff539b610221e9dca89bddd343fb92ec84e9c285f7fee29b0956c9bf1969734a06b1a40e4b4e36759694cd6e2b2606df1dbd916706ba1710a2 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/aria-hidden": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-trap": "npm:1.35.3" + "@zag-js/remove-scroll": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/5654e1bf343068312d452f6fea928ba0aaf9c16e4f1ca8550f99b590a1716f715ec4abf1f8058d3aa8eefaabc192d12527d699022a5c777a3ce164f9bd041a3a languageName: node linkType: hard -"@zag-js/dismissable@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/dismissable@npm:1.35.2" +"@zag-js/dismissable@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/dismissable@npm:1.35.3" dependencies: - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/interact-outside": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/78113f3db401ee66841b09b174cd72b1cb71ef44b1d017dfeed8fdcc926d73267c1ba55795dfc9e7f84c3edbebc48eb54125dec818744a764db5d112843e1e1a + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/interact-outside": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/491f40817f8913244214a5995128209939be595986ae9b80bfa1ce4218b19f589e7ecbdb84dc9b15887e7c1bee63cb88d8bfdd53fbe7e5905259756ed7f55636 languageName: node linkType: hard -"@zag-js/dom-query@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/dom-query@npm:1.35.2" +"@zag-js/dom-query@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/dom-query@npm:1.35.3" dependencies: - "@zag-js/types": "npm:1.35.2" - checksum: 10c0/a9b52d83eb51b2025fa2b56ede9b1e4e65448326f79149f4402247f36f418f92ea64d2a7fa3c948c27c9d1ea716ea3f26574d518592675ec814d409c4c0cb5f4 + "@zag-js/types": "npm:1.35.3" + checksum: 10c0/27cad52ce4fb720a3702d6fdcaa666bb4b6dd4400206778e715d835a3719429cc4c53a2292b20de45ed126b521786ad4adf0a065083e6e8f0af3413c03814c76 languageName: node linkType: hard -"@zag-js/drawer@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/drawer@npm:1.35.2" +"@zag-js/drawer@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/drawer@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/aria-hidden": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-trap": "npm:1.35.2" - "@zag-js/remove-scroll": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/fe78d4c07bd99869648cac72a59734c349ba64403ad47d21cccbe98bb24887e592631937f91a8f7ce0e9d5ce1b64231a8d9a2168a9206ff3e3541d81b8c4c6e0 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/aria-hidden": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-trap": "npm:1.35.3" + "@zag-js/remove-scroll": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/24558a674993e32e785cc9daf0460e5f0a03be287994c1107926c3542f92ca6a3c5937de810ff402a0ad1d9e6fd9f00efef068d34fd8d5413ec22ce5a4308f3a languageName: node linkType: hard -"@zag-js/editable@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/editable@npm:1.35.2" +"@zag-js/editable@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/editable@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/interact-outside": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/6f8fdf0f5549b5dcf47d48c4dc6f9df0dbbcb5b465795ecc231a17bc88beb1eca9ae6ab18ea7699b50cc44d9a584ff28704f4f75afbdd4a18022a005b98edd42 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/interact-outside": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/dffce3e570b8c3825d8c99dc24152d5d1b0299537de414b4ef89c5b5c27f529a61db20a2884aea767a8d0280c47d4b34110ec7388f27b3b6f75743538188d9fe languageName: node linkType: hard -"@zag-js/file-upload@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/file-upload@npm:1.35.2" +"@zag-js/file-upload@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/file-upload@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/file-utils": "npm:1.35.2" - "@zag-js/i18n-utils": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/26fdc6b36bb5d6ca31da15074f675441f44045b6910f265e9af92600f6f596a828fa1c268bfbaca39c2421e754ba1c49bb5beeadde48196e12eea799e316ee69 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/file-utils": "npm:1.35.3" + "@zag-js/i18n-utils": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/01e954cba84f40fd6a8a7f26fbc08542a5626f301aff3d1f4e3dae5b9469e82da8febb0f24a6245976637944c0a196a781b4a4a9a14fdaa6241f2b3647b9d5fb languageName: node linkType: hard -"@zag-js/file-utils@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/file-utils@npm:1.35.2" +"@zag-js/file-utils@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/file-utils@npm:1.35.3" dependencies: - "@zag-js/i18n-utils": "npm:1.35.2" - checksum: 10c0/3f04892ac90cba7ed65022d48d38c395d86fb7352878b9b0abb6dcf6f847b52fd30ebe0845731d3d35acfed0a1e5b345741fdb105d1b8a8655ab88ade83eb573 + "@zag-js/i18n-utils": "npm:1.35.3" + checksum: 10c0/2dc7346535acca40015c4880346ba80effbd571df2977851972172a67b1f65093ed57e24d3e3c396527679acedec03c37c748ba5904339ecfcfca9189f3ee3ab languageName: node linkType: hard -"@zag-js/floating-panel@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/floating-panel@npm:1.35.2" +"@zag-js/floating-panel@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/floating-panel@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/rect-utils": "npm:1.35.2" - "@zag-js/store": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/e9670136f0e4efcce08b8c81b6c219605db18369d456871fcb428a3e5605256386eb28a41777b8fd056b9acbbb5f9d26ee7a7668bf5137688e3e6865407f7e91 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/rect-utils": "npm:1.35.3" + "@zag-js/store": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/c8425c7cfb55d01dfa7ecc1024dc02580772988d8cc550ed4710b2d415a9e01c0c80cf1c4aa004f8e5784b0667b8a90a54e168793afb71fdcb858c0704a96628 languageName: node linkType: hard -"@zag-js/focus-trap@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/focus-trap@npm:1.35.2" +"@zag-js/focus-trap@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/focus-trap@npm:1.35.3" dependencies: - "@zag-js/dom-query": "npm:1.35.2" - checksum: 10c0/db3a8e7aa45a5988190b8df20e0039c89ed7186b553aa10a6977e09147ff334e40e734bc4ff438ffe87d3fe74445fa88bcceac671243b403f294d52acaeec5aa + "@zag-js/dom-query": "npm:1.35.3" + checksum: 10c0/25fcdecd41eccfff22ef178e5f1da60631d1aa49cd5c94e4ec23cf48fe7080e31e6c8b7ed22e571e3a02685442fd2b5689aaff825d5187894f3e0c206b7f8320 languageName: node linkType: hard -"@zag-js/focus-visible@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/focus-visible@npm:1.35.2" +"@zag-js/focus-visible@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/focus-visible@npm:1.35.3" dependencies: - "@zag-js/dom-query": "npm:1.35.2" - checksum: 10c0/963148e4bc9ec4a4cc70969190c2014c9ecf96a004a2283a4184aaeabe300f1d69f38f9b6c8ad557ab941a699dc4c4e901de8b410cbbc34078fd001ece776dcd + "@zag-js/dom-query": "npm:1.35.3" + checksum: 10c0/379ad0376cc2c830f9efacef0da28c0dc0622bc8a6ff4049253a81673077ca6a25c8eb330e8ee983253bf058b638d23f009f0fe4a82db8b3c8e2b82148cbb799 languageName: node linkType: hard -"@zag-js/highlight-word@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/highlight-word@npm:1.35.2" - checksum: 10c0/09855258217cbd8aac2d2d76c02ffd71305a9e7233b1373f3a77f641ba340df2b5f131143f14502aa0d094a9ee5aeb002c5dd74de5380088b3042e880a03be7f +"@zag-js/highlight-word@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/highlight-word@npm:1.35.3" + checksum: 10c0/afe2c3dbbe536d35e3ec5789104e032e8f405e1d86232035afbce1c5237c0d49199584d40f8c0a9ff99808a6fffb479a6db7c9b674f4a032c1aac03d0486b9c2 languageName: node linkType: hard -"@zag-js/hover-card@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/hover-card@npm:1.35.2" +"@zag-js/hover-card@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/hover-card@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/dee3ac272c6181b008cd41d2626a378bac3a711d0ac62f287beb6891443c35e5e8fa677430aa1515665f82edec21b5150544c4acfdb2d03dc8d9ee327d9a5571 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/3e9ad3961d20dc937750082364db381db00f2d8cdc8719290d4ed0518c7e47f6a1a4255fa9e19b75758a6c27dd3e0fb02854c36b89577bc0d5e110e6be557859 languageName: node linkType: hard -"@zag-js/i18n-utils@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/i18n-utils@npm:1.35.2" +"@zag-js/i18n-utils@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/i18n-utils@npm:1.35.3" dependencies: - "@zag-js/dom-query": "npm:1.35.2" - checksum: 10c0/c5c89dfbad8e7a29687cefad021a77346535a9b0e365293aeda000db9c8bcf72fac3946e10a0add93e5c253105737d4cc663d0c36e82a6106aa61116ab15bfe6 + "@zag-js/dom-query": "npm:1.35.3" + checksum: 10c0/1615ad2b2e49da4273d5f5925fa8b23d80f69cf9b30d46670376758b43cc8e6c9334cc680f8e313a6a60fa1e56249aa128259a73661b4b1cd7f43eafc407d64f languageName: node linkType: hard -"@zag-js/image-cropper@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/image-cropper@npm:1.35.2" +"@zag-js/image-cropper@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/image-cropper@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/c36e16767ee4c6c2b4293c1d17bed0a02eebb9663c79e79377a06ff3749d1e799434adcffc66dd481b6b54c23f41c1cdabf81d0ce05cd2e187b3ced8ba848ae0 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/f9acddb082abce9479bf862dbb29ff18fe4397b441403d117690a24bafdf93349facaad4d9696b6a8b09ca55e9ad1342d03a0e74605bde1644ccc36a4d73579c languageName: node linkType: hard -"@zag-js/interact-outside@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/interact-outside@npm:1.35.2" +"@zag-js/interact-outside@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/interact-outside@npm:1.35.3" dependencies: - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/f688727e183ed51b749f659c09d5d504cd0b5140ec17e3c747419d07501e13a1b339828d5e3d1fa5bd2b883bb04d26a8f9772c93b380520d5140fffbc4460a7f + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/171a7f689f4b4ca2c5c813442b27dcedf46d5462b5e4f194ab9cae256c75e557a174cc5773226ddd7ffcc9140a89c60dee76e77a93863aa58d49ebd3d31d8f29 languageName: node linkType: hard -"@zag-js/json-tree-utils@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/json-tree-utils@npm:1.35.2" - checksum: 10c0/dbf34f71d864d38996b830a7893b5560ba7f80abe55611a094547e7008ec53a07ffd204b6849e9f30c0358f374fde2488c1d8c0a49743ee38d4974fdfdfcbc6f +"@zag-js/json-tree-utils@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/json-tree-utils@npm:1.35.3" + checksum: 10c0/eaf99898352b4a3b72be3c760fbe23bedb39de5532f4fa3074c511459c474debc0613b9a99f542c87217ad2aaf849e403777871c06d7cd718700d8f14dc433fb languageName: node linkType: hard -"@zag-js/listbox@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/listbox@npm:1.35.2" +"@zag-js/listbox@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/listbox@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/collection": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-visible": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/793f549e8b1a34eec9ebabc6322a92737e18cad6e353e9424bdf55615eada969a8ba40d2a4152e9e3d3b4bc44a6362b729f52a9d5e29ee9837145ec8dc559ac9 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/collection": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-visible": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/7f150abde0301c8a5fb540eba893ca1f977725a587e7f56096db43b591e2c83e15b7f178cb3646222ca098c616e4678218010757fd5b8eb65f86dc47131f0484 languageName: node linkType: hard -"@zag-js/live-region@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/live-region@npm:1.35.2" - checksum: 10c0/4c75c1c542b9ed8823435f8bffc9e3fd73aa86c894bcf3e3564015b3b7658678c6a7ef09305a89739c52ae415800a20ea095b6891dcbb329b2367fb89020c4e5 +"@zag-js/live-region@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/live-region@npm:1.35.3" + checksum: 10c0/57ba37774e0d64f086c8d6a7d2501d63f26a09b7cfcc144804b2298b0eb3c148f0417b1f2f92ea874c55391537641db6fd666801e2851ed9100f8d2129ad5acc languageName: node linkType: hard -"@zag-js/marquee@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/marquee@npm:1.35.2" +"@zag-js/marquee@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/marquee@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/b6dff476ddc33ed5a7fc5897d90475f78f2fd3f1a73469e14d2a5b139c8752c0938b7e377db12ec023de6f10d200367efd45cd19a1c0e0b7a1950ac248fbf7e7 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/15b3c1353f4da6f336b5aaeffb2e133ed6d39b5c46099c8f977fd2070fc82193d7f647a48316ccdae054610b74e682d2a312c22bf70d8530cb5328760851ed5d languageName: node linkType: hard -"@zag-js/menu@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/menu@npm:1.35.2" +"@zag-js/menu@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/menu@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-visible": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/rect-utils": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/41a284e8562d21cac0b78d3777964d68200b04c9259d6c34f9241fc7fcc75fce2130f470698ca6a9ea02c1ee9494af3ec49c25b8fe2fef031c3f530dfa53ff9e + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-visible": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/rect-utils": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/99bd07b0ed3e3a0f1992c0d50734fa16bbed3f26c4327fa7ff526e21b02cbdd4466f7523896b4d50cc621c2b92a645cf36bf09443b5f041d84c82e078e4a23ac languageName: node linkType: hard -"@zag-js/navigation-menu@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/navigation-menu@npm:1.35.2" +"@zag-js/navigation-menu@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/navigation-menu@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/d92a8822cf13d5d7797c1fe29f0073abc5de5c0c41cdc3461ed5bf8cc1e3a914b688427b786e2300b23186a8a2bd0cc05085ee196633a38dd0bfdb7c470220af + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/5bee85c4da6b6465dbe977e277733e926f82338b2b0df896b7e4d6627a28fa28cf21ee753093cd715f4f7f40b0c8f85024a979d1fbd4e499c06ec155a174e305 languageName: node linkType: hard -"@zag-js/number-input@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/number-input@npm:1.35.2" +"@zag-js/number-input@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/number-input@npm:1.35.3" dependencies: "@internationalized/number": "npm:3.6.5" - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/72518ceee64c666f2f81a67bc20f4342f1666140cbb7ba19a53114975c82c1d4e3c1bb3e7ca8312e2f0fab3d513b2e75adb8835d1b74dcb18b0da0bdf8813cae + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/9016782a86503d20cf45ff462bc2abf48d1c1e31143cb6d154ccfb5df995d4ddf217eb91fe9204397f2df35ee8027338eee9766d6d1b9fc7fde4169e8fd4e262 languageName: node linkType: hard -"@zag-js/pagination@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/pagination@npm:1.35.2" +"@zag-js/pagination@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/pagination@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/779372770f622f1ca205537955974eaf2074c7e6720dcc1ac8333533787f809b3fb6acb19e347f27943f54bbc5c4e4b49cd5ba989eaac585b4d0bc76a4967619 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/24050b455f753771bedf9570f0473f527ef2239b53be1b2786bb6ee377d40da000214b94b0f38cbc10609ed2aff51aabbaf071e73c5e341ec53ec6314577abea languageName: node linkType: hard -"@zag-js/password-input@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/password-input@npm:1.35.2" +"@zag-js/password-input@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/password-input@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/d591fe6f36ea058a7d6c5c497903ca188f6cf126f5ab386cae2ced9c90f4f7f4385fa1c069e6454dc83583562754acaebe99d5d3517987570f267bc67eca4322 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/ee997b707f2e4d171ae3ab7f5d5c51b321514667f4cd4873ee2c6bc0eab08b20b9873a92479eb86bd8fa7a027379cb928a79495fbdcb51966cd44daf3926f01e languageName: node linkType: hard -"@zag-js/pin-input@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/pin-input@npm:1.35.2" +"@zag-js/pin-input@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/pin-input@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/96bec1fbe839387ae7bbcb2b6d4f866e367b2a7cff4d1d4dd915363635a2f5c26e1bb04d8797238b41a25af6a1b526fe247d963815331443f6fe8fee48bb9fc2 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/9ee837aea33c1feff066ec332dd50c83ddd10e405ed949af56b2da60fd20ea095e54b92644796c5c5cbd9d5fb8998bddf5044e70e1a9d5f0c01da2625df5b481 languageName: node linkType: hard -"@zag-js/popover@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/popover@npm:1.35.2" +"@zag-js/popover@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/popover@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/aria-hidden": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-trap": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/remove-scroll": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/c397c6be1f1827755945fbd5fa79c3e428cc1d01534f753ed682c3316e5bc4fbba0736583388a55b302509a9277a6cd490e279c95aa8093be05387203dd9e2d5 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/aria-hidden": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-trap": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/remove-scroll": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/cb36c840cc2d9d5ef20b95dab6505eef776d93bdb6048248ba5fde3217b1cedbc51c6ab332bb2bc2ede7b70c65a22c66b2a45a225ea1adf2ca18b5ed2b9a564a languageName: node linkType: hard -"@zag-js/popper@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/popper@npm:1.35.2" +"@zag-js/popper@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/popper@npm:1.35.3" dependencies: "@floating-ui/dom": "npm:^1.7.5" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/a889925983c01f3ac4544979958810d44981b7bb7fed8d6a036a476c2f982ed3bda829c8537c3780a3c485c05ddcf8e1d1086701855493c574f0b5a02772d1de + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/fb74e048dca993aaded38a3e1c6fd6c27ed5332424ddb3845c92da9be0cc922b88ab885ab805cfaa5333b44214871b223fecacad0e0f311fb173a3e9994e141d languageName: node linkType: hard -"@zag-js/presence@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/presence@npm:1.35.2" +"@zag-js/presence@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/presence@npm:1.35.3" dependencies: - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - checksum: 10c0/e6ae870d907c199264d5ab9278638169a1001caa89f634da3bd2d9048ca2d4103ee99291eeccef58c56e792fd1d7c284b4d329b67e5f276addd6ba2ba6ef73cf + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + checksum: 10c0/d7f335d3dbabd41fbc44f726f36b89ae0af33c5142dc44a7a38e8e07395e4aa40306a270149d92234e0aaf79861634be8331fd3025566c93c467de8a2b413be2 languageName: node linkType: hard -"@zag-js/progress@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/progress@npm:1.35.2" +"@zag-js/progress@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/progress@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/dbc909f779b52c90e15dff376d19fdb19f767f5d0f356143e93659c991bb642398b88db62ba9018efc2d0db9f79d6f4eb832a84cdcd8e431296b4b3a18a55698 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/3c1ffe53bec5e4ba1fd2cd7b986be2732a86f81c6436842f448ba0a3ccd4faccdc3a8458dbc72a287af72e34d07951f879d818f77a04adb913db8a1121ff8524 languageName: node linkType: hard -"@zag-js/qr-code@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/qr-code@npm:1.35.2" +"@zag-js/qr-code@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/qr-code@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" proxy-memoize: "npm:3.0.1" uqr: "npm:0.1.2" - checksum: 10c0/bea4248d04ec3c034d25e9aeb5e478b2d463c65932b65c57a8a07fc85b6925fcc5ef2daabb5578e303909015ceea895044c971a40f0c49490139478be2d353e9 + checksum: 10c0/5a038f9f99709504b10472ddce83cc717b41dacdb6214550b46d641efc04bdba4450aa0618916cd76955cdd92bc0a0598a294559270f186aaf805bf2efea1185 languageName: node linkType: hard -"@zag-js/radio-group@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/radio-group@npm:1.35.2" +"@zag-js/radio-group@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/radio-group@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-visible": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/05148578ffaf70c7b99cf2bf26bb932a126a3b216dac0b667689d7ecfc8fec5341ad64719e2b28f65a58e0c8f43b77d7fecd4cc53f3da867206b6d5f1f76ae2c + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-visible": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/90d340f9e07b15a4a4e18bf008ec73ebd15dbb110cca9ad0c36049a75a101af29a3b4f3785f261bf81d96fb9ddb3856edb606fadbaeccb3b9b3abc0edd06820d languageName: node linkType: hard -"@zag-js/rating-group@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/rating-group@npm:1.35.2" +"@zag-js/rating-group@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/rating-group@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/6b7dbfe459c28aa78b1eeee1dc7a4e6891b9686054678b3ecfe9fe51c72dc81536e6b7584273a8852fbc1910905f8ab1eaca78c5f2d334c9e1eaa5f9af9970a5 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/3774c4b8a03811e1cfb454a8556212c2d7326b810e56feb1334b18e5f1fede908c05101612a5b9a53b3814ff90cfe5cb1b9899e52a4e8b8173d5b7abd0b4847d languageName: node linkType: hard -"@zag-js/react@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/react@npm:1.35.2" +"@zag-js/react@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/react@npm:1.35.3" dependencies: - "@zag-js/core": "npm:1.35.2" - "@zag-js/store": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" + "@zag-js/core": "npm:1.35.3" + "@zag-js/store": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" peerDependencies: react: ">=18.0.0" react-dom: ">=18.0.0" - checksum: 10c0/16c8588db78ae143a7d614237fd451c130f1311854f79ecf8e96bfa2b77dc5ee4c7d019d9e0f882c2f0338cdc8bb1f36ee52ecd453388f6745675cf0a52b24db + checksum: 10c0/d8e9fb8e184f9ec8e90589097e32196d5fafef7fb56222349634f0e51d2d9ebb4cf303da8877487ab701da44a63983768e64425c19eb2018e16aa6918eab366f languageName: node linkType: hard -"@zag-js/rect-utils@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/rect-utils@npm:1.35.2" - checksum: 10c0/37f1f4fa1d23854d48511697c1139ee912f03847f34e5ae2791647e753c8aac030ec5713ec56addb060f1950ce6b96287c242c3693cb00cbeffc095a03b0e57d +"@zag-js/rect-utils@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/rect-utils@npm:1.35.3" + checksum: 10c0/2aeaa90afcb62813d31539e58fdd8a1180511e32634f7e40cb45b27d23b7fb98dc1bfd77b016c37037267771e4c278e1e05aa9778fa1239889e3ca9383709388 languageName: node linkType: hard -"@zag-js/remove-scroll@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/remove-scroll@npm:1.35.2" +"@zag-js/remove-scroll@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/remove-scroll@npm:1.35.3" dependencies: - "@zag-js/dom-query": "npm:1.35.2" - checksum: 10c0/18d08de8315d2c11a67ac8ffbfa0a562715e8cc8d4e802e0b64433a1fda999c59eb41e20ef25b78b8c3c76d5f0595a61ac53e1f4c8a9e858cd8170e9698f523a + "@zag-js/dom-query": "npm:1.35.3" + checksum: 10c0/71203383234903db940feb9764aacd793300b691203e095b7ed6523aa7d0b1c1f2a398279559c5b7b90e82323ad3a7b3f11004df52207017f700d5243e7e6a51 languageName: node linkType: hard -"@zag-js/scroll-area@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/scroll-area@npm:1.35.2" +"@zag-js/scroll-area@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/scroll-area@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/53c0753dd9d996f63593e8231e541f4dd1f16a7e1a3958e53e7b8e9f5439d44c8fbe63e90d0022b3c298b4df3b71d5739bc76448f032c312b5cf253549c2aaae + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/e9cfd57d1399187207dd9a9a3ab5bd43c0934aef4ac681b82a354f03f8cd086c7435c201f94d8cfba14ccfd554df913f525b84184c741b9f01624cf1215b0549 languageName: node linkType: hard -"@zag-js/scroll-snap@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/scroll-snap@npm:1.35.2" +"@zag-js/scroll-snap@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/scroll-snap@npm:1.35.3" dependencies: - "@zag-js/dom-query": "npm:1.35.2" - checksum: 10c0/3056b1e11519e76b9153b98bc7eeea5f82c1795c64657e5c107a6124ef8c6aeae65c7899e2e9abc926e83196fa735966bfb7137b16d16e1664239e953bc0a66c + "@zag-js/dom-query": "npm:1.35.3" + checksum: 10c0/569bef1a195b11756c8bb7fd7113cea9277b0e3cd98848e1ce944e5d2e7ca3311ee92bf81a5cec604d81eb6c7b0b83fc124d5036e175b06f8f499df3a233f6b0 languageName: node linkType: hard -"@zag-js/select@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/select@npm:1.35.2" +"@zag-js/select@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/select@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/collection": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-visible": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/f830c6407618745f7add0ffbc229edf29825b8f95c89a63fe3b054c2b7e99aec4f91dee55c1bd0d5992e07150e0ed4765303611927fd061e19e758f3eec17b1b + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/collection": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-visible": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/6b9e3147341a7e7bdad848305e1faec24749cf25bc67f35c94f69196851d5c2e055c4d2bb056ce9a74e0f2d38a6252dd9788f63a36bfbf5d45ce8f9e094865cb languageName: node linkType: hard -"@zag-js/signature-pad@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/signature-pad@npm:1.35.2" +"@zag-js/signature-pad@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/signature-pad@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - perfect-freehand: "npm:^1.2.2" - checksum: 10c0/6250d25d10d370bf7aadd3713928b26570ff05322d1409c5ef0f115f95c13af233d6fc5ae8cc12816c7492ed04fb9249623a8d2a06535c4d45a17861af3bd846 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + perfect-freehand: "npm:^1.2.3" + checksum: 10c0/ea697fb374b286f2860fdb6e6e19b6fa436ed58a162bb75f844650dcc916bc8990e9e689f0391d98a598aa9ba00bafa451a28828bcb0f9932a137cd58b15f04f languageName: node linkType: hard -"@zag-js/slider@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/slider@npm:1.35.2" +"@zag-js/slider@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/slider@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/c1b275c2135f17b8c047995fcf5fccc6a215ac8ad0dd7ded5eae8e551c9b6c47bd8b5ee55e97bc93c62905241b98cb9e54503b83e0120c818b957c4f5de25366 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/b0759793b791770340ec8a332c925fe9033286e391ce45e5fd6abbb5e5a697c07985932202a8cc42d40b53dcf678b2ecb78cfb9e4de33d3391e4316d3ecb4aca languageName: node linkType: hard -"@zag-js/splitter@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/splitter@npm:1.35.2" +"@zag-js/splitter@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/splitter@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/bf9e26b713e81bbd22480a069747bc0445b5efc7af026f3229a9bf5ab35293b73642e8bec1507934f62de57714b3388aae38e9eea5d32ea7176e899212e99199 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/2992717ef4ac08971ee9f35d88c3f822d16b822bd74bfab09acd980e8449230f22b2631e3934da4e5905ec0daf4f413b2bfbb8a805f4106dff600b37b6b83392 languageName: node linkType: hard -"@zag-js/steps@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/steps@npm:1.35.2" +"@zag-js/steps@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/steps@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/d688a20be8194fa86c6a52671ba5a138ec96bd9ecc44fb6af1dff30cbd296d6ba510e4ac334294b07404abc736f67300500a1df915911237a32287cc61e56804 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/203b395312853f585e842054bfef3baac829f11f72d8d1466e16007bfca9e9f28c2dceb555a9584987777d18ef05700ba439ca1520cec362181ee41da0a921de languageName: node linkType: hard -"@zag-js/store@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/store@npm:1.35.2" +"@zag-js/store@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/store@npm:1.35.3" dependencies: proxy-compare: "npm:3.0.1" - checksum: 10c0/a7088050c4ef6e4798234667b931cf1bd43976349e3485433965e469e92ba44409cec12a533bc74d913f7590d49dd38309407e028946593d5e11c296b67926a6 + checksum: 10c0/3cf634f2ec3f21ad07be1bb73ee06affc3a25a06c0c7f041854b6d7f3261407338d2e5c1e2fe354b072653882cacef2a223fd7c86292fe4435c0d6e627e29032 languageName: node linkType: hard -"@zag-js/switch@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/switch@npm:1.35.2" +"@zag-js/switch@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/switch@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-visible": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/f9ddccdf879dd27dbab900a7dd5afd7fdc335cfaf188f008f945f4cb14cc03ab64c7fe4016552a5269ed417c2eeb61b9d045d796850decbfd2e25f708234cb10 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-visible": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/c54c689b44f47ce723b08e80e856635abd0065a4537ca63c0445984384812c3933aa7401c47b0138ed29b154f7242155ff94ee005a53a3b0854c9faa6507dec9 languageName: node linkType: hard -"@zag-js/tabs@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/tabs@npm:1.35.2" +"@zag-js/tabs@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/tabs@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/00740d0c8895656f862a9e93d502916cd565d325006cac5d7ffbca8b8436f599abf06cdf00532544a0f83d21d4ef21de115415d41e3bea440966cb93f6182d4e + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/8c353dce03fec69388403bac86ce1494ea611aa3bf51b7db7983a8fe070cfbb9d86a4d14b9225d03f0549f2ebeb14703f083264cafa76b9b72b5db0f52e41791 languageName: node linkType: hard -"@zag-js/tags-input@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/tags-input@npm:1.35.2" +"@zag-js/tags-input@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/tags-input@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/auto-resize": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/interact-outside": "npm:1.35.2" - "@zag-js/live-region": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/9b13fba65b3abd01629679cc6b2e5e54a034e0911580852ed876308d2a6a7721d4255dce2f7da2bd134e1eacf329cd3abf4553cc7869fc9b78c5136f980b9c0a + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/auto-resize": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/interact-outside": "npm:1.35.3" + "@zag-js/live-region": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/3b26cb8698948bca15e73a1458eebc96b2d7e1eaf4e99f048522380f548ffca80495aab6b08d8687ca9e5f2a4cb554339fbb2f4694cf0fa654c349452f91aebe languageName: node linkType: hard -"@zag-js/timer@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/timer@npm:1.35.2" +"@zag-js/timer@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/timer@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/b21df6bf75039fe26276ddd1e6ef0e3dcdb6b3d2c2cd8aae5f97db5f5018f479ae65ef062af41c5a59bd7b47e21f7ea187951c553c49419b888b980cb3027a28 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/ffe6b7a64057e550644052610d6eb4e50449d24318e8cba67074df508d11c2c8246601eaeaab139d32617a91a2f586dd6597c61a0f240c7b07dc153879e09db0 languageName: node linkType: hard -"@zag-js/toast@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/toast@npm:1.35.2" +"@zag-js/toast@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/toast@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/73b1aa0fc151c68abe183c4c65cb88c48b173db3b9e4be338f268fd4e753f19c5ca3fb2db7c7a97a1fa5c49ba4d98d8418765a9f4f60be811eee99765c10250e + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/8d6371e2f752ab4edae6d16b3ea49442a50139a77c805ac9a80b0955bf68527f35057f36c39655f71d591676fb5574908e9d82bab3f6a41be4a11b31ce0bcb01 languageName: node linkType: hard -"@zag-js/toggle-group@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/toggle-group@npm:1.35.2" +"@zag-js/toggle-group@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/toggle-group@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/af559171502c749b09f9a6fb9ba7c66cf2c2e05426ec2ca4c6b406dba465b03a05bc53ad2f6cfb90236df14f0f81b9d64af12b78072ead5d44cbeba784b16d97 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/09f159297b380dc33240d2d12d30b0ff296e182e002b2f5d1e5b70a5995c39defb7fb164b2eaa458b5e1b0773e6c46d85742c0cd82a49935166d7a301294a3ca languageName: node linkType: hard -"@zag-js/toggle@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/toggle@npm:1.35.2" +"@zag-js/toggle@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/toggle@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/3538d01e020d20ef7fbbb5c35c456b292e0d6b815032706f7706e2b8a4b0094303c9c25770ebed7610727195a8185fe3b6c0fa97e4feac79f4a93b7fee44d5e2 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/781645d3c6db9d0c4ab64c524f95bd26e4f18f25eea3ce6b9ae0d122eed9543c2f5cf7655c9d9c79ff4757064baf26306cda3c1fc378d1d04fcab14b261e591a languageName: node linkType: hard -"@zag-js/tooltip@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/tooltip@npm:1.35.2" +"@zag-js/tooltip@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/tooltip@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-visible": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/ed2a0c21ecdb5f4c77ea1e4a183948dabf87e2b99805bf7c57f468af1dec76a0ab4bf382b19f01263217761e525453729acf9be6af047c843a09f7945fd4612a + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-visible": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/e5e26eca9ed8a3f3fff7e2572606a07f2f57e91ac05edfc044e547e2ad5d183bc55822a58ec9aa05e6bf65ac77fbea1a8d3a338f6f5244d0cd0a616eea8c7a34 languageName: node linkType: hard -"@zag-js/tour@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/tour@npm:1.35.2" +"@zag-js/tour@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/tour@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dismissable": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/focus-trap": "npm:1.35.2" - "@zag-js/interact-outside": "npm:1.35.2" - "@zag-js/popper": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/683d9c01aaba09da9506379e5a66903828e2d57a5c3fe89a835b31b1096ff5debddd902f6bd81422a5aa6815b8c80e45b4eb7e30b4623ed34d748bfd5561a0d3 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dismissable": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/focus-trap": "npm:1.35.3" + "@zag-js/interact-outside": "npm:1.35.3" + "@zag-js/popper": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/b9e2218de93aabe1f3450cda06b9af44c94c6da587a871c8bd56412f75f407ceeaf46e5b2cfafe0f9355abdcc301de60bf699a27cfaa43161c11b6e17363bce4 languageName: node linkType: hard -"@zag-js/tree-view@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/tree-view@npm:1.35.2" +"@zag-js/tree-view@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/tree-view@npm:1.35.3" dependencies: - "@zag-js/anatomy": "npm:1.35.2" - "@zag-js/collection": "npm:1.35.2" - "@zag-js/core": "npm:1.35.2" - "@zag-js/dom-query": "npm:1.35.2" - "@zag-js/types": "npm:1.35.2" - "@zag-js/utils": "npm:1.35.2" - checksum: 10c0/02113924ff6f59f179e2cba6ab1bcfd69d49944c26092ea940fe82e5f9ef066c078914c7da0201e63558f06b08f651084404a5ad4a1ea817547d8936af07a809 + "@zag-js/anatomy": "npm:1.35.3" + "@zag-js/collection": "npm:1.35.3" + "@zag-js/core": "npm:1.35.3" + "@zag-js/dom-query": "npm:1.35.3" + "@zag-js/types": "npm:1.35.3" + "@zag-js/utils": "npm:1.35.3" + checksum: 10c0/e7193e81c892ddc7e9d54be3b0e4d64006a1e43018b65d0974c4d76870d5d89f9dcb8009a8c9b4f3d61a92d4a84c629686927225c67b1ce338354f069200601b languageName: node linkType: hard -"@zag-js/types@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/types@npm:1.35.2" +"@zag-js/types@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/types@npm:1.35.3" dependencies: csstype: "npm:3.2.3" - checksum: 10c0/e7ed11171498d8ec2962d6f25cac8e024812941989d24a2af16a59952a8febf77e8f79838e48878107d7f442ef823b321c6f3d901f344cee201427f783635dda + checksum: 10c0/e6fd6e778ca30052c62f73aac5dcc45ceae81257aa35f6e6150a4a23dbfa6403b2ba1909cafbaf1913ded8453acc3c029c88e3f9be05e83c5564aa732d608011 languageName: node linkType: hard -"@zag-js/utils@npm:1.35.2": - version: 1.35.2 - resolution: "@zag-js/utils@npm:1.35.2" - checksum: 10c0/7b4e2bb95134d843b62ab37f08c9836d22c94b8d500acebd6f7b9681999fff54e6595ea9064c8419fc1fc2e9bcd72da68f7ddeed47ca530313a5df4c730226f3 +"@zag-js/utils@npm:1.35.3": + version: 1.35.3 + resolution: "@zag-js/utils@npm:1.35.3" + checksum: 10c0/a69b987f208d38509af0227ec085dac8f9799de8897906005a7ba0aaea71aca0cefdaf30b23a44bdd07453ea484e45b9930655bc14385e5e7ad63a705fa41fb0 languageName: node linkType: hard @@ -2506,6 +2867,24 @@ __metadata: languageName: node linkType: hard +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1 + languageName: node + linkType: hard + +"acorn@npm:^8.15.0": + version: 8.16.0 + resolution: "acorn@npm:8.16.0" + bin: + acorn: bin/acorn + checksum: 10c0/c9c52697227661b68d0debaf972222d4f622aa06b185824164e153438afa7b08273432ca43ea792cadb24dada1d46f6f6bb1ef8de9956979288cc1b96bf9914e + languageName: node + linkType: hard + "agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": version: 7.1.4 resolution: "agent-base@npm:7.1.4" @@ -2513,6 +2892,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^6.12.4, ajv@npm:^6.14.0": + version: 6.14.0 + resolution: "ajv@npm:6.14.0" + dependencies: + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10c0/a2bc39b0555dc9802c899f86990eb8eed6e366cddbf65be43d5aa7e4f3c4e1a199d5460fd7ca4fb3d864000dbbc049253b72faa83b3b30e641ca52cb29a68c22 + languageName: node + linkType: hard + "ansi-escapes@npm:^3.0.0": version: 3.2.0 resolution: "ansi-escapes@npm:3.2.0" @@ -2582,7 +2973,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^4.0.0": +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" dependencies: @@ -2635,6 +3026,13 @@ __metadata: languageName: node linkType: hard +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e + languageName: node + linkType: hard + "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -2642,6 +3040,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 + languageName: node + linkType: hard + "async-function@npm:^1.0.0": version: 1.0.0 resolution: "async-function@npm:1.0.0" @@ -2770,9 +3175,9 @@ __metadata: linkType: hard "bare-os@npm:^3.0.1": - version: 3.7.0 - resolution: "bare-os@npm:3.7.0" - checksum: 10c0/59e2a15768fbfbcf03170280d5527db70be873949123afcd008c5611df35561ac0baedaefdae6b4ceff60aa1141ed91b97039a22305e5d2e74fa60a696ff6695 + version: 3.7.1 + resolution: "bare-os@npm:3.7.1" + checksum: 10c0/66f4eb063314b4187a5f6d89bc93b2aa1fa39598fa6898b85780199a799a26b1ee3cd66aa4b9f2ed41f4095ac75de048d22fbde57c9c6dd0bd9e4f0fa317a254 languageName: node linkType: hard @@ -2873,6 +3278,13 @@ __metadata: languageName: node linkType: hard +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 10c0/4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10 + languageName: node + linkType: hard + "cacache@npm:^20.0.1": version: 20.0.3 resolution: "cacache@npm:20.0.3" @@ -2926,6 +3338,19 @@ __metadata: languageName: node linkType: hard +"chai@npm:^5.2.0": + version: 5.3.3 + resolution: "chai@npm:5.3.3" + dependencies: + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10c0/b360fd4d38861622e5010c2f709736988b05c7f31042305fa3f4e9911f6adb80ccfb4e302068bf8ed10e835c2e2520cba0f5edc13d878b886987e5aa62483f53 + languageName: node + linkType: hard + "chalk@npm:^1.0.0, chalk@npm:^1.1.3": version: 1.1.3 resolution: "chalk@npm:1.1.3" @@ -2950,6 +3375,16 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^4.0.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + "chalk@npm:^5.3.0": version: 5.6.2 resolution: "chalk@npm:5.6.2" @@ -2964,6 +3399,13 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^2.1.1": + version: 2.1.3 + resolution: "check-error@npm:2.1.3" + checksum: 10c0/878e99038fb6476316b74668cd6a498c7e66df3efe48158fa40db80a06ba4258742ac3ee2229c4a2a98c5e73f5dff84eb3e50ceb6b65bbd8f831eafc8338607d + languageName: node + linkType: hard + "chokidar@npm:^4.0.0": version: 4.0.3 resolution: "chokidar@npm:4.0.3" @@ -3205,7 +3647,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.1, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -3224,6 +3666,20 @@ __metadata: languageName: node linkType: hard +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -3330,6 +3786,13 @@ __metadata: languageName: node linkType: hard +"es-module-lexer@npm:^1.7.0": + version: 1.7.0 + resolution: "es-module-lexer@npm:1.7.0" + checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b + languageName: node + linkType: hard + "es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": version: 1.1.1 resolution: "es-object-atoms@npm:1.1.1" @@ -3562,6 +4025,138 @@ __metadata: languageName: node linkType: hard +"eslint-scope@npm:^8.4.0": + version: 8.4.0 + resolution: "eslint-scope@npm:8.4.0" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^5.2.0" + checksum: 10c0/407f6c600204d0f3705bd557f81bd0189e69cd7996f408f8971ab5779c0af733d1af2f1412066b40ee1588b085874fc37a2333986c6521669cdbdd36ca5058e0 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^4.2.1": + version: 4.2.1 + resolution: "eslint-visitor-keys@npm:4.2.1" + checksum: 10c0/fcd43999199d6740db26c58dbe0c2594623e31ca307e616ac05153c9272f12f1364f5a0b1917a8e962268fdecc6f3622c1c2908b4fcc2e047a106fe6de69dc43 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^5.0.0": + version: 5.0.1 + resolution: "eslint-visitor-keys@npm:5.0.1" + checksum: 10c0/16190bdf2cbae40a1109384c94450c526a79b0b9c3cb21e544256ed85ac48a4b84db66b74a6561d20fe6ab77447f150d711c2ad5ad74df4fcc133736bce99678 + languageName: node + linkType: hard + +"eslint@npm:^9.32.0": + version: 9.39.3 + resolution: "eslint@npm:9.39.3" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.8.0" + "@eslint-community/regexpp": "npm:^4.12.1" + "@eslint/config-array": "npm:^0.21.1" + "@eslint/config-helpers": "npm:^0.4.2" + "@eslint/core": "npm:^0.17.0" + "@eslint/eslintrc": "npm:^3.3.1" + "@eslint/js": "npm:9.39.3" + "@eslint/plugin-kit": "npm:^0.4.1" + "@humanfs/node": "npm:^0.16.6" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@humanwhocodes/retry": "npm:^0.4.2" + "@types/estree": "npm:^1.0.6" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.6" + debug: "npm:^4.3.2" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^8.4.0" + eslint-visitor-keys: "npm:^4.2.1" + espree: "npm:^10.4.0" + esquery: "npm:^1.5.0" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^8.0.0" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true + bin: + eslint: bin/eslint.js + checksum: 10c0/5e5dbf84d4f604f5d2d7a58c5c3fcdde30a01b8973ff3caeca8b2bacc16066717cedb4385ce52db1a2746d0b621770d4d4227cc7f44982b0b03818be2c31538d + languageName: node + linkType: hard + +"espree@npm:^10.0.1, espree@npm:^10.4.0": + version: 10.4.0 + resolution: "espree@npm:10.4.0" + dependencies: + acorn: "npm:^8.15.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^4.2.1" + checksum: 10c0/c63fe06131c26c8157b4083313cb02a9a54720a08e21543300e55288c40e06c3fc284bdecf108d3a1372c5934a0a88644c98714f38b6ae8ed272b40d9ea08d6b + languageName: node + linkType: hard + +"esquery@npm:^1.5.0": + version: 1.7.0 + resolution: "esquery@npm:1.7.0" + dependencies: + estraverse: "npm:^5.1.0" + checksum: 10c0/77d5173db450b66f3bc685d11af4c90cffeedb340f34a39af96d43509a335ce39c894fd79233df32d38f5e4e219fa0f7076f6ec90bae8320170ba082c0db4793 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: "npm:^5.2.0" + checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 + languageName: node + linkType: hard + +"estree-walker@npm:^3.0.3": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": "npm:^1.0.0" + checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 + languageName: node + linkType: hard + "event-target-shim@npm:^5.0.0": version: 5.0.1 resolution: "event-target-shim@npm:5.0.1" @@ -3592,6 +4187,13 @@ __metadata: languageName: node linkType: hard +"expect-type@npm:^1.2.1": + version: 1.3.0 + resolution: "expect-type@npm:1.3.0" + checksum: 10c0/8412b3fe4f392c420ab41dae220b09700e4e47c639a29ba7ba2e83cc6cffd2b4926f7ac9e47d7e277e8f4f02acda76fd6931cb81fd2b382fa9477ef9ada953fd + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.3 resolution: "exponential-backoff@npm:3.1.3" @@ -3610,6 +4212,13 @@ __metadata: languageName: node linkType: hard +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 + languageName: node + linkType: hard + "fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2": version: 1.3.2 resolution: "fast-fifo@npm:1.3.2" @@ -3630,12 +4239,26 @@ __metadata: languageName: node linkType: hard +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 + languageName: node + linkType: hard + "fastq@npm:^1.6.0": - version: 1.19.1 - resolution: "fastq@npm:1.19.1" + version: 1.20.1 + resolution: "fastq@npm:1.20.1" dependencies: reusify: "npm:^1.0.4" - checksum: 10c0/ebc6e50ac7048daaeb8e64522a1ea7a26e92b3cee5cd1c7f2316cdca81ba543aa40a136b53891446ea5c3a67ec215fbaca87ad405f102dd97012f62916905630 + checksum: 10c0/e5dd725884decb1f11e5c822221d76136f239d0236f176fab80b7b8f9e7619ae57e6b4e5b73defc21e6b9ef99437ee7b545cff8e6c2c337819633712fa9d352e languageName: node linkType: hard @@ -3670,6 +4293,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" + dependencies: + flat-cache: "npm:^4.0.0" + checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638 + languageName: node + linkType: hard + "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -3696,6 +4328,33 @@ __metadata: languageName: node linkType: hard +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: "npm:^6.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a + languageName: node + linkType: hard + +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" + dependencies: + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.4" + checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc + languageName: node + linkType: hard + +"flatted@npm:^3.2.9": + version: 3.3.4 + resolution: "flatted@npm:3.3.4" + checksum: 10c0/d1f33426e9714063a65a90940acdb2897eceb810230a58e496d90334dcecfa81a90135bbc660df6827939865d57cb4a2afab14dcd3d505e16a8484fd73bf9642 + languageName: node + linkType: hard + "follow-redirects@npm:^1.15.11": version: 1.15.11 resolution: "follow-redirects@npm:1.15.11" @@ -3741,13 +4400,13 @@ __metadata: linkType: hard "fs-extra@npm:^11.2.0": - version: 11.3.2 - resolution: "fs-extra@npm:11.3.2" + version: 11.3.4 + resolution: "fs-extra@npm:11.3.4" dependencies: graceful-fs: "npm:^4.2.0" jsonfile: "npm:^6.0.1" universalify: "npm:^2.0.0" - checksum: 10c0/f5d629e1bb646d5dedb4d8b24c5aad3deb8cc1d5438979d6f237146cd10e113b49a949ae1b54212c2fbc98e2d0995f38009a9a1d0520f0287943335e65fe919b + checksum: 10c0/e08276f767a62496ae97d711aaa692c6a478177f24a85979b6a2881c9db9c68b8c2ad5da0bcf92c0b2a474cea6e935ec245656441527958fd8372cb647087df0 languageName: node linkType: hard @@ -3854,6 +4513,15 @@ __metadata: languageName: node linkType: hard +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: "npm:^4.0.3" + checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 + languageName: node + linkType: hard + "glob@npm:^10.0.0": version: 10.5.0 resolution: "glob@npm:10.5.0" @@ -3895,6 +4563,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d + languageName: node + linkType: hard + "globby@npm:^11.0.3": version: 11.1.0 resolution: "globby@npm:11.1.0" @@ -3947,9 +4622,9 @@ __metadata: linkType: hard "graphql@npm:^16.6.0, graphql@npm:^16.8.1": - version: 16.12.0 - resolution: "graphql@npm:16.12.0" - checksum: 10c0/b6fffa4e8a4e4a9933ebe85e7470b346dbf49050c1a482fac5e03e4a1a7bed2ecd3a4c97e29f04457af929464bc5e4f2aac991090c2f320111eef26e902a5c75 + version: 16.13.0 + resolution: "graphql@npm:16.13.0" + checksum: 10c0/c20e7909c6c8d405a30f8caeae5aaf604b9f949bdcdf80bdb3d3561123e6099181c39eae697cf4fcdc5dd301ab215363b8def0aa0ff51f03cc7e4b48a8c2c2b1 languageName: node linkType: hard @@ -3969,6 +4644,13 @@ __metadata: languageName: node linkType: hard +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + languageName: node + linkType: hard + "has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": version: 1.1.0 resolution: "has-symbols@npm:1.1.0" @@ -3999,7 +4681,14 @@ __metadata: resolution: "hello-world@workspace:." dependencies: "@types/node": "npm:^24.7.2" + "@types/react": "npm:^18.2.0" + eslint: "npm:^9.32.0" + react: "npm:^18.2.0" twenty-sdk: "npm:0.6.3" + typescript: "npm:^5.9.3" + typescript-eslint: "npm:^8.50.0" + vite-tsconfig-paths: "npm:^4.2.1" + vitest: "npm:^3.1.1" languageName: unknown linkType: soft @@ -4078,6 +4767,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^7.0.5": + version: 7.0.5 + resolution: "ignore@npm:7.0.5" + checksum: 10c0/ae00db89fe873064a093b8999fe4cc284b13ef2a178636211842cceb650b9c3e390d3339191acb145d81ed5379d2074840cf0c33a20bdbd6f32821f79eb4ad5d + languageName: node + linkType: hard + "import-fresh@npm:^3.2.1": version: 3.3.1 resolution: "import-fresh@npm:3.3.1" @@ -4252,7 +4948,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.1": +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -4365,6 +5061,24 @@ __metadata: languageName: node linkType: hard +"js-tokens@npm:^9.0.1": + version: 9.0.1 + resolution: "js-tokens@npm:9.0.1" + checksum: 10c0/68dcab8f233dde211a6b5fd98079783cbcd04b53617c1250e3553ee16ab3e6134f5e65478e41d82f6d351a052a63d71024553933808570f04dbf828d7921e80e + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.1": + version: 4.1.1 + resolution: "js-yaml@npm:4.1.1" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/561c7d7088c40a9bb53cc75becbfb1df6ae49b34b5e6e5a81744b14ae8667ec564ad2527709d1a6e7d5e5fa6d483aa0f373a50ad98d42fde368ec4a190d4fae7 + languageName: node + linkType: hard + "jsesc@npm:^3.0.2": version: 3.1.0 resolution: "jsesc@npm:3.1.0" @@ -4374,6 +5088,13 @@ __metadata: languageName: node linkType: hard +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 + languageName: node + linkType: hard + "json-parse-even-better-errors@npm:^2.3.0": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -4381,6 +5102,20 @@ __metadata: languageName: node linkType: hard +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 + languageName: node + linkType: hard + "jsonc-parser@npm:^3.2.0": version: 3.3.1 resolution: "jsonc-parser@npm:3.3.1" @@ -4401,6 +5136,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.5.4": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: "npm:3.0.1" + checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e + languageName: node + linkType: hard + "kleur@npm:^4.1.5": version: 4.1.5 resolution: "kleur@npm:4.1.5" @@ -4417,6 +5161,16 @@ __metadata: languageName: node linkType: hard +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: "npm:^1.2.1" + type-check: "npm:~0.4.0" + checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -4487,6 +5241,15 @@ __metadata: languageName: node linkType: hard +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: "npm:^5.0.0" + checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 + languageName: node + linkType: hard + "lodash.camelcase@npm:^4.3.0": version: 4.3.0 resolution: "lodash.camelcase@npm:4.3.0" @@ -4501,17 +5264,17 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.15, lodash@npm:^4.17.20": - version: 4.17.23 - resolution: "lodash@npm:4.17.23" - checksum: 10c0/1264a90469f5bb95d4739c43eb6277d15b6d9e186df4ac68c3620443160fc669e2f14c11e7d8b2ccf078b81d06147c01a8ccced9aab9f9f63d50dcf8cace6bf6 +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 languageName: node linkType: hard -"lodash@npm:^4.17.21": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c +"lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21": + version: 4.17.23 + resolution: "lodash@npm:4.17.23" + checksum: 10c0/1264a90469f5bb95d4739c43eb6277d15b6d9e186df4ac68c3620443160fc669e2f14c11e7d8b2ccf078b81d06147c01a8ccced9aab9f9f63d50dcf8cace6bf6 languageName: node linkType: hard @@ -4546,6 +5309,13 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^3.1.0, loupe@npm:^3.1.4": + version: 3.2.1 + resolution: "loupe@npm:3.2.1" + checksum: 10c0/910c872cba291309664c2d094368d31a68907b6f5913e989d301b5c25f30e97d76d77f23ab3bf3b46d0f601ff0b6af8810c10c31b91d2c6b2f132809ca2cc705 + languageName: node + linkType: hard + "lru-cache@npm:^10.2.0": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" @@ -4560,6 +5330,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.17": + version: 0.30.21 + resolution: "magic-string@npm:0.30.21" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.5" + checksum: 10c0/299378e38f9a270069fc62358522ddfb44e94244baa0d6a8980ab2a9b2490a1d03b236b447eee309e17eb3bddfa482c61259d47960eb018a904f0ded52780c4a + languageName: node + linkType: hard + "make-fetch-happen@npm:^15.0.0": version: 15.0.4 resolution: "make-fetch-happen@npm:15.0.4" @@ -4642,12 +5421,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.1.1": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" +"minimatch@npm:^3.1.1, minimatch@npm:^3.1.2, minimatch@npm:^3.1.3": + version: 3.1.5 + resolution: "minimatch@npm:3.1.5" dependencies: brace-expansion: "npm:^1.1.7" - checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + checksum: 10c0/2ecbdc0d33f07bddb0315a8b5afbcb761307a8778b48f0b312418ccbced99f104a2d17d8aca7573433c70e8ccd1c56823a441897a45e384ea76ef401a26ace70 languageName: node linkType: hard @@ -4795,6 +5574,13 @@ __metadata: languageName: node linkType: hard +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 + languageName: node + linkType: hard + "negotiator@npm:^1.0.0": version: 1.0.0 resolution: "negotiator@npm:1.0.0" @@ -4911,6 +5697,20 @@ __metadata: languageName: node linkType: hard +"optionator@npm:^0.9.3": + version: 0.9.4 + resolution: "optionator@npm:0.9.4" + dependencies: + deep-is: "npm:^0.1.3" + fast-levenshtein: "npm:^2.0.6" + levn: "npm:^0.4.1" + prelude-ls: "npm:^1.2.1" + type-check: "npm:^0.4.0" + word-wrap: "npm:^1.2.5" + checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675 + languageName: node + linkType: hard + "os-tmpdir@npm:~1.0.2": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" @@ -4918,7 +5718,7 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:3.1.0": +"p-limit@npm:3.1.0, p-limit@npm:^3.0.2": version: 3.1.0 resolution: "p-limit@npm:3.1.0" dependencies: @@ -4945,6 +5745,15 @@ __metadata: languageName: node linkType: hard +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: "npm:^3.0.2" + checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a + languageName: node + linkType: hard + "p-map@npm:^2.0.0": version: 2.1.0 resolution: "p-map@npm:2.1.0" @@ -5056,7 +5865,21 @@ __metadata: languageName: node linkType: hard -"perfect-freehand@npm:^1.2.2": +"pathe@npm:^2.0.3": + version: 2.0.3 + resolution: "pathe@npm:2.0.3" + checksum: 10c0/c118dc5a8b5c4166011b2b70608762e260085180bb9e33e80a50dcdb1e78c010b1624f4280c492c92b05fc276715a4c357d1f9edc570f8f1b3d90b6839ebaca1 + languageName: node + linkType: hard + +"pathval@npm:^2.0.0": + version: 2.0.1 + resolution: "pathval@npm:2.0.1" + checksum: 10c0/460f4709479fbf2c45903a65655fc8f0a5f6d808f989173aeef5fdea4ff4f303dc13f7870303999add60ec49d4c14733895c0a869392e9866f1091fa64fd7581 + languageName: node + linkType: hard + +"perfect-freehand@npm:^1.2.3": version: 1.2.3 resolution: "perfect-freehand@npm:1.2.3" checksum: 10c0/89005beef0bd99258eb924046927201e26cafd0bd9c47eb30f4559d31be966d69c01382d1bdd09757a2912ff446f6bf0eadc87a1d53425aff07b449b3cb151fa @@ -5077,7 +5900,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^4.0.3": +"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3": version: 4.0.3 resolution: "picomatch@npm:4.0.3" checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2 @@ -5085,13 +5908,13 @@ __metadata: linkType: hard "postcss@npm:^8.5.6": - version: 8.5.6 - resolution: "postcss@npm:8.5.6" + version: 8.5.8 + resolution: "postcss@npm:8.5.8" dependencies: nanoid: "npm:^3.3.11" picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/5127cc7c91ed7a133a1b7318012d8bfa112da9ef092dddf369ae699a1f10ebbd89b1b9f25f3228795b84585c72aabd5ced5fc11f2ba467eedf7b081a66fad024 + checksum: 10c0/dd918f7127ee7c60a0295bae2e72b3787892296e1d1c3c564d7a2a00c68d8df83cadc3178491259daa19ccc54804fb71ed8c937c6787e08d8bd4bedf8d17044c languageName: node linkType: hard @@ -5102,6 +5925,13 @@ __metadata: languageName: node linkType: hard +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd + languageName: node + linkType: hard + "prettier@npm:^2.8.0": version: 2.8.8 resolution: "prettier@npm:2.8.8" @@ -5155,12 +5985,19 @@ __metadata: languageName: node linkType: hard +"punycode@npm:^2.1.0": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + languageName: node + linkType: hard + "qs@npm:^6.11.0": - version: 6.14.0 - resolution: "qs@npm:6.14.0" + version: 6.15.0 + resolution: "qs@npm:6.15.0" dependencies: side-channel: "npm:^1.1.0" - checksum: 10c0/8ea5d91bf34f440598ee389d4a7d95820e3b837d3fd9f433871f7924801becaa0cd3b3b4628d49a7784d06a8aea9bc4554d2b6d8d584e2d221dc06238a42909c + checksum: 10c0/ff341078a78a991d8a48b4524d52949211447b4b1ad907f489cac0770cbc346a28e47304455c0320e5fb000f8762d64b03331e3b71865f663bf351bcba8cdb4b languageName: node linkType: hard @@ -5515,7 +6352,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.5": +"semver@npm:^7.3.5, semver@npm:^7.7.3": version: 7.7.4 resolution: "semver@npm:7.7.4" bin: @@ -5595,6 +6432,13 @@ __metadata: languageName: node linkType: hard +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 10c0/3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -5703,6 +6547,20 @@ __metadata: languageName: node linkType: hard +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 10c0/89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983 + languageName: node + linkType: hard + +"std-env@npm:^3.9.0": + version: 3.10.0 + resolution: "std-env@npm:3.10.0" + checksum: 10c0/1814927a45004d36dde6707eaf17552a546769bc79a6421be2c16ce77d238158dfe5de30910b78ec30d95135cc1c59ea73ee22d2ca170f8b9753f84da34c427f + languageName: node + linkType: hard + "streamx@npm:^2.12.5, streamx@npm:^2.15.0, streamx@npm:^2.21.0": version: 2.23.0 resolution: "streamx@npm:2.23.0" @@ -5822,6 +6680,22 @@ __metadata: languageName: node linkType: hard +"strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd + languageName: node + linkType: hard + +"strip-literal@npm:^3.0.0": + version: 3.1.0 + resolution: "strip-literal@npm:3.1.0" + dependencies: + js-tokens: "npm:^9.0.1" + checksum: 10c0/50918f669915d9ad0fe4b7599902b735f853f2201c97791ead00104a654259c0c61bc2bc8fa3db05109339b61f4cf09e47b94ecc874ffbd0e013965223893af8 + languageName: node + linkType: hard + "stylis@npm:4.2.0": version: 4.2.0 resolution: "stylis@npm:4.2.0" @@ -5860,6 +6734,15 @@ __metadata: languageName: node linkType: hard +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + languageName: node + linkType: hard + "supports-preserve-symlinks-flag@npm:^1.0.0": version: 1.0.0 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" @@ -5917,7 +6800,21 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15": +"tinybench@npm:^2.9.0": + version: 2.9.0 + resolution: "tinybench@npm:2.9.0" + checksum: 10c0/c3500b0f60d2eb8db65250afe750b66d51623057ee88720b7f064894a6cb7eb93360ca824a60a31ab16dab30c7b1f06efe0795b352e37914a9d4bad86386a20c + languageName: node + linkType: hard + +"tinyexec@npm:^0.3.2": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15": version: 0.2.15 resolution: "tinyglobby@npm:0.2.15" dependencies: @@ -5927,6 +6824,27 @@ __metadata: languageName: node linkType: hard +"tinypool@npm:^1.1.1": + version: 1.1.1 + resolution: "tinypool@npm:1.1.1" + checksum: 10c0/bf26727d01443061b04fa863f571016950888ea994ba0cd8cba3a1c51e2458d84574341ab8dbc3664f1c3ab20885c8cf9ff1cc4b18201f04c2cde7d317fff69b + languageName: node + linkType: hard + +"tinyrainbow@npm:^2.0.0": + version: 2.0.0 + resolution: "tinyrainbow@npm:2.0.0" + checksum: 10c0/c83c52bef4e0ae7fb8ec6a722f70b5b6fa8d8be1c85792e829f56c0e1be94ab70b293c032dc5048d4d37cfe678f1f5babb04bdc65fd123098800148ca989184f + languageName: node + linkType: hard + +"tinyspy@npm:^4.0.3": + version: 4.0.4 + resolution: "tinyspy@npm:4.0.4" + checksum: 10c0/a8020fc17799251e06a8398dcc352601d2770aa91c556b9531ecd7a12581161fd1c14e81cbdaff0c1306c93bfdde8ff6d1c1a3f9bbe6d91604f0fd4e01e2f1eb + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -5952,6 +6870,15 @@ __metadata: languageName: node linkType: hard +"ts-api-utils@npm:^2.4.0": + version: 2.4.0 + resolution: "ts-api-utils@npm:2.4.0" + peerDependencies: + typescript: ">=4.8.4" + checksum: 10c0/ed185861aef4e7124366a3f6561113557a57504267d4d452a51e0ba516a9b6e713b56b4aeaab9fa13de9db9ab755c65c8c13a777dba9133c214632cb7b65c083 + languageName: node + linkType: hard + "tsconfck@npm:^3.0.3": version: 3.1.6 resolution: "tsconfck@npm:3.1.6" @@ -6022,6 +6949,15 @@ __metadata: languageName: node linkType: hard +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: "npm:^1.2.1" + checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 + languageName: node + linkType: hard + "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" @@ -6036,7 +6972,22 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.9.2": +"typescript-eslint@npm:^8.50.0": + version: 8.56.1 + resolution: "typescript-eslint@npm:8.56.1" + dependencies: + "@typescript-eslint/eslint-plugin": "npm:8.56.1" + "@typescript-eslint/parser": "npm:8.56.1" + "@typescript-eslint/typescript-estree": "npm:8.56.1" + "@typescript-eslint/utils": "npm:8.56.1" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.0.0" + checksum: 10c0/c33aeb9a8beab54308412dcd460ab60f845fee30eaed1fdc1083ff53c430a4dcbdfeac862136a21fb3a639538f8712d933fc410680c2a650e67b992720a0d9f6 + languageName: node + linkType: hard + +"typescript@npm:^5.9.2, typescript@npm:^5.9.3": version: 5.9.3 resolution: "typescript@npm:5.9.3" bin: @@ -6046,7 +6997,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.9.2#optional!builtin": +"typescript@patch:typescript@npm%3A^5.9.2#optional!builtin, typescript@patch:typescript@npm%3A^5.9.3#optional!builtin": version: 5.9.3 resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" bin: @@ -6070,6 +7021,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~7.18.0": + version: 7.18.2 + resolution: "undici-types@npm:7.18.2" + checksum: 10c0/85a79189113a238959d7a647368e4f7c5559c3a404ebdb8fc4488145ce9426fcd82252a844a302798dfc0e37e6fb178ff481ed03bc4caf634c5757d9ef43521d + languageName: node + linkType: hard + "undici@npm:^5.18.0": version: 5.29.0 resolution: "undici@npm:5.29.0" @@ -6127,6 +7085,15 @@ __metadata: languageName: node linkType: hard +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: "npm:^2.1.0" + checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c + languageName: node + linkType: hard + "util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -6157,6 +7124,21 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:3.2.4": + version: 3.2.4 + resolution: "vite-node@npm:3.2.4" + dependencies: + cac: "npm:^6.7.14" + debug: "npm:^4.4.1" + es-module-lexer: "npm:^1.7.0" + pathe: "npm:^2.0.3" + vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0" + bin: + vite-node: vite-node.mjs + checksum: 10c0/6ceca67c002f8ef6397d58b9539f80f2b5d79e103a18367288b3f00a8ab55affa3d711d86d9112fce5a7fa658a212a087a005a045eb8f4758947dd99af2a6c6b + languageName: node + linkType: hard + "vite-tsconfig-paths@npm:^4.2.1": version: 4.3.2 resolution: "vite-tsconfig-paths@npm:4.3.2" @@ -6173,7 +7155,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:^7.0.0": +"vite@npm:^5.0.0 || ^6.0.0 || ^7.0.0-0, vite@npm:^7.0.0": version: 7.3.1 resolution: "vite@npm:7.3.1" dependencies: @@ -6228,6 +7210,62 @@ __metadata: languageName: node linkType: hard +"vitest@npm:^3.1.1": + version: 3.2.4 + resolution: "vitest@npm:3.2.4" + dependencies: + "@types/chai": "npm:^5.2.2" + "@vitest/expect": "npm:3.2.4" + "@vitest/mocker": "npm:3.2.4" + "@vitest/pretty-format": "npm:^3.2.4" + "@vitest/runner": "npm:3.2.4" + "@vitest/snapshot": "npm:3.2.4" + "@vitest/spy": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" + chai: "npm:^5.2.0" + debug: "npm:^4.4.1" + expect-type: "npm:^1.2.1" + magic-string: "npm:^0.30.17" + pathe: "npm:^2.0.3" + picomatch: "npm:^4.0.2" + std-env: "npm:^3.9.0" + tinybench: "npm:^2.9.0" + tinyexec: "npm:^0.3.2" + tinyglobby: "npm:^0.2.14" + tinypool: "npm:^1.1.1" + tinyrainbow: "npm:^2.0.0" + vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0" + vite-node: "npm:3.2.4" + why-is-node-running: "npm:^2.3.0" + peerDependencies: + "@edge-runtime/vm": "*" + "@types/debug": ^4.1.12 + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + "@vitest/browser": 3.2.4 + "@vitest/ui": 3.2.4 + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@types/debug": + optional: true + "@types/node": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + bin: + vitest: vitest.mjs + checksum: 10c0/5bf53ede3ae6a0e08956d72dab279ae90503f6b5a05298a6a5e6ef47d2fd1ab386aaf48fafa61ed07a0ebfe9e371772f1ccbe5c258dd765206a8218bf2eb79eb + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -6274,6 +7312,18 @@ __metadata: languageName: node linkType: hard +"why-is-node-running@npm:^2.3.0": + version: 2.3.0 + resolution: "why-is-node-running@npm:2.3.0" + dependencies: + siginfo: "npm:^2.0.0" + stackback: "npm:0.0.2" + bin: + why-is-node-running: cli.js + checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054 + languageName: node + linkType: hard + "widest-line@npm:^5.0.0": version: 5.0.0 resolution: "widest-line@npm:5.0.0" @@ -6283,6 +7333,13 @@ __metadata: languageName: node linkType: hard +"word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20 + languageName: node + linkType: hard + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" diff --git a/packages/twenty-sdk/src/cli/__tests__/constants/setupTest.ts b/packages/twenty-sdk/src/cli/__tests__/constants/setupTest.ts index 62e5df69fa..50dde446b7 100644 --- a/packages/twenty-sdk/src/cli/__tests__/constants/setupTest.ts +++ b/packages/twenty-sdk/src/cli/__tests__/constants/setupTest.ts @@ -1,4 +1,3 @@ -import { testConfig } from '@/cli/__tests__/constants/testConfig'; import { getConfigPath } from '@/cli/utilities/config/get-config-path'; import * as fs from 'fs-extra'; import * as path from 'path'; @@ -11,7 +10,10 @@ beforeAll(async () => { const configFile = { profiles: { - default: testConfig, + default: { + apiUrl: process.env.TWENTY_API_URL, + apiKey: process.env.TWENTY_TEST_API_KEY, + }, }, }; diff --git a/packages/twenty-sdk/src/cli/__tests__/constants/testConfig.ts b/packages/twenty-sdk/src/cli/__tests__/constants/testConfig.ts deleted file mode 100644 index 4f4b9786ac..0000000000 --- a/packages/twenty-sdk/src/cli/__tests__/constants/testConfig.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { type TwentyConfig } from '@/cli/utilities/config/config-service'; - -export const testConfig: TwentyConfig = { - apiUrl: 'http://localhost:3000', - apiKey: - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik', -}; diff --git a/packages/twenty-sdk/vitest.e2e.config.ts b/packages/twenty-sdk/vitest.e2e.config.ts index 27710e628a..164ff1085b 100644 --- a/packages/twenty-sdk/vitest.e2e.config.ts +++ b/packages/twenty-sdk/vitest.e2e.config.ts @@ -24,6 +24,11 @@ export default defineConfig({ sequence: { concurrent: false, }, + env: { + TWENTY_API_URL: 'http://localhost:3000', + TWENTY_TEST_API_KEY: + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik', + }, setupFiles: ['src/cli/__tests__/constants/setupTest.ts'], globalSetup: undefined, onConsoleLog: () => true, diff --git a/packages/twenty-sdk/vitest.integration.config.ts b/packages/twenty-sdk/vitest.integration.config.ts index b2fde09efe..624611568e 100644 --- a/packages/twenty-sdk/vitest.integration.config.ts +++ b/packages/twenty-sdk/vitest.integration.config.ts @@ -18,6 +18,11 @@ export default defineConfig({ truncateThreshold: 0, }, fileParallelism: false, + env: { + TWENTY_API_URL: 'http://localhost:3000', + TWENTY_TEST_API_KEY: + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik', + }, setupFiles: [ 'src/cli/__tests__/constants/setupTest.ts', 'src/cli/__tests__/integration/utils/setup-app-dev-mocks.ts',